网络安全从入门到精通(第九章-1)验证码绕过、密码找回漏洞

本文内容:
			~验证码作用
			~验证码绕过的常见姿势
			~密码找回漏洞
			~实战注意
每日一句:
		挖src  -->  做白盒审计  -->  钻研技术	//进阶路线

一、验证码作用

0,之前都是普通漏洞,今天开始的都是逻辑漏洞
		逻辑漏洞:
				~不是代码层面的错误
				~另外逻辑漏洞基本可以是通杀
				~现在的很多大厂,基本不会有普通漏洞,但是逻辑漏洞是很难避免
1,本质:
		简单的说,验证码是为了区分用户是计算机还是人的一种全自动工具
2,作用:
		利用较为简单的程序就可以有效防止:密码破解、刷票、论坛灌水(霸屏)等等

二、验证码绕过的常见姿势

1,绕过方向
			通过验证码的逻辑进行入手
			通过python、Golang等程序自动识别			
2,额外增加
			假如通过验证码绕过爆出后台可以提交两个漏洞
					~验证码绕过---逻辑漏洞基本
					~后台弱密码
			//不出意外,一个高危,一个中危
3,登录处绕过
			~前端验证验证码,并没有后端验证。直接抓包然后进行跑数据包
			~验证码设置了但是并没有校验,乱输验证码也能够成功的登录(少见)
			~验证码有规则,比如是时间戳的后6位
			
			~验证码可以重复使用,比如现在的验证码1111,然后虽然你登录失败后
				验证码会变,但是你输入1111他却判定你验证码正确		(常见)
				
			~验证码空值绕过,比如,我们现在抓一个包,发现登录参数是
				user=admin&password=admin&yzm=4123。 yzm验证码参数,
				但是我们如果去掉yzm的传参我们就可以绕过验证码机制,
				直接传参user=admin&password=admin,验证码就失效了	(常见)

三、密码找回漏洞

1,理解
		主要是一些短信验证码登录,这类验证实际上是区分身份的,比如平时登录的
		微信、QQ、支付宝等等,当你QQ密码忘记时,会要求你输入验证码。
		这类验证码一般都是5-30分钟的时效性,但是如果没有做限制,是不是可以
		直接进行穷举爆破~~~
2,常见漏洞
		~验证码无次数限制可爆破
		~验证码可控
			点击获取验证码,抓包,发现包内有传参,比如:yzm=2020,
			放包,手机接到验证码为2020。假如这样的话,就很危险。
			因为包内的另一个参数:phone,也就是手机号。
			被人利用的话,就可以发送大量垃圾短信,钓鱼链接。
			例如:
					phone:110&yzm:I want to go in
		~验证码发送后前端返回
			点击获取验证码后,抓包,放包,会将验证码返回给前端抓包处
			这样是不是可以任意修改别人的密码
		~直接跳转修改密码页面
			正常步骤:
				输入找回密码账户,给浏览器cookie,
				点击获取验证码,输入正确的验证码,
				跳转到A站(修改密码的站)
			攻击步骤:
				输入找回密码账户,给浏览器cookie,
				修改发包,直接伪造请求跳转A站的数据包,
				跳转A站
		~缺失的身份认证-->绑定别人的账号到自己的手机		//(常见)
		
			点击获取验证码,抓包,看内容有:
					userid='自己账户id'&phone='自己手机号'
				
			假如服务端不进行userid与phone进行校验,直接攻击
			攻击步骤:
					点击获取验证码,抓包,
					改userid='别人的id'&phone='自己的'
					然后就成功修改别人密码,只要知道别人的账户就可以了
3,密保改密码
		~密保问题可能容易直接被猜测  
				很多学校知道学号与身份证号即可找回密码
				而这些信息可以谷歌语法很容易得到
		~密保问题答案页面中显示(即验证码前端返回,一个道理)

四、实战注意:

1,无限制爆破
		~找回密码时,没有限制,可以无限次爆破时。万一卡住了,burp不动了
		这是将站跑出点小问题。		
		~此时,暂停burp,刷新页面,直到页面正常在继续爆破		
		~这样还不行,只能记录跑到哪了,重新爆破
2,验证码找回的靶场,第一反正直接找后台
		找到后台登录,账户admin,密码sb,验证码正常输入。登录,抓包
		
		放到重发器,发送,密码账户不匹配,在发送,密码账户不匹配,
		这应该可以想到,验证码可以重复使用。可以确认一下:
			假如验证码本来是:1111,改为1112试试,提示验证码错误
			在改回1111,发送,账户密码不匹配。确认,验证码可以重复使用。
			
			接着就是爆破密码了	
3,burp爆破
		一般看长度与状态码,部分网站返回都一样。这时就得注意看看包的内容
				要点:	不要仅仅盯着长度与状态码,注意内容
				
		另一种取巧的办法:直接在原网页刷新一下,因为,有的账户密码试正确了
		注意,将网页稍微删除点东西,比如:
				本来是1.1.1.1/admin/login.php	刷新的时候刷新的这个页面:
						1.1.1.1/admin
			本质是,你跑成功了,你的cookie被赋予了管理员权限
4,小技巧
		~后台账户 %80是admin
		~burp爆破 防止被IP被拉黑,多几个IP去试试线程,调低线程
			一般情况下,默认的5个线程不会被ban
原创文章 61 获赞 13 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43970718/article/details/104302579