已獲作者授權(quán),原文地址:
http://www.cnblogs.com/iamstudy/articles/2017_quanguo_ctf_web_writeup.html
0x00 題目分析
邏輯是注冊用戶 -> 登陸 -> 購買
注冊的時候有waf,會過濾某些字符為空,比如on,select等
開始沒注意,導(dǎo)致登陸的時候會經(jīng)常出現(xiàn)點(diǎn)莫名其妙的問題
購買的時候,我猜可能是先通過商品的id查詢出價錢,然后再從session里面獲取用戶名,直接update去扣除用戶錢包里面的錢,其中從session取值的時候沒有做過濾,雖然前面都做了。
0x01 腳本


0x02 個人分析 總結(jié)
這題是一個多步盲注,并不是我們常見的那種一步提交參數(shù),就會有回顯的那種。
按流程來,注冊,登錄。
我們注冊可能產(chǎn)生注入的用戶名,形如 ? xx'-1-1#,或者 xxx' || 1 #,原題過濾了哪些就不清楚了。
注冊登錄都沒有問題,就是在購買的時候,從session里面把用戶名取出來,然后和后臺數(shù)據(jù)庫進(jìn)行交互購買,也就是這個時候產(chǎn)生了注入。
中間那個1的位置,就是我們的盲注語句的位置。為真的時候,購買成功。
還有一個過濾問題,過濾了on等敏感字,可以通過雙寫繞過,形如 oonn。
比賽寫的時候一直死磕都沒死磕出來,發(fā)現(xiàn)自己還是太菜了,不能復(fù)現(xiàn),有點(diǎn)難受。
也提醒我牢記一點(diǎn):
理清思路,思考后臺語句,提交的參數(shù)與數(shù)據(jù)庫交互的地方都有可能產(chǎn)生注入