admin

编写Burp分块传输插件绕WAF

作者:admin 发布时间: 2020-04-24      460 人阅读    本文共计998个字,预计阅读时长4分钟。

分块传输绕WAF在年初的《利用分块传输吊打所有WAF》中学习到了,不过没有深入研究。最近在T00ls上看到大佬们在编写sqlmap的tamp脚本,过程中遇到了比较难解决的一个问题,对sqlmap数据包加入Transfer-Encoding: ChunkedHTTP头。本周尝试通过编写Burp插件来解决这个问题,同时也为了方便在Burp上快速测试分块传输是否能绕过waf。我们开始吧!

 0x01 

功能设计

我们先来看看插件要实现的功能

  1. 在Burp Repeater套件上可对数据包进行快速chunked解码编码
  2. 自动化对Burp的Proxy,scanner,spider等套件的数据包进行编码
  3. 可设置分块长度,是否开启注释

 0x02 

代码编写

限于边幅,我只说明核心函数,并通过注释的方式解释代码的相关功能。

2.1 编码函数

这是我们的核心函数,对各个套件数据HTTP数据进行chunked编码

自动编码其他模块的数据包,我们可以通过实现Burp的IHttpListener,IProxyListener这两个接口,分别实现processHttpMessage(),processProxyMessage()这两个方法。

注意:

这里注意一个问题,Burp的所有模块的HTTP流量都会经过IHttpListener.processHttpMessage()这个方法,但是如果在这里处理数据包的话,Burp Proxy模块的数据包被修改之后,不会在Proxy套件UI界面显示修改后的流量,故Proxy模块流量处理单独使用IProxyListener.processProxyMessage()。

2.2 自动编码Proxy套件的流量

2.3 自动编码Proxy之外的套件(Intruder,scanner...)流量

完整的代码,请后台留言“Burp分块传输插件”,获取下载地址。

 0x03 

效果演示

演示一:快速编码解码

在Burp repeater套件可以快速对请求内容进行chunked编码解码,来对WAF进行测试。

演示二:搭配sqlmap进行sql注入

sqlmap代理到Burp中,插件对Proxy套件的流量进行编码处理,来绕过waf。

动图有些大无法上传公众,请访问博客图片,地址如下:
http://gv7.me/articles/2019/chunked-coding-converter/sqlmap-bypassWAF.gif

小拉达网络安全,转载请附上原文出处链接
xss漏洞挖掘-网络安全 » 编写Burp分块传输插件绕WAF

发表评论

提供最优质的资源集合

立即查看 了解详情

Warning: include_once(baidu_js_push.php): failed to open stream: No such file or directory in /www/wwwroot/www.digter8.com/wp-content/themes/ripro6.2/footer.php on line 69

Warning: include_once(): Failed opening 'baidu_js_push.php' for inclusion (include_path='.:/www/server/php/72/lib/php') in /www/wwwroot/www.digter8.com/wp-content/themes/ripro6.2/footer.php on line 69