in_array
in_array函数用来判断一个值是否在一组数组中
总共三个参数,如果最后一个type为true,则为严格类型校验 类似于===
如果没有type=true则为弱类型匹配,此时存在类型强制转换导致绕过校验的风险
比如:
$whitelist = ["hit"]; if (in_array($page, $whitelist)) { echo "yes"; return true;
以上就是验证这个page是否满足这个hit,那么传入page=hit#即可进行绕过
经过测试,目前只发现#可以绕过这个字符串in_array校验的
下面是数字型的绕过
$whitelist = [1,2,3]; if (in_array($page, $whitelist)) { echo "yes"; return true;
可以传入page=1wff 1; 1,(前面是数字后面是字符串或者符号 进行绕过)审计代码时,留意可能存在注入点
include
include("index.php?../../../../../etc/passwd");
这样可以绕过文件包含限制,达到任意文件包含的目的