不安全的验证码
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验证,操作再次确认,如输入旧密码

本文分析了一种网站安全漏洞,允许用户通过修改请求参数绕过验证码验证,从而进行敏感操作。漏洞主要源于代码逻辑错误,分别在low、medium、high三个级别上存在。针对这些漏洞,提出了增加token验证、操作二次确认等防御措施。修复此类问题对于保护网站安全至关重要。
2286

被折叠的 条评论
为什么被折叠?



