dvwa-insecure CAPTCHA
前言
insecure CAPTCHA,翻译过来是不安全的验证码。CAPTCHA是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称。
reCAPTCHA验证流程
这一模块的验证码使用的是Google提供reCAPTCHA服务,下图是验证的具体流程。
服务器通过调用recaptcha_check_answer函数检查用户输入的正确性。
1 |
|
参数$privkey是服务器申请的private key ,$remoteip是用户的ip,$challenge 是recaptcha_challenge_field 字段的值,来自前端页面 ,$response是 recaptcha_response_field 字段的值。函数返回ReCaptchaResponse class的实例,ReCaptchaResponse 类有2个属性 :
$is_valid是布尔型的,表示校验是否有效,
$error是返回的错误代码。
(ps:有人也许会问,那这个模块的实验是不是需要科学上网呢?答案是不用,因为我们可以绕过验证码)
—-摘自https://www.freebuf.com/articles/web/119692.html
low
因为没有翻墙,so 我在这里确实是没有看见验证码
如果我直接提交的话,就会
不如我们抓个包来看看
step?现在是1,我没有输入验证码,那如果step=2时,就是已输入正确的验证码,那不就可以实现绕过了吗?
改成了step=2后,放包,修改成功
medium
和刚才一样的操作,抓包
和low一样?应该不可能,比较二者源码后发现,多了
且这一段在change前面,改包试一下
放包,等等,step没改,改完后放包
????wtf
换个位置,再试一次
成功,所以前面的问题(不愧是我,打错了。。。。
high
核心代码应该是在这里了
如果验证码不正确,代码就会进一步检查g-recaptcha-response和HTTP_USER_AGENT,倘若正确,即可绕过验证码
抓包伪造吧
修改成功
impossible
源代码这里就不放了(太长了)
Impossible级别的代码增加了Anti-CSRF token 机制防御CSRF攻击,利用PDO技术防护sql注入,验证过程终于不再分成两部分了,验证码无法绕过,同时要求用户输入之前的密码,进一步加强了身份认证。
- 本文作者:Almond
- 本文链接:http://example.com/2021/02/23/insecure-CAPTCHA/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!