文章总结: 文章分析并复现了ApacheStruts2S2-069XXE实体注入漏洞,指出XWork-Core组件因未禁用外部实体与参数实体导致攻击者可读取文件、发起SSRF或DoS,影响2.0.0-2.3.37、2.5.0-2.5.33、6.0.0-6.1.0版本,作者给出代码对比、修复方案及利用读取/etc/passwd与DNSlog验证方法,建议立即升级并关闭相关XML解析特性。 综合评分: 88 文章分类: 漏洞分析,WEB安全,渗透测试,安全工具,漏洞POC
第153篇:Struts2-069 XXE 实体注入漏洞分析+复现
原创
abc123info abc123info
希潭实验室
2026年1月24日 09:49 山东
Part1 前言
大家好,我是ABC_123。最近Struts2框架爆出了一个S2-069漏洞,看了一下是XXE实体注入漏洞,简要地分析了一下,把过程写出来分享给大家。
Part2 技术研究过程
该漏洞的成因在于Apache Struts2框架的 XWork-Core 组件对 XML 解析器的安全选项配置存在疏漏,攻击者可以构造恶意 XML 数据并向受影响的 Struts2 应用发起请求,从而触发XML外部实体注入攻击,最终实现数据窃取、SSRF或拒绝服务等恶意操作。影响版本:Struts 2.0.0-2.3.37 (EOL),Struts 2.5.0-2.5.33 (EOL),Struts 6.0.0-6.1.0。
- 漏洞分析过程
如下图所示,对比struts2-6.0.3版本与struts2-6.1.1版本代码的不同,可以看到在com.opensymphony.xwork2.util.DomHelper.parse类中,出现了右图中的修复方案
如下所示,修复后的Struts2框架通过上述代码关闭外部通用实体(External General Entities),禁止解析类似 <!ENTITY xxe SYSTEM "file:///etc/passwd"> 这种外部实体。
factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
如下所示,修复后的Struts2框架禁止解析 DTD 中的参数实体(更常用于复杂 XXE 变种),很多 XXE payload 依赖这个能力来加载远程 DTD 或绕过限制。
factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
除此之外,我们继续对比不同版本的代码,XSLTResult.java类中也修复了一处XXE漏洞:
设置成 “”(空字符串)通常表示:完全不允许访问任何外部 DTD。
factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
设置成 “” 表示:禁止访问任何外部 XSLT 样式表 stylesheet。
factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
- 漏洞复现过程
首先Intellij Idea编写一个测试环境,代码如下:
使用网上流传的EXP发包如下,确实可以利用成功。
- 漏洞验证方法
接下来是如何检测发现这个漏洞,通过读取/etc/passwd及windows/win.ini文件内容来判断是否存在关键是一个方法。
但有的XML读入过程未必会有回显,所以也需要加入DNSlog的方式来判断漏洞是否存在。
Part3 总结
1. 等后续工具修正完bug后会提供下载地址。
2. 为了便于技术交流,现已建立微信群”希水涵-信安技术交流群”,欢迎您的加入。
公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。
Contact me: 0day123abc#gmail.com
OR 2332887682#qq.com
(replace # with @)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:希潭实验室 abc123info abc123info《第153篇:Struts2-069 XXE 实体注入漏洞分析+复现》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论