逻辑漏洞学习总结(一)
逻辑漏洞学习总结(二)
五、验证码突破
1、暴力破解
还是那个套路吧。
2、时间、次数突破
3、回显测试
当客户端有需要和服务器进行交互,发送验证码时,即可使用firefox按F12调出firebug就可看到客户端与服务器进行交互的详细信息。
4、绕过测试
当往下一步跳转时,抓取数据包,对验证码进行篡改清空测试,验证该步骤验证码是否可以绕过。
短信验证码验证程序逻辑存在缺陷,业务流程的第一步、第二步、第三步都是放在同一个页面里,验证第一步验证码是通过js来判断的,可以修改验证码在没有获取验证码的情况下可以填写实名信息,并且提交成功。
六、业务授权安全
1、未授权访问
非授权访问是指用户在没有通过认证授权的情况下能够直接访问需要通过认证才能访问到的页面或文本信息。可以尝试在登录某网站前台或后台之后,将相关的页面链接复制于其他浏览器或其他电脑上进行访问,看是否能访问成功。
2、越权测试
如果登录你的账号可以进行增、删、改、查等操作,就要意淫到能不能对别人的账号进行操练。通过账号的“指纹”:username、id、mid、uid……,它可能在URL、session中POST数据里。
大小账号:各2个,浏览器:各2个。
七、业务流程乱序
顺序执行缺陷,网站逻辑可能是A→B→C→D过程。用户控制着他们给应用程序发送的每一个请求,因此能够按照任何顺序进行访问。于是,用户就从B直接进入了D过程,就绕过了C。如果C是支付过程,那么用户就绕过了支付过程而买到了一件商品。如果C是验证过程,就会绕过验证直接进入网站程序了。
八、业务接口调用
1、恶意重放
通常在短信、邮件调用业务或生成业务数据环节中,如:短信验证码,邮件验证码,订单生成,评论提交等,对其业务环节进行调用(重放)测试。如果业务经过调用(重放)后被多次生成有效的业务或数据结果。可导致恶意注册、短信炸弹的后果。尤其是短信炸弹,多数金融交易平台仅在前端通过js校验时间来控制短信发送按钮,但后台并未对发送做任何限制,导致可通过重放包的方式大量发送恶意短信。
2、内容编辑
点击"获取短信验证码",并抓取数据包内容,如下图。通过分析数据包,可以发现参数sendData/insrotxt的内容有客户端控制,可以修改为攻击者想要发送的内容,要结合社工。
九、失效绕过测试
1、时间刷新缺陷
有些业务页面是每隔5s就会刷新一次。但是这个时间是在js设置的间隔。所以,在控制台就可以将这个时间的关联变量重新设置成1s或者更小,这样刷新的时间就会大幅度缩短。
2、时间范围测试
针对某些带有时间限制的业务,修改其时间限制范围,例如在某项时间限制范围内查询的业务,修改含有时间明文字段的请求并提交,查看能否绕过时间限制完成业务流程。例如通过更改查询消费账单记录的month范围,可以突破默认只能查询六个月的记录。