什么是业务逻辑漏洞#
逻辑漏洞是指在系统、应用程序或其他系统组件中存在的逻辑错误或缺陷,可能导致安全问题或数据泄露。这些漏洞通常是由于设计或实现过程中的错误、不完整或不合理的逻辑判断所导致的。攻击者可以利用这些漏洞来获取未经授权的访问权限、篡改数据或执行其他恶意操作。这类漏洞常见于密码修改、越权访问、密码找回、交易支付金额等功能中。
本文将分享一些在业务逻辑漏洞挖掘方面的心得体会。
常见的逻辑漏洞#
由于逻辑漏洞的特性,它们可以出现在任何位置,并且难以通过 WAF 等手段进行防护。逻辑漏洞的玩法多种多样,常常还会组合出现,例如并发 + 支付、越权 + 支付等。因此,以下分类并不完全、准确,但可以帮助读者理解归纳。
支付#
购买场景#
修改支付价格
修改支付状态
修改购买数量为负数
修改金额为负数
重放成功的请求
并发数据库锁处理不当
四舍五入
整数溢出
优惠券场景#
复用优惠券
优惠券遍历
并发使用优惠券
其他还有很多,诸如签约场景等等。
支付逻辑漏洞的奇淫技巧一时半会说不完,这里推荐月神的视频,也可以去网上找一些总结文章。
越权#
越权漏洞无疑是逻辑漏洞中的重中之重,可分为以下四类:
未授权访问#
访问静态文件
通过特定 URL 防止访问
水平越权#
攻击者可以访问与其拥有相同权限的其他用户的资源,例如权限类型不变,但 ID 改变。
垂直越权#
低级别攻击者可以访问高级别用户的资源,例如权限 ID 不变,但类型改变。
交叉越权#
权限 ID 和类型均改变的访问。
验证码#
验证码复用
验证码爆破
短信轰炸
返回包泄露
本地校验绕过
DDOS 攻击
任意用户#
包括任意用户接管、登录、删除、遍历等操作。
找回密码
修改密码
逻辑缺陷#
微信登录 API 未作身份校验
JWT 硬编码
突破限制#
AI 生成不当内容
突破数量限制(商品、点赞、投票、积分、抽奖等)
如何成为逻辑漏洞挖掘高手#
百样通,不如一样精#
当你精通某一方面的技术时,你会在测试过程中产生很多奇思妙想,逐渐形成属于自己的一套打法,使得这类漏洞在你眼中无处遁形。
心态的转变尤为重要#
在挖洞初期,挖不到洞或被审核忽略是常有的事,不要因此磨灭对挖洞的热情。每次提交一个漏洞都视作完成了一项任务,不再过多纠结结果。只有保持积极乐观的心态,才能不断进步和提升。
在挖洞的路上做一只 “细狗”#
无论是在挖什么样的漏洞,都不能走马观花。每一个功能点都要细细琢磨,细致入微是发现逻辑漏洞的基础。同时要对参数保持敏锐性。只有做到对细节的敏感和深入理解,才能发现隐藏的逻辑漏洞。
运气也是实力的一部分#
既要有技术也要有运气。很多时候,发现漏洞需要一定的运气成分,有时漏洞的发现确实需要一定的运气,但运气往往会眷顾那些有准备的人。通过不断的努力和积累,提高自己的技术水平和敏锐度,自然会增加成功的几率。
持续学习与分享#
保持学习的热情,关注最新的安全动态和漏洞案例。同时,通过分享你的心得和经验,与同行交流,可以获得更多的灵感和思路。
实践出真知#
多参与实际项目和 CTF 比赛,通过不断的实战提升自己的漏洞挖掘能力。理论知识固然重要,但实践经验同样不可或缺。
使用自动化工具辅助#
善于利用各种自动化工具进行辅助检测,但不要完全依赖工具。工具可以帮助提高效率,但最终还是需要通过人工分析来发现一些隐藏较深的逻辑漏洞。
结语#
通过不断的学习、实践和分享,你将逐渐成为一名优秀的逻辑漏洞挖掘高手。在这条路上,保持一颗好奇心和探索精神是成功的关键。