ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-04-01,Insecure CAPTCHA

2021-04-01 09:31:01  阅读:220  来源: 互联网

标签:resp 01 Insecure response CAPTCHA step POST recaptcha


不安全的验证码(验证流程)
在验证的过程中,出现的逻辑漏洞

CAPTCHA是神魔
Completely Automated Public Turing Test to Tell Computers and Humans Apart
全自动区分计算机和人类的图灵测试

在这里插入图片描述

low

根据源码中的注释可以很容易看懂他在干啥
1.检查用户输入的验证码,POST提交,正确之后显示表单
2.用户输入完表单之后,再用POST提交

但是看这里

if( isset( $_POST[ 'Change' ] ) && ( $_POST[ 'step' ] == '1' ) ) {

if( isset( $_POST[ 'Change' ] ) && ( $_POST[ 'step' ] == '2' ) ) {

它仅仅是根据Change和step参数来判断步骤

通过抓包修改step=2可以直接绕过第一个步骤

还有一个思路,就是CSRF的攻击页面

medium

在第二个步骤里,添加了一个参数passed_captcha

	if( !$_POST[ 'passed_captcha' ] ) {
		$html     .= "<pre><br />You have not passed the CAPTCHA.</pre>";
		$hide_form = false;
		return;
	}

抓包之后添加passed_captcha=true,step改为2,和low一样,没啥区别

high

	// Check CAPTCHA from 3rd party
	$resp = recaptcha_check_answer(
		$_DVWA[ 'recaptcha_private_key' ],
		$_POST['g-recaptcha-response']
	);

	if (
		$resp || 
		(
			$_POST[ 'g-recaptcha-response' ] == 'hidd3n_valu3'
			&& $_SERVER[ 'HTTP_USER_AGENT' ] == 'reCAPTCHA'
		)
	){

新加入了一个逻辑,当$resp为false,而且
g-recaptcha-response 不是 hidd3n_valu3 或 HTTP_USER_AGENT 不是 reCAPTCHA
时,验证失败
我不知道为啥这里用了“||”
也就是说我们只要满足其中一个就可以

很明显,$resp是谷歌返回给服务器的验证结果,我们无法控制,只能操作下面的两个
抓包,更改参数recaptcha_response_field以及http包头的User-Agent和它一样即可

impossible

	if( !$resp ) {
		// What happens when the CAPTCHA was entered incorrectly
		$html .= "<pre><br />The CAPTCHA was incorrect. Please try again.</pre>";
		$hide_form = false;
	}
	else {

判断验证的代码都在else里,也就是说,没有谷歌返回的验证结果,什么都白扯
终于在最后,两个步骤合成了一个步骤
此外,还加了一个password_current要求用户输入之前的密码

随便想想

也许前几天接触的漏洞比较少,一般靶场练完就完事了
但是吧,如果多想想,比如之前那一套文件上传+包含的组合,也不戳
CSRF能不能用到这里来,获取了token之后,用python发送修改密码的请求,可能impossible不太行

如何把这个利用到短信轰炸漏洞中?

在挖洞的时候怎么发现逻辑漏洞?
比如抓包时看看参数的值是0,1,2这种,再怎么去向下配合?
如果有源码泄露岂不是更好找出来。

如果high难度,medium难度看不见源码怎么办?
可以先自己试一下,打个验证码进入part2
(呜呜呜没法接收验证码)

记得有次学长讲SQL时写了个C++判断密码的程序
当时他用int,问我输入a会发生什么
我当时脑子一抽回答了个密码错误,没注意定义类型(和当时在学python也有点关系)
有时候即便你会,你也会错,
唯一能保证的是,不再犯类似的错误,Web里不会一个就记下来一个
就像是不断填充自己的“字典”一样

that’s end

标签:resp,01,Insecure,response,CAPTCHA,step,POST,recaptcha
来源: https://blog.csdn.net/m0_51792282/article/details/115365445

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有