MD5、HASH相关漏洞
-
原理
PHP
为弱类型语言,不通数据类型可以进行转换,在进行算数运算时(加、减、乘、除、比较等)会把运算符两边的变量先统一转换为整数再进行运算,如果时拼接操作则会转换为Str类型再进行拼接。 -
示例
<?php if (md5($GET['a']==md5($GET['b'])){ //输入两个值,比较它们的值,如果相等,输出flag echo $flag; }
MD5
加密产生的一般为字符串,该函数意图是比较两个字符串是否相等,但是MD5
加密可能产生形似0e123456..
的字符串,php尝试将该字符串转换为整数时,结果总是为0(科学计数法),因此只要找到两个字符串MD5加密后能产生0e123456..
结构的字符串,这个函数就被破解了。 -
典型
-
MD5加密
- QNKCDZO
- 240610708
- s878926199a
- s155964671a
- s214587387a
-
MD4加密
- 0e251288019
-
SHA1加密
- aa3OFF9m
- aaO8zKZF
- aaroZmOk
- aaK1STfY
-