对验证码的识别爆破

声明:该系列文章首发于公众号:Y1X1n安全,转载请注明出处!本公众号所分享内容仅用于每一个爱好者之间的技术讨论及教育目的,所有渗透及工具的使用都需获取授权,禁止用于违法途径,否则需自行承担,本公众号及作者不承担相应的后果。

遇到带验证码的网站,验证码没法复用,没有SQLi,连个XSS都没有…难道要放弃?!??
风和日丽的下午,接到测试需求:好,好,好,行,我一会就测。
那么,切换场景:拉上窗帘,一杯茶,一包烟,一个站点日一下午吧。🔕


由于涉及高敏内容,相关图片展示会很少,但是该有的细节都有💥
主站一堆静态页面,拼了个admin,哦豁,后台!大概长下面这个样子:
image.png
刚开始填了个小写的验证码,提示错误,,,这么严格的嘛,不愧是XOV,估计之前也做过多次测试了。


验证码识别

掏出我三年前写的验证码识别脚本,捣鼓了下,正确率不是很高啊,大概80%,噪音处理不太好,这测起来还是有很多问题,找找有没有大佬写一些好用的工具。
哦豁,ddddocr看介绍感觉很牛批!那用起来!下面这些都能识别:
image.pngimage.png
ddddocr是一款开源的python库,直接导入就行,恰好有burp插件,辣么直接用!
项目地址:https://github.com/lisa-hue/captcha-killer-modified/tags
P.S.:这个地方要注意JDK版本,我这里下载的是:captcha-killer-modified-0.24.1-jdk8.jar,对应java version “1.8.0_281”
导入插件就不多说了,
image.png

使用

1、抓验证码更新包,用来抓取验证码图片

点击验证码,burp抓包,右键导入captcha-killer-modified
image.png
如下图,点击获取即可。
image.png
需要选中“是否使用该插件”,验证码才能自动刷新;

2、通过ddddocr进行验证码识别

下载的文件里有个codereg.py,这段代码的功能主要是创建一了个基于aiohttp的Web应用程序,用于接收POST请求,并使用ddddocr库对接收到的图像进行OCR处理。
如下所示,可以做一些自定义操作,除了下面这些还可以自己加:

  • 可以修改返回的字符个数以应对不同位数的验证码;
  • 对结果进行二次修改,如将0替换为字母o;
  • 修改监听端口8888位其他;

image.png
python codereg.py运行。
然后再burp上配置接口地址为:http://127.0.0.1:8888,右键选择模板为ddddocr:
image.png
右侧的Response raw会返回识别+处理结果;

3、验证码识别爆破

burp抓登录包,转发至intruder,选择Pitchfork。需要爆破的位置按需求设置即可,验证码部分按照如下进行选择:
image.png
image.png
资源池配置:

  • 最大并发请求数:设为1;请求之间的延迟:200ms;保证每次仅有一个请求,防止验证码识别匹配错误;

image.png
Start attack即可!


不出所料,没爆破出来弱口令😅但是发现了这玩意存在验证码复用的情况!
通过抓包,保持拦截状态,修改账号或密码,根据返回响应数字可以判断是否存在复用情况。由于敏感性我这里就不放图了,简单说下,当响应为1表示账密问题,2表示验证码问题。Repeater数据包,发现响应永为1,修改数据包内容后同样为1,则可以发送至Intruder进行识别爆破。当然这本身也算一个漏洞。OK,烟也喝完了,交差下班!🙃

📌 如果你对网络安全或编程感兴趣,可以搜索公众号“Y1X1n安全”或扫描下方的二维码,每天都会分享相关知识点,让我们一同加油!路漫漫其修远兮,吾将上下而求索。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/132577.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BN体系理解——类封装复现

from pathlib import Path from typing import Optionalimport torch import torch.nn as nn from torch import Tensorclass BN(nn.Module):def __init__(self,num_features,momentum0.1,eps1e-8):##num_features是通道数"""初始化方法:param num_features:特征…

为Yolov7环境安装Cuba匹配的Pytorch

1. 查看Cuba版本 方法一 nvidia-smi 找到CUDA Version 方法二 Nvidia Control Panel > 系统信息 > 组件 > 2. 安装Cuba匹配版本的PyTorch https://pytorch.org/get-started/locally/这里使用conda安装 conda install pytorch torchvision torchaudio pytorch-cu…

LeetCode416 分割等和子集

题目: 、 分析: 因为分割的子数组,不连续;所以双指针、栈,一般不适用,分析起来很像是DP问题。 思路: https://www.imooc.com/article/300277 代码: //TODO 这题有难度

如何在C++项目中用C#运行程序调试C++ DLL

问题描述 在C#项目中调用C DLL时报错或者运行结果不符,此时需要运行C#项目并在C中加入断点进行调试 项目准备 项目一:C#项目(该项目调用C DLL)项目二:C项目(生成C DLL) 这两个项目不需要在同…

【web实现右侧弹窗】JS+CSS如何实现右侧缓慢弹窗动态效果『附完整源码下载』

文章目录 写在前面涉及知识点页面效果1、页面DOM创建1.1创建底层操作dom节点1.2 创建存放弹窗dom节点 2、页面联动功能实现(关闭与弹出)2.1 点击非右侧区域实现关闭2.2 点击叉叉及关闭按钮实现关闭功能 3、完整源码包下载3.1百度网盘3.2 123云盘3.3邮箱留…

基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(二)

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 之前讲了自定义业务表单,现在讲如何与流程进行关联 1、后端部分 WfCustomFormMapper.xml &…

【SoC FPGA】HPS启动过程

SoC HPS启动流程 Boot ROMPreloaderBoot Loader HPS的启动是一个多阶段的过程,每一个阶段都会完成对应的工作并且将下一个阶段的执行代码引导起来。每个阶段均负责加载下一个阶段。第一个软件阶段是引导 ROM,引导 ROM 代码查找并且执行称为预加载器的第 …

数据挖掘实战(3):如何对比特币走势进行预测?

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…

203、RabbitMQ 之 使用 direct 类型的 Exchange 实现 消息路由 (RoutingKey)

目录 ★ 使用direct实现消息路由代码演示这个情况二ConstantUtil 常量工具类ConnectionUtil 连接RabbitMQ的工具类Publisher 消息生产者测试消息生产者 Consumer01 消息消费者01测试消费者结果: Consumer02 消息消费者02测试消费者结果: 完整代码&#x…

机器学习(22)---信息熵、纯度、条件熵、信息增益

文章目录 1、信息熵2、信息增益3、例题分析 1、信息熵 1. 信息熵(information entropy)是度量样本集合纯度最常用的一种指标。信息的混乱程度越大,不确定性越大,信息熵越大;对于纯度,就是信息熵越大,纯度越低。 2. 纯度…

Text-to-SQL小白入门(八)RLAIF论文:AI代替人类反馈的强化学习

学习RLAIF论文前,可以先学习一下基于人类反馈的强化学习RLHF,相关的微调方法(比如强化学习系列RLHF、RRHF、RLTF、RRTF)的论文、数据集、代码等汇总都可以参考GitHub项目:GitHub - eosphoros-ai/Awesome-Text2SQL: Cur…

论文阅读/写作扫盲

第一节:期刊科普 JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。 JCR分区(Journal Citation Reports):JCR分区是由Clarivate Ana…