WEB漏洞-逻辑越权之验证码与Token及接口

QQ截图20220211093334.jpg

QQ截图20220221091914.jpg

验证安全原理

验证码安全

  • 分类:图片,手机或邮箱,语音,视频,操作等
  • 原理:验证生成或验证过程中的逻辑问题
  • 危害:账户权限泄漏,短信轰炸,遍历,任意用户操作等
  • 漏洞:客户端回显,验证码复用,验证码爆破,绕过等
  • 验证码爆破:没有次数限制,验证码有效时间内不变
  • 验证码识别:用工具识别验证码
  • 复用:用上一次的验证码来绕过下一次的验证
  • 回显:验证码在前端数据包显示
  • 绕过:逻辑上的绕过,直接跳过验证码

token安全

  • token 爆破:token后面会跟上一个字符串,如果知道规律可以进行爆破
  • token 客户端回显:token的数据会在前端数据包(request)里面显示
  • token固定:虽然有token,但是可以通过上一次的token操作下一次的数据包(表面上有,实际没有)

验证码识别插件及工具操作演示

QQ截图20220221093744.jpg

QQ截图20220221094216.jpg

QQ截图20220221094253.jpg

将数据包的首部复制到工具内

QQ截图20220221095408.jpg

尝试测试效果,正确率不高,感觉效果不咋地

QQ截图20220221095427.jpg

抓包工具的插件识别

加载插件

QQ截图20220221132728.jpg

浏览器访问验证码数据包,抓包分析

QQ截图20220221132847.jpg

获取识别验证码的图片内容

QQ截图20220221133013.jpg

调用接口来进行识别

POST /base64 HTTP/1.1
Host: api.ttshitu.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: Hm_lvt_d92eb5418ecf5150abbfe0e505020254=1585994993,1586144399; SESSION=5ebf9c31-a424-44f8-8188-62ca56de7bdf; Hm_lpvt_d92eb5418ecf5150abbfe0e505020254=1586146123
Connection: close
Content-Type: application/json; charset=UTF-8
Content-Length: 2658

{"username":"*","password":"*","typeid":"1","image":"<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>"}

QQ截图20220221134729.jpg

全部调整好了就可以在Intruder模块调用记住Intruder中的cookie要和验证码插件那里的cookie一样

QQ截图20220221134821.jpg

QQ截图20220221134837.jpg

然后就可以开始爆破了,验证码不能使用多线程,否则就会刷新验证码

QQ截图20220221134906.jpg

客户端验证码绕过验证

  • admin/123456,pikachu/000000,test/abc123

打开页面查看

QQ截图20220221141037.jpg

验证码的验证部分做在前端,可以直接通过抓包,然后再发包,绕过前端的js验证

QQ截图20220221141153.jpg

服务端验证码绕过验证

  • admin/123456,pikachu/000000,test/abc123

打开页面查看

QQ截图20220221140632.jpg

分析了获取验证码的原理,当提交表单之后,页面会有一个获取新验证码的请求,正常情况这个请求应该会在服务端收到表单后就把验证码刷新,而不是再创建一个请求,只要这个请求不发送到服务器,验证码就不会刷新

QQ截图20220221140546.jpg

根据分析结果,截获数据包反复提交均能成功

QQ截图20220221140906.jpg

token令牌验证码绕过验证

  • admin/123456,pikachu/000000,test/abc123

打开页面查看

QQ截图20220221141220.jpg

发现数据包中会包含页面中的token否则失败,所以每次提交都要包含这个token

QQ截图20220221144641.jpg

在测试器中设置

QQ截图20220221144805.jpg

采集token

QQ截图20220221144946.jpg

选中token部分,保存设置

QQ截图20220221145046.jpg

QQ截图20220221150049.jpg

设置为单线程

QQ截图20220221150001.jpg

成功进行攻击

QQ截图20220221145915.jpg