业务漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能正常处理或处理错误,常见的业务漏洞包括越权漏洞、支付逻辑漏洞、密码重置漏洞等。
常见业务漏洞类型及案例分析
1、越权漏洞:
水平越权:攻击者尝试访问与他拥有相同权限的用户资源,用户A和用户B属于同一角色,拥有相同的权限等级,他们能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的这种行为就叫做水平越权访问。
垂直越权:不同级别之间的用户或不同角色之间用户的越权,比如普通用户可以执行管理员才能执行的功能。
2、支付逻辑漏洞:
负值反冲:程序没有校验订单的取值范围,若是使用负值则可以进行支付逻辑利用。
正负值对冲:通过修改订单的数量或者是单价、总价来达到少付钱的目的。
精度丢失问题:不同语言特性下 float 或 double 使用不当引发精度丢失,可能造成支付金额不对等。
竞争条件漏洞:在获取和使用优惠券、支付等业务场景中,当多个并发执行线程访问共享资源时,因缓存或数据同步时间差,可能产生不同结果。
3、密码重置漏洞:
验证码问题:如验证码不失效、验证凭证回传及未绑定、本地验证绕过、跳转验证步骤、凭证可预测等。
弱加密问题:未使用https,是功能测试点,不好利用;前端加密,用密文去后台校验,但可用smart decode解。
4、短信轰炸漏洞:
网站在对信息发送的次数、时间没有做限制,或者只在前端做了限制,导致可以无限制发送信息。
5、URL跳转漏洞:
服务端未对传入的跳转 url 变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。
6、任意密码修改漏洞:
网站在对密码修改的时候,未对修改密码的凭证做严格的限制,导致可以被绕过进行任意个密码修改。
修复建议
前后端同时对用户输入信息进行校验,双重验证机制。
执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限。
特别敏感操作可以让用户再次输入密码或其他的验证信息。
可以从用户的加密认证 cookie 中获取当前用户 id,防止攻击者对其修改。
在 session、cookie 中加入不可预测、不可猜解的用户信息。
直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理。
永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤。
业务漏洞的产生往往源于设计者或开发者在思考过程中所做的特殊假设存在明显或隐含错误,在开发过程中应充分考虑各种异常情况,并采取相应的安全措施来防范业务漏洞的产生。
以上内容就是解答有关业务漏洞的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/85193.html