0x00 直接看源碼吧
早上寫了個注入fuzz的腳本,無聊回到實驗吧的題目進行測試,發(fā)現(xiàn)了這道題
地址:http://ctf5.shiyanbar.com/web/pcat/index.php

分析如下:
1. 看過濾,過濾了一些查詢關鍵詞,明注是不可能了,過濾括號,通常的盲注也是實現(xiàn)不了。
2. 看要得到flag的條件,我們輸入的密碼和查詢的密碼要一致,而且查詢結果只能有一條。
0x01 正確姿勢
懶得寫思路流程了,這里直接給出兩種解題姿勢,一種是盲注出密碼,一種是使用with rollup 再加php弱類型。
1. 先看盲注吧:
payload: ' or pwd like 's%' limit 1#
解釋: 要使查詢語句正常而且出結果,必須要有一個為真,這里是根據(jù)pwd進行判斷的,若此時查詢出來的結果中的pwd 的值是以s開頭,則返回true ,若不是,則返回false。
我是看人家writeup學到的,不得不承認,要是在知道列名的情況下,這種盲注手段簡單方便很多,讓我對 like的印象加深了許多。
那剩下來就是腳本的事情了。
2. with rollup
這是我的一個知識盲區(qū),出題人估計一開始的出發(fā)點也是這個吧,所以我也想記錄一下。
個人下面通俗解釋一下 with rollup: ? 要配合 group by 一起使用,"group by username with rollup",簡單說一下,就是使用with rollup 查詢之后,查詢結果集合里面會多一條NULL 記錄,這一題利用NULL 和空字符相等,然后得到flag。測試如下圖:



提交 username=' or 1 group by pwd with rollup limit 1 offset 2 #?
0x01 小結
偏向于盲注的我對like的印象分蹭蹭往上漲,不僅僅停留在繞過“=” 的過濾了
with rollup 也是一種不錯的姿勢 除非是某些題目故意設定 要不然一般或許有更好的選擇吧