DVWA靶场通关-Insecure CAPTCHA (不安全的验证码)
Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、 File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、 SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(DOM)(基于DOM树)、 XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)
reCAPTCHA验证原理
这一模块的验证码使用的是Google提供reCAPTCHA服务,下图是验证的具体流程。

服务器通过调用recaptcha_check_answer()函数检查用户输入的正确性。
CAPTCHA漏洞利用验证机制的逻辑漏洞,下面给出验证流程。
可以利用服务器核对验证信息这个环节,绕过CAPTCHA验证,完成非人类请求
审计
- 使用
Anti-CSRF token机制防御CSRF攻击。 - 验证步骤合并为同一步,无需分开,使得验证环节无法绕过。
- 要求输入修改之前的密码,攻击者无法绕过。
- 利用
PDO技术输入内容过滤,防止了sql注入。
等级low
burp抓包,发现step=1,触发源码中的captcha(验证码)验证
step=1&password_new=123456&password_conf=123456&Change=Change
如果验证成功,会发生step=2,密码修改成功
burp抓包,直接改成step=2,跳过验证码验证,直接修改密码
等级Medium
代码增加了passed_captcha=ture的验证,本质上没有区别。依旧可以通过参数step、passed_captcha进行绕过。step=2 ,拼接&passed_captcha=ture
step=2&password_new=111&password_conf=111&Change=Change&passed_captcha=ture
等级high
代码中没有验证step,而是验证
$_POST[ 'g-recaptcha-response' ] == 'hidd3n_valu3'
&& $_SERVER[ 'HTTP_USER_AGENT' ] == 'reCAPTCHA'
burp抓包将这两个值进行修改

浙公网安备 33010602011771号