Skip to content

在参数前加空格绕过WAF

WAF 通常针对一个参数进行检测,但如果他匹配不到这个参数呢?那他就检测不了了。

代码可能是这样的

php
<?php
// 模拟 WAF 检查逻辑
foreach ($_GET as $key => $value) {

    if ($key === "num") { //输入空格的时候,会导致这里不匹配,从而绕过了WAF
        if (preg_match('/[a-zA-Z]/', $value)) {
            die("WAF 拦截:检测到非法字符!");
        }
    }
    
}

// 业务代码
$_GET["num"] // 可以正常访问
?>

所以假如参数是s,那么我们这样传参 ? s=114514 就可以绕过WAF