一、大小写绕过(只适用windows)
**filter:**禁止.php .jsp .asp
**原理:**由于匹配时区分大小写,而解析时不区分大小写都可以解析,从而导致绕过黑名单。
**示例:**抓包,改文件名,任意选择被匹配的位置的字符串中的部分字符转换大小写即可。
php
.Php ==> .php
.jSP ==> .jsp
.AsP ==> .asp
二、空格绕过(只适用windows)
**filter:**禁止.php .jsp .asp
**原理:**在文件名的前面或者后面(主要是后面,因为一般过滤后缀名)添加空格,此时函数匹配不到,但是带有空格不影响解析。
**示例:**抓包,改文件名,在文件末尾添加空格。
php
"shell.php " ==> "shell.php"
filter并不认为".php "是".php"
"shell.php "是被当做"shell.php"解析的。
三、" . "绕过(不安全的Apache、NGINX配置文件)
**原理:**与空格绕过类似。
示例:.php
php
shell.php. ==> shell.php
**补充:**没太大用,真实环境没有傻子修改解析器配置文件。
四、::$data绕过(只适用windows)
**原理:**在windows中,访问 <file>::data 就是访问文件本身,访问 \
**示例:**抓包,改文件名,在文件末尾添加 ::$data 。
php
shell.php::$data ==> shell.php
五、双写绕过(filter将匹配值替换为空)
**原理:**删除指定字符串后的字符串刚好是黑名单中的内容。
示例:
php
shell.php ==> shell.pphphp
==> shell.PphpHP
**补充:**没太大用,很多都是正则替换,且忽略大小写。