Lab: Exploiting XXE to perform SSRF attacks: 利用XXE进行SSRF攻击
利用XXE进行SSRF攻击
除了检索敏感数据之外,XXE 攻击的另一个主要影响是它们可用于执行服务器端请求伪造 (SSRF)。这是一个潜在的严重漏洞,其中可以诱导服务器端应用程序向服务器可以访问的任何 URL 发出 HTTP 请求。
要利用 XXE 漏洞执行SSRF 攻击,您需要使用要定位的 URL 定义外部 XML 实体,并在数据值中使用定义的实体。如果您可以在应用程序响应中返回的数据值中使用定义的实体,那么您将能够从应用程序响应中的 URL 查看响应,从而获得与后端系统的双向交互。如果没有,那么您将只能执行盲目的 SSRF攻击(这仍然会产生严重的后果)。
在以下 XXE 示例中,外部实体将导致服务器向组织基础架构内的内部系统发出后端 HTTP 请求:
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://internal.vulnerable-website.com/"> ]>
内容
该实验室具有“检查库存”功能,可解析 XML 输入并在响应中返回任何意外值。
实验室服务器在默认 URL 上运行(模拟的)EC2 元数据端点,即http://169.254.169.254/. 此端点可用于检索有关实例的数据,其中一些可能是敏感的。
为解决实验室,利用XXE漏洞执行SSRF攻击,从EC2元数据端点获取服务器的IAM秘密访问密钥。
方法:
- 访问产品页面,单击“检查库存”,然后在 Burp Suite 中拦截生成的 POST 请求。
- 在 XML 声明和stockCheck元素之间插入以下外部实体定义:
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "http://169.254.169.254/"> ]>
- 将productId数字替换为对外部实体的引用:&xxe;。响应应包含“无效的产品 ID:”,后跟来自元数据端点的响应,最初是文件夹名称。
- 迭代更新 DTD 中的 URL 以探索 API,直到到达/latest/meta-data/iam/security-credentials/admin. 这应该返回包含SecretAccessKey.
UBsojhklKeDNPLr70VuB
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15189765.html