Bugku-CTF之前女友(SKCTF)


Day35 

 

 

前女友(SKCTF)

 

flag格式:SKCTF{xxxxxxxxxxxxxxxxxx}
 
 
本題要點:strcmp()、md5 collision
 
 
 
 
滿滿的套路啊~
 
鏈接打開后,發現一段代碼
 
 
 
讀一下代碼,我們看到strcmp()這個函數
這個函數是用於比較字符串的函數
 
int strcmp ( string $str1 , string $str2 )
參數 str1第一個字符串。str2第二個字符串。
如果 str1 小於 str2 返回 < 0;
如果 str1 大於 str2 返回 > 0;
如果兩者相等,返回 0。
 
 
 
回看這段代碼
我們可以看到 是以GET形式傳遞3個值,其中v1變量值 != v2變量值,if中的第二個判斷條件用的是 ==,我們可以利用 “0x” == "0a"的判斷結果為1,找出經過加密后的兩個md5值以0開頭,接下去以都相同的值,直到遇到的字母的兩個字符串相等 v3 == flag
 
那么
 
方法一:
 
我們可以通過
PHP處理0e開頭md5時hash字符串漏洞   詳細請看
 
https://www.cnblogs.com/0yst3r-2046/p/10748412.html    (md5 collision之記錄一些MD5值)
 
構造 index.php?v1[]=QLTHNDT&v2[]=UTIPEZQ&v3[]=EEIZDOI
 
得到答案:
SKCTF{Php_1s_tH3_B3St_L4NgUag3}
 
 
方法二:
 
在PHP中
MD5是不能處理數組的,md5(數組)會返回null
所以即
md5(a[])==null,md5(b[])==null,md5(a[])=md5(b[])=null也可以滿足代碼中的條件
 
構造: index.php?v1[]=1&v2[]=2&v3[]=3
 
 
 
 
 
 
完成!
 
 
 
 
 
 
 
 
 
 
參考資料:
 
 
 
 
 
 
 


免責聲明!

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



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