中關(guān)村在線網(wǎng)站order by語(yǔ)句的盲注思路及修復(fù)方案(圖)
發(fā)布日期:2022-01-27 09:54 | 文章來(lái)源:gibhub
基于order by內(nèi)容的盲注
詳細(xì)說(shuō)明:
對(duì)http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=zj_vote+desc 做安全檢測(cè)。
嘗試數(shù)值型注入未果。
不過(guò),看到zj_vote+desc,想到這里也許能利用。
用工具掃它沒(méi)發(fā)現(xiàn)注入。因?yàn)閙ysql的union前不能帶order by。
但是order by里的內(nèi)容是不是就沒(méi)法注入了?
我不死心啊。
做了一些嘗試,發(fā)現(xiàn)order by是可以盲注的。
這種方式依賴數(shù)據(jù)庫(kù)結(jié)果中必須存在一個(gè)已知存在不一樣數(shù)值的列。
不過(guò),既然程序里order by那個(gè)字段了,那么那個(gè)字段理論上肯定有多種值的。比如本例中的zj_vote字段.
漏洞證明:
看排序。236和239數(shù)值相差3,我構(gòu)造一個(gè)abs(zj_vote-237-(expr)) asc.
(expr)為假時(shí),(239-237-0)=2,(236-237-0)=1,236排前面,
(expr)為真時(shí),(239-237-1)=1,(236-237-1)=2,239排前面,
你也許會(huì)說(shuō),你這個(gè)236和239相差是3,當(dāng)然簡(jiǎn)單了。如果相差2呢?
比如236和238怎么辦?
不賣關(guān)子了,直接告訴你吧,他不是相差2么,你可以用abs(zj_vote-236-(expr)*3)啊
http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=abs(zj_vote-237-(length(user())>20))+asc

http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=abs(zj_vote-237-(length(user())=20))+asc

修復(fù)方案:
做一個(gè)允許的排序方式組合的數(shù)組,排序方式傳排序方式的數(shù)組下標(biāo)就可以了。
想直接傳字段也可以,檢查一下那個(gè)排序方式是否在數(shù)組里,不是就用默認(rèn)排序方式。也就安全了。
作者 小雨
詳細(xì)說(shuō)明:
對(duì)http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=zj_vote+desc 做安全檢測(cè)。
嘗試數(shù)值型注入未果。
不過(guò),看到zj_vote+desc,想到這里也許能利用。
用工具掃它沒(méi)發(fā)現(xiàn)注入。因?yàn)閙ysql的union前不能帶order by。
但是order by里的內(nèi)容是不是就沒(méi)法注入了?
我不死心啊。
做了一些嘗試,發(fā)現(xiàn)order by是可以盲注的。
這種方式依賴數(shù)據(jù)庫(kù)結(jié)果中必須存在一個(gè)已知存在不一樣數(shù)值的列。
不過(guò),既然程序里order by那個(gè)字段了,那么那個(gè)字段理論上肯定有多種值的。比如本例中的zj_vote字段.
漏洞證明:
看排序。236和239數(shù)值相差3,我構(gòu)造一個(gè)abs(zj_vote-237-(expr)) asc.
(expr)為假時(shí),(239-237-0)=2,(236-237-0)=1,236排前面,
(expr)為真時(shí),(239-237-1)=1,(236-237-1)=2,239排前面,
你也許會(huì)說(shuō),你這個(gè)236和239相差是3,當(dāng)然簡(jiǎn)單了。如果相差2呢?
比如236和238怎么辦?
不賣關(guān)子了,直接告訴你吧,他不是相差2么,你可以用abs(zj_vote-236-(expr)*3)啊
http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=abs(zj_vote-237-(length(user())>20))+asc

http://active.zol.com.cn/diy/bisai.php?mont_h=2009-05&id=12&type=15&order=abs(zj_vote-237-(length(user())=20))+asc

修復(fù)方案:
做一個(gè)允許的排序方式組合的數(shù)組,排序方式傳排序方式的數(shù)組下標(biāo)就可以了。
想直接傳字段也可以,檢查一下那個(gè)排序方式是否在數(shù)組里,不是就用默認(rèn)排序方式。也就安全了。
作者 小雨
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章