0x1:waf拦截原理
0x2:绕过waf思路
0x3:burp插件代码实现原理
0x4:代码片段
0x1:waf拦截原理
目前市面上的大部分安全防护设备包括云waf针对Webshell的查杀都是基于字符串查杀,Darkray大牛说过一句话一切基于字符串查杀(拦截)的方式都是纸老虎。
这里的字符串查杀分为两种:
基于文件的字符串静态查杀 基于流量中异常字符串拦截(http)本次我们仅讨论如何绕过第2种方式(http)拦截方式。
一般基于http流量当中的字符串拦截最直接的体现就在于菜刀无法连接上一句话,因为菜刀在连接一句话时会POST特定数据包Web防护工具主需要根据该数据包编写规则就可以利用正则表达式来判断该数据包是否是菜刀发送,如果是就将其拦截。如图
0x2:绕过waf思路
我们既然知道了waf的拦截原理,那么我们只需要将POST数据包中的关键字修改就可以绕过防护软件,可以参考之前的其他大牛的文章:http://www.52pojie.cn/thread-214804-1-1.html
但是这样需要每个功能去修改实在很麻烦而且再次被定位特征后期维护也很麻烦,既然菜刀原理也是POST数据包为什么我们不能直接修改菜刀POST过去的数据包?这里 需要用到抓包神器burp,我们可以写一个替换插件来完成自动替换数据包。
0x3:burp插件代码实现过程
我们首先抓取原始数据包放到firefox中测试如图
访问被拦截,然后我们修改下字符串把
1 value=@eval/**/($_POST[z9]/**/($_POST[z0]));使用base64加密为:
1 value=QGV2YWwvKiovKCRfUE9TVFt6OV0vKiovKCRfUE9TVFt6MF0pKTs=我们重新访发送数据包如图
既然我们总结出了规律,我们只需要每次把关键代码加密后发送就可以达到过防护软件的目的。
burp的开发http://drops.wooyun.org/papers/3962 http://drops.wooyun.org/tools/5751
0x4:代码片段
为防止伸手党,只给出关键代码片段截图
效果如图
后记:
ps数据包实现单向加密,当然对应的后端也要进行解密。 举一反三我们也可以把数据转换成cookie传输,但是暂时还没有想到如何做双向加密传输。