验证码识别插件 - captcha-killer

验证码识别插件 - captcha-killer

简介

captcha-killer 是一款用于 Burpsuite 的验证码识别插件。它的主要功能是调用各种验证码识别接口,以便在进行渗透测试时能够自动识别和绕过验证码。这个插件本身并不直接进行验证码的识别,而是通过调用外部的 OCR 服务(如 ddddocr)来实现验证码的识别。

下载地址:https://github.com/f0ng/captcha-killer-modified

安装教程

使用 captcha-killer 时,通常需要进行以下步骤:

下载图片三个插件其中之一,并安装插件到 Burpsuite 中。
在这里插入图片描述

在这里插入图片描述

除了下载插件,并在burp安装之外,我们还需要下载 captcha-killer-modified 整个压缩包
在这里插入图片描述

紧接着我们需要搭建验证码识别服务,例如使用 Python 库 ddddocr。

pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ddddocr aiohttp

当然,也可以单独安装ddddocr

pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ddddocr
在这里插入图片描述

安装完ddddocr之后,我们解压 captcha-killer-modified 压缩包,并进入该文件夹,安装它的依赖库

pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirement.txt

在这里插入图片描述

接着我们再开启开服务

python codereg.py

在这里插入图片描述

出现这个字样就代表成功了。

如果是出现空白的情况,如下图,则是因为python版本过高,和我一样安装一个anaconda虚拟环境,降低一下版本就好了,我在这里使用的是python38版本
在这里插入图片描述

我们测试一下,这个验证码识别插件能否正确识别,我在这里搭建了一个pikachu靶场进行测试

首先右键验证码-在新标签页中打开图片,然后开启burp的抓包功能,并刷新打开的验证码标签页,burp对其自动抓包,而后我们将该包发送至插件。
在这里插入图片描述

将数据包发送至插件后,我们还需要在插件选择模板,比如我搭建的pikachu靶场,其验证码为小写字母+数字的组合,那么我们在模板这里选择一下字母+数字
在这里插入图片描述
之后点击验证码URL右边的获取,然后在点击下方的接口URL - 识别,便可以识别出验证码了。

我们已经配置好了验证码插件,并能准备识别,接下来将运用到实际使用中,我们抓取一下登录包,然后发送到攻击器

在这里可以选择对密码和验证码进行标记,并把攻击类型选择为交叉(由于对账号、密码、验证码都加上标记,然后用集束炸弹验证的话,效率非常之低,不便于演示,所以这里我仅对密码和验证码进行标记,并使用交叉模式)

payload集是按标记从上到下、从左至右的顺序,并不以先后点击作为顺序,我们为第一个集指定密码字典,为第二个集指定通过扩展生成,并选定为插件captcha-killer
在这里插入图片描述

在这里插入图片描述

接下来我们看一下有无插件的对比
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

### 关于 captcha-killer-modified 的实战案例与教程 #### 插件概述 captcha-killer-modified 是一个经过改进的 Burp Suite 插件,旨在帮助自动化处理 Web 应用程序中的验证码验证过程。该插件通过集成 OCR 技术来解析图像形式的验证码并将其转换为可读文本[^2]。 #### 安装指南 为了成功部署此工具,在 Windows 平台上需先配置 Python 运行环境,并按照官方文档说明完成必要的依赖项安装以及插件本身的设置工作[^1]。 #### 使用方法详解 当一切准备就绪之后,可以通过如下方式利用 captcha-killer-modified 来应对实际场景: 1. **启动 Burp Suite** 打开应用程序并将目标网站流量导向代理服务器以便后续操作。 2. **加载插件** 将下载好的 `captcha-killer-modified` 文件夹放置到指定目录下,确保其能够被正确识别加载。 3. **配置参数** 根据具体需求调整相关选项,比如选择合适的 OCR API 接口(如百度云服务),设定请求超时时间等。 4. **发起攻击尝试** 当访问含有图形验证码保护的功能页面时,插件会自动截获相应数据包并对其中包含的 CAPTCHA 图片执行解码任务;一旦获取有效字符序列,则继续提交表单直至获得预期响应为止。 5. **监控日志输出** 查看控制台打印的信息了解整个流程进展状况,必要时依据错误提示排查问题所在。 ```python from burp import IBurpExtender, IProxyListener import base64 import requests class BurpExtender(IBurpExtender, IProxyListener): def processHttpMessage(self, toolFlag, messageIsRequest, messageInfo): if not messageIsRequest: response = messageInfo.getResponse() analyzedResponse = self._helpers.analyzeResponse(response) body_offset = analyzedResponse.getBodyOffset() body_bytes = response[body_offset:] body_str = str(body_bytes) # 假设我们已经找到了CAPTCHA图片的位置和Base64编码字符串 start_marker = "data:image/png;base64," end_marker = '"' cap_start = body_str.find(start_marker) + len(start_marker) cap_end = body_str.find(end_marker, cap_start) img_base64 = body_str[cap_start:cap_end] image_data = base64.b64decode(img_base64) ocr_result = recognize_captcha(image_data) # 修改HTTP请求体以包含OCR得到的结果 request_info = self._helpers.analyzeRequest(messageInfo.getRequest()) params = request_info.getParameters() for param in params: if param.getName() == 'captcha': updated_request = self._helpers.updateParameter( messageInfo.getRequest(), self._helpers.buildParameter('captcha', ocr_result, param.getType())) messageInfo.setRequest(updated_request) def recognize_captcha(image_binary): api_url = "https://api.example.com/ocr" files = {'file': ('captcha.png', image_binary)} r = requests.post(api_url, files=files) result_text = r.json().get('text') return result_text ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值