> 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/access-control/changing-the-role-in-the-user-profile.md).

# 更改用户资料中的角色

更改用户资料中的角色，PortSwigger Web Security Academy 实验笔记，包括利用流程、载荷测试、Burp Suite 验证以及修复上下文。

### 用户角色可在用户资料中修改

此实验包含一个位于以下位置的管理面板 **/admin**，仅对具有以下权限的已登录用户可访问 **roleid = 2**。/ 任务是修改我们自己的角色，访问管理界面并删除用户 **carlos**.

1. 我们使用提供的凭据登录：/ **wiener: peter**
2. 在资料部分，电子邮件地址更改通过 JSON 请求发送，例如：

```json
{
"email":"jordan@test.com"
}
```

响应会将该数据直接返回为 JSON，这表明没有应用严格的过滤。

<figure><img src="https://1574813340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-59ccadbba6672adcf288e5c0cd0317288cf828c0%2Fimage%20(3097).png?alt=media" alt=""><figcaption></figcaption></figure>

通过注入一个额外参数 **roleid**，我们测试：

```json
{
"email":"jordan@test.com",
"roleid": 2
}
```

5. 服务器接受了此更改并返回一个 **302 Found**，这证实我们的角色已被更改为 **2**.
6. 一旦被提升为管理员，我们就可以访问 **/admin**，在那里只需使用该功能即可 **删除用户 carlos** ，从而完成实验。

<figure><img src="https://1574813340-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-9627b90e0e102d5cbf3b52e226c5b166c00245d3%2Fimage%20(248).png?alt=media" alt="" width="563"><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 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/access-control/changing-the-role-in-the-user-profile.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.
