不安全的验证码
low级别
随便改个密码看看,发现报错了,因该是本地环境没配置好验证码不能返回验证图片。
分析下源码发现他有个验证码, 在步长step等于1时验证recaptcha,但他还有一个step步长等于2的if语句这个是没有验证码的,所以第一个if是可以绕过的
抓个包改改参数,step=2,发现不用验证码也可以修改成功,这个和crsf有点像因为他们能通过修改包达到一样的效果
medium级别
分析页面源码发现和low级别相比多了个passed_captcha参数验证只需使其为真便可跳过
抓包改参数发现没这passed_captcha个参数,不过他是post方式获取的,我们自己可以加然后随便赋值使其为真,然后配合step为2就可以绕过了
high级别
分析页面源码发现他没有step参数了,但是多了个g-recaptcha-response=hidd3n_valu3&&HTTP_USER_AGENT=reCAPTCHA,分析可知当这个条件成立时$resp不为真也可以修改密码
这时我们抓包改下agent和g-recaptcha-response发现立马修改成功了
总结:
漏洞原理:利用代码逻辑错误和验证不规范跳过验证
方法:根据源代码分析逻辑漏洞抓包改参数跳过
防御:增加token验证,操作再次确认,如输入旧密码
代码分析逻辑漏洞抓包改参数跳过
防御:增加token验证,操作再次确认,如输入旧密码