2019年06月15日,网络上爆出 Oracle Weblogic远程反序列化命令执行漏洞,该漏洞绕过了最新的Weblogic补丁(CVE-2019-2725),攻击者可以发送精心构造的恶意HTTP请求,在未授权的情况下远程执行命令。
影响产品:
Oracle WebLogic Server10.3.6.0.0
Oracle WebLogic Server12.1.3.0.0
影响组件:
wls9_async_response.war
wls-wsat.war
通过CVE-2019-2725补丁分析发现,较上一个漏洞CVE-2017-10271补丁而言,官方新增了对class元素的过滤,并且array元素的length属性转换为整形后不得大于10000:
本次漏洞利用某个元素成功替换了补丁所限制的元素,再次绕过了补丁黑名单策略,最终造成远程命令执行。
官方在去年十月份发布了CVE-2017-10271补丁文件将object、new、method关键字继续加入到黑名单中,一旦解析XML元素过程中匹配到上述任意一个关键字就立即抛出运行时异常。但是针对void和array这两个元素是有选择性的抛异常,其中当解析到void元素后,还会进一步解析该元素中的属性名,若没有匹配上index关键字才会抛出异常。而针对array元素而言,在解析到该元素属性名匹配class关键字的前提下,还会解析该属性值,若没有匹配上byte关键字,才会抛出运行时异常:
判断组件是否存在
1、可通过访问路径/_async/AsyncResponseServiceSoap12判断wls9_async_response组件是否存在。
2、可通过访问路径/wls-wsat/CoordinatorPortType,判断wls-wsat组件是否存在。
验证poc
抓包,替换为poc,可以看到成功执行了代码。
具体代码见poc文件。
赛尔网络技术支持电话:18963073660