1. 程式人生 > >實驗吧登陸一下好嗎 WP

實驗吧登陸一下好嗎 WP

                     

登陸一下好嗎??(http://www.shiyanbar.com/ctf/1942)  username= 1’=’0  password= 1’=’0  或者  username=what’=’ password=what’=’  或者 username:admin’=’ password:admin’=’  得到ctf{51d1bf8fb65a8c2406513ee8f52283e7}  好吧,其實我提供的只是萬能密碼嘗試而已,真正的writeup在這裡(by wonderkun,侵刪):

根據題目的提示,獲知該題目的目的使用sql注入來繞過登陸。

猜測後臺的sql應該是

select * from table where username= ‘u

sernameandpassword=password’

進過測試,發現過濾了以下字元

| , – ,  or , union , # , select ,* ,/ 

這寫字元沒辦法繞過。

但是為了登陸成功,需要讓  sql語句返回true。

除了pact想到的同雙等號繞外,還有一種方法,主要用到以下兩個技巧:

第一: mysql的資料型別轉換特性。  這裡寫圖片描述  通過這個圖,應該可以看明白啦, user是一個字串型別的,當他接受到一個整型值切值為0的時候,就會返回資料庫的所有條目。  一個字串加一個整形,會自動的變數型別轉換,變為一個整型。

所以,只需要讓sql執行

select * from table where username=’a’+0;

就可以返回一個ture了,但是你會發現註釋符全部過濾啦,後面的部分去不掉,這時候你需要知道下面的姿勢。

第二: mysql的註釋符除了  

– + , # ,/**/ 之外,還有一個 ;%00 ,很多人都不知道最後一個。

所以最後的payload 是這樣的: username=a’+0;%00&password=  這裡寫圖片描述