逻辑漏洞
逻辑漏洞
一、逻辑漏洞的定义
逻辑错误漏洞是指由于程序逻辑不严谨或逻辑太复杂,导致一些逻辑分支不能够以正常流程处理业务。根据不同的场景所产生的危害也不同。例如任意查询&删除用户信息、验证码暴破、任意用户密码重置、交易支付、越权访问等等。
二、逻辑漏洞的分类
1、注册处的逻辑漏洞
①前端验证
前端,打开burpsuite,查看每个返回包有没有返回手机验证码或者存在true、false之类
的判断语句,尝试将false修改为true,成功注册的话就绕过了前端验证。
②短信轰炸
尝试重放发送验证码的包,查看手机是否在短时间内收到了多条短信,是的话则存在
短信轰炸漏洞。
③任意用户注册、批量注册
2、登录处的逻辑漏洞
①前端校验
首先对比正确登录和错误登录的包,对比返回包看是否有判断,尝试修改参数绕过前
端验证。
②短信轰炸
③手机验证码爆破
破解验证码是一项大工程,所以我们就要确定三点
1.是否限制了访问过快的暴力破解banip
2.是否有错误太多就出现验证码的情况
3.最后就是验证码的时效性了
④任意用户登录
是否后端仅验证了验证码是否是正确的而没有验证验证码是否与手机(邮箱)匹配。
⑤水平越权或垂直越权
查看正确登录包的返回包是否有用户id之类的参数,尝试修改该参数。拦截该请求的返回包修改返回包中的用户参数。
3、密码找回处的逻辑漏洞
①任意密码重置
②手机验证码爆破、万能验证码
③修改发送包的手机号、邮箱账号
④短信炸弹
4、支付处的逻辑漏洞
金额修改、数量修改、修改支付ID值、越权支付
三、验证码机制漏洞
- 图形验证码的内容可OCR识别
- 多阶段的过程,先校验验证码,成功之后的下一步不需要验证码,可以直接抓包,跳过第一步的验证
- 验证码在服务段校验后,没有立即失效,需要客户端再次请求才会更新,只要客户端不再请求验证码即可使用原来的验证码
- 生成验证码的模块是否根据提供的参数生成验证码,如果是说明存在漏洞
- 有些验证码与数据包中的某个参数绑定,比如cookie中的某个属性,只要它们相匹配,验证码就认为是有效的。这种机制存在漏洞。
- 在某些情况下,验证码隐藏在HTML源码或通过其他方式获得“明文”
- 在服务器端,是否只有在验证码检验通过后才进行用户名和密码的检验,如果不是说明存在漏洞。