CVE-2017-10271漏洞复现与分析
漏洞介绍
Weblogic的WLS Security组件对外提供webservice服务,其中使⽤了XMLDecoder来解析⽤户传⼊的XML数据,在解析的过程中出现反序列化漏洞,导致可执⾏任意命令。攻击者发送精⼼构造的xml数据甚⾄能通过反弹shell拿到权限。
影响版本
OracleWebLogic Server10.3.6.0.0
OracleWebLogic Server12.1.3.0.0
OracleWebLogic Server12.2.1.1.0
OracleWebLogic Server12.2.1.2.0
cve漏洞库漏洞复现环境
攻击⽅:kali 2021
服务端:vulhub的weblogic的CVE-2017-10271环境
漏洞复现
攻击⽅使⽤Burp发送反弹shell的payload:
成功得到shell:
POC
漏洞分析
CVE-2017-10271漏洞是WebLogic Server WLS组件的远程命令执⾏漏洞,触发漏洞url如下:
① 2000多本⽹络安全系列电⼦书
② ⽹络安全标准题库资料
③ 项⽬源码
④ ⽹络安全基础⼊门、Linux、web安全、攻防⽅⾯的视频
⑤ ⽹络安全学习路线图
1. 在weblogic/wsee/jaxws/workcontext/WorkContextServerTube类的processRequest⽅法中,处理我们发送的POST数据包中
1. 在weblogic/wsee/jaxws/workcontext/WorkContextServerTube类的processRequest⽅法中,处理我们发送的POST数据包中
的SOAP(XML)数据。var1即是传⼊的SOAP数据,我们idea配置好远程调试并且开启debug后,在processRequest⽅法中下断
点:
2. Burp通过post发送数据包后,idea停留在断点处,查看其中的var1变量既是我们发送的xml数据:
3. 代码往下⾛,进⼊readHeaderOld⽅法,跟进前我们查看var3变量的信息:
4. 跟进readHeaderOld⽅法,发现这⾥其实就是进⾏了⼀波转换,⽣成了WorkContextXmlInputAdapert var6对象,下图是该⽅法
中的var4变量存放了的xml数据:
5. Var6中的buf集合就是var4中的数据,及我们传输的xml:
6. 跟进receive⽅法,var1实参是上⾯var6形参:
7. 跟进var2的receiveRequest⽅法:
8. 这⾥的var1就是上⾯的var1形参:
9. 跟进receiveRequest⽅法:
10. 跟进readEntry⽅法,var0存放了xml数据:
11. 跟进var0的readUTF⽅法:
直接调⽤了adObject⽅法,产⽣漏洞。
总结:
XMLDecoder来解析⽤户传⼊的XML数据,在解析的过程中出现反序列化漏洞,导致可执⾏任意命令执⾏。漏洞修复:
⽅法⼀:删除wls-wsat组件,然后重启weblogic
⽅法⼆:
本⽂作者:NingKn, 转载请注明来⾃

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。