【juice-shop】★★★ XXE Data Access:通过 XXE 读取服务器文件
0x01 任务简报
💡 提示 (Hints)1. 这项挑战的关键点是废弃的 B2B 接口。
2. 这个挑战听起来比实际要难得多,这更凸显了其潜在漏洞的严重性。
3. 研究典型的 XXE 攻击模式,基本上就能免费获得解决方案。
0x02 实战:复现漏洞
📝 第一步:构造 XXE Payload
创建一个 XML 文件,包含 XXE(XML 外部实体)攻击 payload:
|
|
文件内容:
|
|
Payload 说明:
| 部分 | 说明 |
|---|---|
<!DOCTYPE xxe [...]> |
定义文档类型和实体 |
<!ENTITY xxe SYSTEM "file:///etc/passwd"> |
关键:定义外部实体,指向 /etc/passwd 文件 |
<xxe>&xxe;</xxe> |
在 XML 中引用该实体,触发文件读取 |
📤 第二步:上传 XXE 文件
打开投诉(Complaint)表单,选择刚创建的 1.xml 文件进行上传。

🔍 第三步:查看响应
打开浏览器开发者工具(DevTools),查看网络请求:
|
|
在响应或错误信息中,服务器会返回 /etc/passwd 文件的内容。
✅ 第四步:完成挑战
成功读取服务器上的敏感文件内容,挑战完成。