WEB漏洞—逻辑越权之验证码|token|接口

发布时间 2023-07-27 00:00:13作者: 执小汐

 

 验证安全原理

1.验证码安全

分类:图片,手机或邮箱,语音,视频,操作等

原理:验证生成或验证过程中的逻辑问题

危害:账户权限泄漏,短信轰炸,遍历,任意用户操作等

漏洞:客户端回显(已讲),验证码复用,验证码爆破(已讲),绕过等

---验证码爆破:没有次数限制,验证码有效时间内不变

---验证码识别:用工具识别验证码

---复用:用上一次的验证码来绕过下一次的验证

---回显:验证码在前端数据包显示

---绕过:逻辑上的绕过,直接跳过验证码

2.token 安全

#基本上述同理,主要是验证中可存在绕过可继续后续测试

---token 爆破---token后面会跟上一个字符串,如果知道规律可以进行爆破

---token 客户端回显---token的数据会在前端数据包(request)里面显示

---token固定---虽然有token,但是可以通过上一次的token操作下一次的数据包(表面上有,实际没有)

pikachu靶场练习

on server

---思路:复用之前的验证码绕过(判断对方服务器有没有每次刷新验证码并且每个数据包的检验,或者看它是不是只检测了第一步)

---如果第一个数据包是对的,后面的还会不会检测

进入靶场

#输入正确的验证码并抓包发送到repeater,修改username值或password值,发送

#---修改用户名但是不修改验证码(没有提示验证码错误均返回username or password is not exists,说明可以复用)

---用法:首次输入验证码之后,就不用输入验证码,因此,可以用字典对密码和用户名进行爆破

分析一下源代码

 ---漏洞存在原因:session中的vcode没有销毁,导致下一次还能用

onclient

 ---查看前端源代码(将验证码部分写入了前端)

---当然在前端也可以这样写:将验证码部分写在1.js模块,然后<script src=”1.js”,然后引用这个模块。因此很可能在前端里面看不到验证代码,所以我们在抓包的时候要查看是否调用了其他的地址 

---和上一关类似,这里目的是绕过验证码,直接进行爆破 

 token

Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。

Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。