我想要达到的结果
说出至少三种业务逻辑漏洞,以及修复方式?
越权漏洞
这类漏洞是指应用在检查授权(Authorization)时存在缺陷,使得攻击者在获得低权限用户帐后后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能。在实际的代码安全审查中,这类漏洞往往很难通过工具进行自动化检测,因此在实际应用中危害很大。这里就是说,漏扫是扫不出越权漏洞的,甚至说漏扫工具是扫不到业务逻辑漏洞的。
修复方式:
对用户操作进行权限校验,防止通过修改参数进入未授权页面及进行非法操作,建议在服务端对请求的数据和当前用户身份做校验检查。
支付逻辑漏洞
漏洞描述及测试方法:
实际上这个情况常见的情况有:
负值反冲、正负值对冲、甚至是直接修改数量单价、总价等等。
负值反冲,就是说程序没有校验订单的取值范围,若是使用负值则可以进行支付逻辑利用;
正负值对冲,是指,通过修改订单的数量或者是单价、总价来达到少付钱的目的,但是你的值不能是负值
修复方式:
1.服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。
2.服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。
短信炸弹
诱发原因是没有进行时间戳等校验,此处与信息安全描述的重放攻击类似,在测试过程中,某接口存在发送手机验证码的功能,但是短信发送平台没有去识别该用户发送验证码的时间等,导致短时间内可以重复的发送大量的短信校验码,不但对系统资源进行了消耗,同时也对用户造成了恶劣的影响。
修复方式:
最简单的就是短信平台对同一手机号进行识别,一定时间内不允许继续发送验证短信请求,也就是所谓的一分钟内不允许继续请求