WEB_備份是個好習慣


題目鏈接:http://123.206.87.240:8002/web16/

題解:

打開題目鏈接,得到一串東西

題目標題為”備份是個好習慣“,故考慮修改url為index.php.bak(bak為網站的備份文件),修改后自動得到一個備份文件

http://123.206.87.240:8002/web16/index.php.bak

打開此文件,是一段PHP源代碼

可以看出題目需要我們傳入兩個值,分別為key1和key2,且key1和key2的值不能相同但md5值相同,通過傳入值不相同的數組可以實現。但是有一點需要注意,語句str_replace(‘key’,’ ',$str)會將key替換為空格,這一點我們可以通過雙寫key對其進行繞過,最終的payload:?kekeyy1[]=1&kekeyy2[]=2

有兩種方法繞過:

md5()函數無法處理數組,如果傳入的為數組,會返回NULL,所以兩個數組經過加密后得到的都是NULL,也就是相等的。

payload: ?kkeyey1[]=1&kkeyey2[]=2
利用==比較漏洞
如果兩個字符經MD5加密后的值為 0exxxxx形式,就會被認為是科學計數法,且表示的是0*10的xxxx次方,還是零,都是相等的。

下列的字符串的MD5值都是0e開頭的:

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

最后看看d41d8cd98f00b204e9800998ecf8427e是什么意思,拿到MD5解密試一下,結果為NULL,也就是說這是NULL的MD5值,因為默認是沒有傳入key1和key2的,這兩個值也就是null.

payload:  ?kkeyey1=QNKCDZO&kkeyey2=s878926199a

d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ecf8427e的MD5解密為空【MD5在線解密鏈接:https://www.cmd5.com/

綜上所述,兩種方法可行:

 

或者:

即flag為:Bugku{OH_YOU_FIND_MY_MOMY}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM