解答
1.登录验证码未刷新
没有清空session中的验证码信息。
通常思路:
1.抓包多次重放,看结果是否会返回验证码错误,如没有返回验证码错误则存在未刷新
2.观察检验的处理业务,如果验证码和用户名密码是分2次http请求校验,则也可以爆破用户名和验证码。
2.手机或邮箱验证码可爆破
没有对应的手机号或邮箱,但如果验证码纯数字4,5位左右,没有次数校验,可以爆破
通常思路:
拿自己的手机号或邮箱先获取验证码查看验证码格式,之后多次提交错误的看是否有次数现在,没有就爆破。
3.手机或邮箱验证码回显到客户端
在发送给手机或者邮箱验证码时,会在response包中有验证码,因此不需要手机和邮箱就可以获取验证码。
通常思路:
发送验证码时抓包,看返回包。
4.修改response包绕过判定
在输入错误的验证码时会返回false之类的字段,如果修改response中的false为true,会识别为验证通过。
通常思路:
抓包,选择do intercept-> response to this request ,放包,抓到下一个包就是response的包,可以修改,重放。
5.验证码轰炸
在请求发送验证码的数据包中有字段控制验证码的发送,如请求包某字段true就是发送验证码,我们直接进行重放攻击。
通常思路:
抓取发送验证码的请求包,查找控制验证码发送的字段,放入重放攻击模块进行重放攻击。
防御措施:
有的只在前端验证,比如60s后才能重新发送短信验证码,但是后端没有验证,可以让他一直重发,耗尽他短信池的流量,一般用来做DDoS。
帖子还没人回复快来抢沙发