php-MD5/sha1
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