web安全入门(第八章-1)验证码绕过

一、验证码作用

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

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

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

三、密码找回漏洞

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.验证码是什么? 
验证码分两种:
1.验证码是一种区分用户是计算机还是人的公共全自动程序(比如登陆的时候要填写的)
2.识别身份,比如短信验证码、电话验证码、邮箱验证码

2.验证码有哪几种
有中文字符,纯数字,点击字符、数学运算,移动方块等等

3.验证码有什么作用
可以防止恶意破解密码、刷票、论坛灌水,有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。

4.验证码一定可靠吗
不一定可靠,验证码如果在书写代码的时候存在逻辑漏洞,就比较容易绕过。即使没有逻辑漏洞,如果验证码的图片混淆比较简单,可以写脚本自动识别(python有)

5.验证码的常见安全问题
一.前端验证验证码,并没有后端验证
二.验证码设置了但是并没有效验
三.验证码可以重复使用
四.空值绕过
五.验证码可控制
六.验证码有规则
七.有万能验证码
八.验证码放在cookie参数里

6.前端验证码如何绕过
直接抓包进行,因为后端没有验证

7.验证码的规则一般是什么
有很多种,不一定,要看代码怎么写,很多时候使用的rand函数生成随机数

8.万能验证码一般是什么
一般是000000 或者 888888 

9.验证码空值绕过是怎么回事
去除数据包里的验证码参数,发现绕过了传参机制,你不传这个参数,然后就没有进入验证码校验流程

10.验证码可控是什么情况
验证码可能存在于url传参里,url设置定,验证码可控

11.验证码放在cookie参数里要怎么去找
查看cookie参数里有没有相应的值(验证码或相应参数名)

12.验证码有时效性吗
一般来说会有时效性,常见的是30分钟

13.密码找回有哪几种方法
1.通过邮箱发送重置链接或数字|字符串验证码
2.通过短信发送验证码

14.密码找回一般有什么安全问题
1.验证码发送前端返回
2.验证码输入无次数限制
3.验证码可控
4.直接访问修改密码页面发现直接可以改(缺失身份认证)
5.越权(自己手机的验证码,把别人密码改掉了)
6.密码保护问题出存在缺陷

15.前端返回怎么利用
查看返回的数据包(可以通过浏览器或者抓包工具)

16.验证码可控有什么危害
可以发送垃圾邮件,钓鱼网站链接,不良网站链接

17.直接修改密码页面是什么情况
一般是验证失败后还可以继续访问密码修改页面

18.缺失身份认证是什么情况
缺少相应的用户id和信息验证,可以用自己的手机号绑定他人的账号

19.越权是什么
通过自己的验证码,改包,去修改别人的密码

20.越权和缺失身份认证的区别
平行越权需要登录后使用,而缺失身份认证不用

21.密码保护问题有哪些缺陷
1.容易被猜测
2.答案在js里出现

22.靶场的密码找回的用户名是哪个
用户名是admin,不是邮箱

23.靶场的密码找回有几位
4位,源码和靶场都有提示

24.如何去猜测别人的密码保护问题的答案
通过蛛丝马迹分析,然后调用可用资源,去社工。

25.验证码在cookie里会加密吗
会,可能会通过md5之类的进行加密

26.校验验证码一般有哪些生成规则
可能对用户的用户名,密码,登陆时间之类的进行生成(这个可能性太多了,不过时间戳是比较常见的,以前遇到过,邮箱找回链接,只需要时间戳和用户名就可以修改密码,那样就能尝试爆破,自己先接一个看看规律)
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值