前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BUG赏金 | 无效的API授权导致的越权

BUG赏金 | 无效的API授权导致的越权

作者头像
Timeline Sec
发布2019-12-17 18:16:34
1.4K0
发布2019-12-17 18:16:34
举报
文章被收录于专栏:Timeline SecTimeline Sec
图片来源于网络

大家好,我想分享一下我是如何在某邀请项目中发现一个简单的API授权错误的,该错误影响了数千个子域,并允许我在无需用户干预的情况下使用大量不受保护的功能,从帐户删除到接管甚至于泄漏部分信息(姓名,电子邮件和雇主)。

要点:服务器没有检查(发起请求的)授权token是属于普通用户还是超级用户。

这是一个邀请项目,因此将删除一些敏感信息,我将其称为target.com

我在使用dirsearch对网站进行扫描的同时,通过浏览academy.target.com对网站的功能做了大致了解,我注意到一个有趣的端点,如:academy.target.com/api/docs此类端点就像是个金矿,因为它列出了API文档并指定了请求和响应的结构。

在浏览到端点时,我发现页面与Swagger UI非常相似(尽管此站点未使用swagger)。它还有一个名为“ Authenticate (验证)”的按钮,单击该按钮可导航到登录页面,但是如果我尝试登录,则会提示“ Account not authorized (账户未授权)”。

有一些有趣的端点,例如:

/ poweruser / add

/ poweruser / delete

/ user / delete

/ user / create

/ user / user_logged_in

/ user / profile

页面有点像这样。

这让我措手不及,因为这些端点似乎应该只供内部/高级用户使用。在没有任何APItoken或 authorization 头的情况下直接调用端点会导致:

该网站似乎未提供任何API,并且我找不到任何生成APItoken的方法,因此我决定稍后再进行检查。在对该网站进行深入分析后,我仍然不能在请求或响应中找到一个APItoken。但是,我注意到许多请求都有 authorization 头。

我决定只复制authorization 头并将其包含在对我发现的API端点的调用中。我创建了另一个帐户,并尝试通过api / user / edit的POST请求更改其密码。

可以看到响应成功!

Wow~biu踢佛,除了将帐户(权限)升级为高级用户之外,我还可以成功调用几乎所有其他API端点。该文档详细说明了删除/接管/创建新帐户以及执行其他一些危险操作所需的参数。

我决定直接将该漏洞报告给供应商,结果他们有了一个私人漏洞赏金计划,并授予我440美元的赏金。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Timeline Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档