逻辑漏洞中一些自己总结关于验证码的漏洞挖掘

简介: 逻辑漏洞中一些自己总结关于验证码的漏洞挖掘

0x00 前言

最近在总结一些自己学习到或自己遇到的逻辑漏洞案例,以下是一些关于验证码相关的案例。当然其中可能有一些思路自己暂时还没有想到或自己认知有限原因,以后想起来或学习到了新的技巧会在如下博客实时更新。


https://suifeng-kali.github.io/

也非常希望师傅们加好友交流或补充你们所遇到的一些其他思路

0x01 短信轰炸

通过抓取发送短信的数据包,然后可以把该数据包一直重放达到无限制的去发送短信或者是邮件

绕过方法

程序员可能会对发送验证码做一定的限制,但是由于考虑不周全还是可以被绕过

在"phone"字段前后添加字符绕过

    +86  //在前面添加tab%20+字母...

    640.png

    Cookie等身份控制值修改绕过

    系统记录手机号发送验证码的次数极有可能是通过记录cookie或其他记录身份信息的字段请求验证码的次数来统计的,所以我们可以通过删除Cookie等操作判断验证码限制是否可以绕过


    不同验证码接口绕过

    一般触发发送验证码的接口不止一处,程序的后端一般会通过一个type值对不同接口做出区分,我们可以通过修改不同接口达到验证码绕过。

    640.png

    大小写绕过邮箱验证

    有时候在发送邮件的时候没有对大小写做限制,我们可以把小写的邮箱替换成大写进行绕过


    X-Forward-For头绕过

    有时程序通过检查X-Forward-For头或其他head头信息来记录验证码发送次数,这个时候修改这些头达到短信爆破

    640.png


    0x02 手机验证码绕过或

    绕过方法

    验证码前端回显或返回到相应包中

    程序员设计存在缺陷导致验证码在发送给手机用户的同时在前端或返回包中也出现了

    640.png


    字段或值重复叠加绕过

    字段叠加

    640.png

    值叠加

    640.png

    以上两种双写存在漏洞则两个手机号都会收到验证码


    修改后端返回值绕过

    我们随意输入一个验证码,在验证手机验证码包里面显示验证码错误,有时可以修改返回包状态码来进行绕过

    640.png

    640.png

    爆破验证码

    有时程序验证码过于简单如只有4位,或验证码有效时间过长,如6位验证码,这种情况我们可以通过暴力破解去获取验证码,进而通过验证。


    0x03 登录框图形验证码等

    在进行登陆或一些其他需要验证码交互的场景下,由于程序员开发失误,导致可以让验证码失效或验证码绕过等

    绕过方法

    重放验证码数据包验证码不刷新

    在一些登陆场景下由于程序员设计失误,只要浏览器中的页面不刷新,验证码就不会刷新,这个时候,我们可以通过抓取发送验证码的数据包,发送到burpsuite的暴力

    破解模块中直接爆破就ok


    删除验证码字段进行绕过

    在一些登陆场景中,最初页面中并未存在验证码,但是错误输入几次账号密码后,需要我们输入验证码进行验证,这个时候,我们可以通过抓包把数据包中对应的验证码字段进行删除进行尝试绕过,如还存在验证码验证可在对Cookie等身份验证等字段删除。


    验证码识别绕过

    一些验证码设计的太简单可以进行识别绕过

    安装bp插件reCAPTCHA或使用pkavhttpfuzzer等

    640.png

    修改后端返回值绕过

    此类具体做法和上文讲述的手机验证码修改返回值一致,重新再写一遍,是存在如下一种场景。

    在登陆处或修改密码处需要输入用户名和密码,且还一个图形验证码,这时你想爆破密码但是由于存在图形验证码导致你无法爆破,这个时候我们可以通过修改最初登陆处或修改密码处的返回状态码,从而进入到下一个验证接口处,而这个验证接口可能由于开发人员考虑不周全导致此处不存在图形验证码,故可在此处进行暴力破解。

    目录
    相关文章
    |
    Java
    Java Poi-tl操作Word文档,插入文本和图片
    poi-tl(poi template language)是Word模板引擎,基于Microsoft Word模板和数据生成新的文档
    1864 0
    |
    Web App开发 XML 安全
    海康威视iVMS综合安防系统任意文件上传漏洞
    海康威视iVMS综合安防系统存在任意文件上传漏洞 ,攻击者可通过构造特定Payload实施对目标的攻击。
    1325 1
    |
    4月前
    |
    安全 网络协议 Java
    Apache Log4j远程代码执行漏洞详解与利用指南
    在尝试连接至192.168.0.1的9999端口时,采用base64编码可以进一步提升连接的安全性。通过将连接命令进行base64编码,然后在目标系统上执行解码操作,从而实现对9999端口的隐蔽且安全的连接。但请务必在合法且获得明确授权的前提下使用此方法,同时需严格遵循相关法规和道德规范。
    |
    数据采集 自然语言处理 Python
    用 Python 生成并识别图片验证码
    用 Python 生成并识别图片验证码
    316 1
    |
    SQL 安全 数据处理
    Web 测试神器:HackBar 保姆级教程
    Web 测试神器:HackBar 保姆级教程
    |
    人工智能 对象存储 异构计算
    AI模型推理服务在Knative中最佳配置实践
    Knative和AI结合提供了快速部署、高弹性和低成本的技术优势,对于一些需要频繁变动计算资源的AI应用,如模型推理等尤其明显。那么在Knative上部署AI模型推理时可以遵循这些最佳实践,以提升AI推理服务能力和GPU资源利用率。
    |
    SQL 安全 Oracle
    看完这篇 教你玩转渗透测试靶机Vulnhub——Healthcare:1
    看完这篇 教你玩转渗透测试靶机Vulnhub——Healthcare:1
    462 0
    |
    JavaScript 前端开发 NoSQL
    构建基于Node.js的全栈应用:从前端到后端的完整指南
    【5月更文挑战第24天】本文是关于使用Node.js构建全栈应用的指南,涵盖前端(React或Vue)、后端(Node.js + Express)和数据库(MongoDB)的选型与实现。文章介绍了项目结构、前端组件化开发、后端API接口编写、前后端联调及部署上线的注意事项,帮助读者掌握全栈开发流程。
    2106 2
    |
    Java 数据库
    SpringBoot数据库连接池常用配置
    SpringBoot数据库连接池常用配置
    742 0