[實驗吧](web)因缺思廳的繞過 源碼審計繞過

0x00 直接看源碼吧


早上寫了個注入fuzz的腳本,無聊回到實驗吧的題目進行測試,發現了這道題php

地址:http://ctf5.shiyanbar.com/web/pcat/index.phpweb

分析以下:測試

1. 看過濾,過濾了一些查詢關鍵詞,明注是不可能了,過濾括號,一般的盲注也是實現不了。3d

2. 看要獲得flag的條件,咱們輸入的密碼和查詢的密碼要一致,並且查詢結果只能有一條。blog

 

0x01 正確姿式


懶得寫思路流程了,這裏直接給出兩種解題姿式,一種是盲注出密碼,一種是使用with rollup 再加php弱類型。ip

1. 先看盲注吧:源碼

payload: ' or pwd like 's%' limit 1#it

解釋: 要使查詢語句正常並且出結果,必需要有一個爲真,這裏是根據pwd進行判斷的,若此時查詢出來的結果中的pwd 的值是以s開頭,則返回true ,若不是,則返回false。io

我是看人家writeup學到的,不得不認可,要是在知道列名的狀況下,這種盲注手段簡單方便不少,讓我對 like的印象加深了許多。class

那剩下來就是腳本的事情了。

2. with rollup

這是個人一個知識盲區,出題人估計一開始的出發點也是這個吧,因此我也想記錄一下。

我的下面通俗解釋一下 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 也是一種不錯的姿式 除非是某些題目故意設定 要否則通常或許有更好的選擇吧

相關文章
相關標籤/搜索