第153篇:Struts2-069XXE实体注入漏洞分析+复现

admin 2026-01-26 02:30:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章分析并复现了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


cover_image

第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",&nbsp;false);

如下所示,修复后的Struts2框架禁止解析 DTD 中的参数实体(更常用于复杂 XXE 变种),很多 XXE payload 依赖这个能力来加载远程 DTD 或绕过限制。

factory.setFeature("http://xml.org/sax/features/external-parameter-entities",&nbsp;false);

除此之外,我们继续对比不同版本的代码,XSLTResult.java类中也修复了一处XXE漏洞:

设置成 “”(空字符串)通常表示:完全不允许访问任何外部 DTD。

factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD,&nbsp;"");

设置成 “” 表示:禁止访问任何外部 XSLT 样式表 stylesheet。

factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET,&nbsp;"");
  • 漏洞复现过程

首先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 实体注入漏洞分析+复现》

jQueryv1.11.3 网络安全文章

jQueryv1.11.3

文章总结: 文档标题为jQueryv1.11.3,正文部分仅包含图片占位符,未提供具体文字内容。无法提取核心技术要点、漏洞详情或安全建议,属于内容缺失的无效技术
评论:0   参与:  0