1、數字和字符串比較,字符串會轉化成數字再比較,因為==是弱比較。"123bca"轉化成123.
MD5函數漏洞
MD5繞過,php在處理哈希字符串時,把”0e“開頭的哈希值都解釋為0
以下值在MD5加密以0E開頭:
-
QNKCDZO
-
240610708
-
-
s155964671a
-
s214587387a
以下值在sha1加密之后以0E開頭:
-
sha1('aaroZmOk')
-
sha1('aaK1STfy')
-
sha1('aaO8zKZF')
-
sha1('aa3OFF9m')
1.2、bool類型的true跟任意字符串可以弱類型相等。
1.3、sha1加密比較
$_GET['name']==$_GET['password']
sha1($_GET['name'])===sha1($_GET['password'])
其實是最簡單的報錯,false,仔細研究SHA1加密你就發現,其要求參數不能為數組,那我將傳入的參數改成數組,兩邊return的結果不就都為false,從而,滿足不等與相等。實現步驟更簡單,bp中將傳參變量name,password加個[]即可。利用數組繞過,error====error
name[]=1&password[]=2