删除按钮背后的漏洞:我是如何发现关键IDOR漏洞的

本文详细讲述了安全研究员在测试Web应用时发现IDOR漏洞的过程,包括侦察阶段创建多个账户、测试不同功能,最终通过分析删除用户请求发现权限验证缺陷,成功利用其他账户令牌删除任意用户账户的技术细节。

👨‍💻 引言

大家好,我是Antonio Rivera,一名安全研究员、漏洞猎人和道德黑客。我曾为多家公司提供安全防护,获得过漏洞赏金、名人堂提名以及感谢信和认可函。

这个故事讲述的是我在测试一个Web应用时,如何偶然发现一个Broken Object Level Authorization(BOLA)漏洞的经历。

🕵️‍♂️ 侦察阶段

当我测试一个新应用时,第一件事就是创建几个账户。这能帮助我从不同角度观察应用的行为方式。

我花了一些时间探索表单、菜单和页面,以理解数据在不同用户之间的流动方式。

在理解了应用的工作原理后,我开始在自己的账户上测试IDOR漏洞。起初没有任何发现。我尝试了其他测试,比如竞态条件和业务逻辑检查,但仍然没有获得任何结果。

💥 IDOR漏洞

在审查一些请求时,有一个引起了我的注意:

1
2
POST /restapi/soa2/ID/userDelete
{"operation":"userDelete","params":{"uid":"MyID","companyId":"clapthispost1234"}}

这个请求看起来很普通,但我决定使用另一个账户的令牌来测试它。令我惊讶的是,它居然成功了,这时我意识到存在一个IDOR漏洞。

🏁 经验教训

这再次印证了一个简单的真理:仔细的观察和像攻击者一样思考,往往能发现自动化工具遗漏的问题。

😔 不幸的是

IDOR漏洞仍然是一个普遍存在的问题,这提醒我们在开发过程中需要更加重视权限验证机制的设计和实现。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计