實驗吧-FALSE

源碼:php

<?php
if (isset($_GET['name']) and isset($_GET['password'])) {
    if ($_GET['name'] == $_GET['password'])
        echo '<p>Your password can not be your name!</p>';
    else if (sha1($_GET['name']) === sha1($_GET['password']))
      die('Flag: '.$flag);
    else
        echo '<p>Invalid password.</p>';
}
else{
	echo '<p>Login first!</p>';
?>

從源碼中看出須要name和password不相等,可是他們通過sha1算法加密後須要相等,並且是三等號比較,這就不只要求值相同,還要保證是同一種類型。首先想到bool類型,而sha1和md5都沒法處理數組的狀況,因此嘗試讓sha1處理數組,返回兩個false,天然地就相同了。算法

由此,獲取了flag。數組

相關文章
相關標籤/搜索