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绕过成功生效。

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/zhaoyunxiang/p/15350629.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!