写点什么

网络安全漏洞复现与分析

  • 2021 年 11 月 11 日
  • 本文字数:1015 字

    阅读完需:约 3 分钟

网络安全漏洞复现与分析

漏洞介绍

Weblogic 的 WLS Security 组件对外提供 webservice 服务,其中使用了 XMLDecoder 来解析用户传入的 XML 数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。攻击者发送精心构造的 xml 数据甚至能通过反弹 shell 拿到权限。

影响版本

OracleWebLogic Server10.3.6.0.0OracleWebLogic Server12.1.3.0.0OracleWebLogic Server12.2.1.1.0OracleWebLogic Server12.2.1.2.0

漏洞复现环境

攻击方:kali 2021

服务端:vulhub 的 weblogic 的 CVE-2017-10271 环境


【一>所有资源获取<一】

1、200 多本网络安全系列电子书(该有的都有了)

2、全套工具包(最全中文版,想用哪个用哪个)

3、100 份 src 源码技术文档(项目学习不停,实践得真知)

4、网络安全基础入门、Linux、web 安全、攻防方面的视频(2021 最新版)

5、网络安全学习路线(告别不入流的学习)

6、ctf 夺旗赛解析(题目解析实战操作)

漏洞复现

攻击方使用 Burp 发送反弹 shell 的 payload:


成功得到 shell:


POC

https://github.com/NingKn/CVE_EXP/blob/main/cve-2017-10271/cve-2017-10271.py

漏洞分析

CVE-2017-10271 漏洞是 WebLogic Server WLS 组件的远程命令执行漏洞,触发漏洞 url 如下:

http://192.168.124.42:7001/wls-wsat/CoordinatorPortType 发送 post 数据包,通过构造 SOAP(XML)格式的请求,在解析的过程中导致 XMLDecoder 反序列化漏洞。

  1. weblogic/wsee/jaxws/workcontext/WorkContextServerTube类的 processRequest 方法中,处理我们发送的 POST 数据包中的 SOAP(XML)数据。var1 即是传入的 SOAP 数据,我们 idea 配置好远程调试并且开启 debug 后,在 processRequest 方法中下断点:

  2. Burp 通过 post 发送数据包后,idea 停留在断点处,查看其中的 var1 变量既是我们发送的 xml 数据:

  3. 代码往下走,进入 readHeaderOld 方法,跟进前我们查看 var3 变量的信息:


  1. 跟进 readHeaderOld 方法,发现这里其实就是进行了一波转换,生成了 WorkContextXmlInputAdapert var6 对象,下图是该方法中的 var4 变量存放了的 xml 数据:

  2. Var6 中的 buf 集合就是 var4 中的数据,及我们传输的 xml:

  3. 跟进 receive 方法,var1 实参是上面 var6 形参:

  4. 跟进 var2 的 receiveRequest 方法:


  1. 这里的 var1 就是上面的 var1 形参:


  1. 跟进 receiveRequest 方法:

  2. 跟进 readEntry 方法,var0 存放了 xml 数据:


  1. 跟进 var0 的 readUTF 方法:


直接调用了 xmlDecoder.readObject 方法,产生漏洞。

总结:

XMLDecoder 来解析用户传入的 XML 数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令执行。

漏洞修复:

方法一:删除 wls-wsat 组件,然后重启 weblogic

用户头像

我是一名网络安全渗透师 2021.06.18 加入

关注我,后续将会带来更多精选作品,需要资料+wx:mengmengji08

评论

发布
暂无评论
网络安全漏洞复现与分析