学徒-普通XXE-执行SSRF攻击
# 实验室:利用XXE进行SSRF攻击
# 题目
此实验室具有一个 “Check stock(库存检查)” 功能,它可以解析 XML 输入并在响应中返回任何意外的值。
实验室服务器在默认的 URL 上面运行了一个模拟的 EC2 元数据端点,地址是http://169.254.169.254/
。此端点可用于检索有关实例的数据,其中一些数据可能是敏感的。
若要解决实验室问题,请利用 XXE 漏洞执行 SSRF 攻击,并从 EC2 元数据端点中获取服务器的 IAM 访问密钥(SecretAccessKey)。
(译者加:此处涉及一点点的云渗透技术,你可以参考这篇文章 (opens new window),在本站也可以找到相关资料)
- name: 实验室-学徒
desc: 利用XXE进行SSRF攻击 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/xxe/lab-exploiting-xxe-to-perform-ssrf
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
点击 “ACCESS THE LAB” 进入实验室。
来到首页,点击任意商品下方的 “View details” 进入详情页。
在商品详情页的下方,可以看到一个库存检查功能。
启用浏览器代理,然后点击 “Check stock” 检查库存。
将请求数据包转发至 Repeater 功能模块。
尝试注入一个 XML 外部实体,并在 productId 参数中调用该实体。程序返回了/etc/passwd
文件的内容,说明具有回显。
但这并不是我们的目标。
(以下涉及少量云渗透技术,你可以参考这篇文章 (opens new window),在本站也可以找到相关资料)
根据所学的理论知识,修改外部实体,进行 SSRF 攻击,尝试读取元数据端点的内容。
<!DOCTYPE foo [ <!ENTITY carsaid SYSTEM "http://169.254.169.254/latest/meta-data/"> ]>
1
获得一个目录名称iam
。
在 URL 路径中拼接iam
之后,继续访问端点,获得新的目录名称security-credentials
。
再次拼接路径,获得目录名称admin
,这应该是最后一个了。
拼接三个路径之后,成功获得了 admin 用户的 IAM 凭据。
回到浏览器页面,实验已完成。
编辑 (opens new window)