php常见漏洞分析
extract() 函数,变量覆盖
prase_str()函数,变量覆盖
变量隐式覆盖产生漏洞,不知道变量被覆盖了
弱类型变量(== 和 ===)、MD5碰撞
若php代码中出现==号判断,那么80%有漏洞。
php一个类型包含两个参数储存:type,value。
crc校验,每个文件有一个id,这个id就是MD5值。
MD5值有没有改变就是按照文件有没有损坏的证据。
-
一般判断的时候,是直接a==b判断,但是若MD5值本来不相等,但是 == 时相等,就会产生漏洞。
-
比如说MD5值开头都是0e,那么后面无论是什么,MD5值判断都是相等的。
-
强相等也可以产生漏洞,就是使用MD5函数时,无法解析传入的是数组。
==: md5(str) QNKCDZO 240610708 s878926199a s155964671a s214587387a s214587387a sha1(str) sha1后以0E开头 sha1(‘aaroZmOk’) sha1(‘aaK1STfY’) sha1(‘aaO8zKZF’) sha1(‘aa3OFF9m’) ===: 构造:a1[]=1 && a2[]=2