在日常的渗透测试及各种攻防比赛项目中,waf设备的拦截是越来越厉害了,以至于很多朋友遇到weblogic 2017-10271、weblogic 2019-2725等反序列化漏洞就直接放弃。过去几年我曾帮助多位朋友绕过waf拿下权限,本期ABC_123就分享几个真正实战中用到的绕waf技巧,给大家拓展一下思路。
后续ABC_123将会继续分享weblogic系列漏洞绕waf的方法,欢迎关注本公众号“ABC123安全研究实验室”。
weblogic 2017-10271及2019-2725这两种漏洞的绕waf方法基本上相同,我们只需要举其中一个例子演示即可。先看一个weblogic 2019-2725漏洞利用过程,如下图所示,提交payload之后,成功执行了命令。后续绕waf过程都围绕以下这个http请求数据包展开。
很多waf设备对URL进行了判断,那么我们可以用如下方法试试,添加多个/////////////。下图只做演示,实际情况要添加好几倍长度的//////////才有效。
接下来我们还可以添加无意义的GET请求参数,添加username=xxxxx或者password=sdfewfwfeewffew等等。
为了进一步绕过waf,我们还可以对URL路径进行URL编码混淆掺杂,这里不要将整个url路径全部用URL编码,如下图所示,一小段一小段地进行URL编码绕waf效果更好。
我们也可以在请求数据包中添加脏数据,可以在<wsa:RelatesTo>标签中间添加脏数据,由于是POST请求数据包,这里面可以添加很长很长的脏数据。
有的waf设备可能检测了以<soapenv:开头的请求数据包,那么我们可以在头部添加xxxxxxx脏数据,经过测试发现payload仍然是可以正常执行的。
有的waf设备可能对请求数据包进行了内容检测,这个非常难绕过,绕过方法之一,就是用XML注释掺杂的方法绕过waf设备检测。
1. 上述的绕waf思路,都是我在实战中常用的,反复深度利用脏数据的同时,与其它的绕waf方法结合起来效果会更好。
2. 理解一个技术问题需要理解它的原理,然后才能举一反三。