1.使用文件包含的方法绕过WAF:
这里有一段PHP代码:
<?php$filename = $_GET[\'filename\'];include($filename);?>
原理:将$_GET()获得的参数赋值给$filename变量,然后include包含变量,如果直接访问此段php代码,会遭到WAF的拦截
这个时候用php在线加密,将php文件进行加密处理,网址:http://www.phpjm.net/encode.html,加密后的php文件,和谐了WAF的检测机制,
再次来访问php文件,
发现web显示空白,说明绕过了WAF的检测机制,include.php文件被执行,下面带参数($filename)访问,
可以看到是成功执行的,上图中的hao.php测试文件之所以能成功执行,就是因为包含再在接受到的参数赋值给变量中,这样就可以实现绕过,正常访问
2.使用NTSF交换数据流的方式绕过WAF:
2.1创建数据流文件:echo data >> test.txt:webshell.php,这里也需要用到文件包含,在下一步编辑数据流的时候,包含一个受WAF限制的php文件进去
创建完成后,可以使用命令:dir /r 查看数据流文件,但是此命令在win 7 和win 10中生效,在win sever 2003中不支持显示
2.2创建完成后,目录中存在test.txt文件,但是test.txt打开没有任何内容,并且没有webshell.php文件显示在目录下面,但webshell.php文件是可以访问的,也是可以用命令行显示的
2.3 data字段显示在webshell.php文件中,这个时候将payload代码编辑在webshell.php文件里面,替换掉data字段,后续用来在web中访问,看带着payload的文件是否能绕过WAF,payload代码可以是一句话木马,只要是在WAF限制之内的都可以,
2.4 访问数据流文件
成功访问,说明数据流文件对WAF绕过成功生效。