PHP 函数 处理 漏洞绕过

本文持续更新

一,md5()如果传入为数组则返回为NULL

  strpos()如果传入数组,会返回NULL

  strcmp函数无法比较数组,可以使用数组绕过。

二,利用==比较漏洞:

  如果两个字符经MD5加密后为0exxxxx形式会被认为是科学计数法表示0*10的xxxx次方,值为零所以相等

  以下例子MD5值是0e开头

  QNKCDZO

  240610708

  s878926199a

  s155964671a

  s214587387a

md5碰撞问题:

  根据==用法,0 == 字符串是成立的,

  从而使用以上字符串绕过MD5检查。

三:SHA1

例子:sha1($_GET['uname']) === sha1($_GET['passwd']

sha1比较数组漏洞: uname[]=1&passwd[]=23 即可绕过 (注:数组数字可任意)

四:file_get_contents() 函数把整个文件读入一个字符串中。

  这里一定要注意,如果文件不存在,此函数返回fales(0)

五:isset()函数只检查变量是否存在,不检查值