Part1 前言 

在日常的渗透测试及各种攻防比赛项目中,waf设备的拦截是越来越厉害了,以至于很多朋友遇到weblogic 2017-10271、weblogic 2019-2725等反序列化漏洞就直接放弃。

Part2 技术研究过程 

weblogic漏洞利用

weblogic 2017-10271及2019-2725这两种漏洞的绕waf方法基本上相同,我们只需要举其中一个例子演示即可。先看一个weblogic 2019-2725漏洞利用过程,如下图所示,提交payload之后,成功执行了命令。后续绕waf过程都围绕以下这个http请求数据包展开。

添加多个反斜杠

很多waf设备对URL进行了判断,那么我们可以用如下方法试试,添加多个/////////////。下图只做演示,实际情况要添加好几倍长度的//////////才有效。

添加无用的GET请求参数

接下来我们还可以添加无意义的GET请求参数,添加username=xxxxx或者password=sdfewfwfeewffew等等。

URL编码混淆掺杂

为了进一步绕过waf,我们还可以对URL路径进行URL编码混淆掺杂,这里不要将整个url路径全部用URL编码,如下图所示,一小段一小段地进行URL编码绕waf效果更好。

 

请求包XML标签内掺杂脏数据

我们也可以在请求数据包中添加脏数据,可以在<wsa:RelatesTo>标签中间添加脏数据,由于是POST请求数据包,这里面可以添加很长很长的脏数据。


 

请求包头部添加脏数据

有的waf设备可能检测了以<soapenv:开头的请求数据包,那么我们可以在头部添加xxxxxxx脏数据,经过测试发现payload仍然是可以正常执行的。

请求数据包添加XML注释

有的waf设备可能对请求数据包进行了内容检测,这个非常难绕过,绕过方法之一,就是用XML注释掺杂的方法绕过waf设备检测。


 

 Part3 总结 

1.   上述的绕waf思路,都是我在实战中常用的,反复深度利用脏数据的同时,与其它的绕waf方法结合起来效果会更好。

2.   理解一个技术问题需要理解它的原理,然后才能举一反三。