验证码识别插件-captcha-killer

news2024/11/18 16:28:48

前言

想必大家都会使用burp进行爆破,当遇到带验证码的登录表单进行爆破时,基本尝试抓包后观察验证码是否主动更新,或者进行验证码绕过(我是十八期萌新,听风风说的有这个方法,但我还没学到),机缘巧合下我接触到了captcha-killer这个插件,可以提供给大家第三种爆破思路(插件可以从GitHub下载)
(https://github.com/c0ny1/captcha-killer)

什么是captcha-killer?

总的来说,它是个用Java写的插件,可以无缝衔接于burp.但是他只是一个调用接口,并不进行识别的操作,真正进行验证码识别处理的是两个个用Python脚本(codereg.py)调用的两个接口(ddddocr和aiohttp), 稍后我会进行简明的介绍
captcha-killer设计理念是只专注做好对各种验证码识别技术接口的调用, 说具体点就是burp通过这一个插件,就可以适配各种验证码识别接口,无需重复编写调用代码.
今天不谈编码层面如何实现(主要是我也不会),感兴趣的同学可以去github看源码. 此篇文章只通过使用步骤来说明使用方法

简要介绍codereg.py

个人理解,这个脚本的整体识别流程是通过python在本地开启一个验证码识别的web接口来接收captcha-killer传来的验证码图片内容,然后调用识别服务(利用机器学习)来识别,最后返回结果给captcha-killer.



正题

ok废话不多说,这里是正题!!!!!!!!!!!!

1.安装插件

首先打开burp,选择Extender——>Add(默认Java类型插件)————>Select File——>选择下载的captcha-killer-modified-jdk14.jar文件

图片

发现任务栏里多出一个captcha-killer,就说明安装成功,如下图↓

图片



2.获取目标网站验证码

(1)找到要爆破的网站并打开burp,我找到了一个网站作为案例(并未进行爆破)

图片

(2)开始抓包,点击验证码刷新,拦截此次请求

图片

(3)鼠标右键,将这个包发送到captcha-killer模组里

[‘extensions’—->’captcha-killer’—>’send to captcha panel’]

图片

(4)点击任务栏里的插件模组,可以看到数据包已经自动填入,点击获取按钮,可以获取数据包内的图片验证码,此时获取验证码的流程已经走完,接下来的任务是进行识别

图片

3.开启本地验证码识别服务

本文实验的python版本环境:Python 3.9.4

(1)python中安装ddddocr和aiohttp包

和其他第三方包的安装方式一样,在dos命令中写入以下命令

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

这样就是安装成功了

图片

(2)用python运行codereg.py脚本

打开命令控制台(建议在当前文件夹下打开cmd,不用填路径也不用配环境变量)
运行以下脚本

 
  1. python codereg.py

图片


显示ddddocr(本地验证码识别的web接口)已经运行成功,此时的接收端口为8888.
注意,这个dos面板不能关掉,否则ddddocr不会继续运行,也就不能进行识别了

(3)在burp的captcha页面配置接口URL和请求模板(Request template)

 
  1. POST /reg HTTP/1.1

  2. Host: 127.0.0.1:8888

  3. Authorization:Basic f0ngauth

  4. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0

  5. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

  6. Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

  7. Accept-Encoding: gzip, deflate

  8. Connection: keep-alive

  9. Upgrade-Insecure-Requests: 1

  10. Content-Type: application/x-www-form-urlencoded

  11. Content-Length: 8332

  12. <@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>

将以上代码直接复制进插件页面的左下角的请求模板中,填写url为http://127.0.0.1:8888

图片

点击识别之后通过ddddocr进行了机器学习的识别,可以看到dos面板开始进行了一系列操作

图片

此时可在右边的结果栏看到识别成功(这个第一张示例验证码比较复杂,所以识别失误了),但问题不大,识别简单的验证码成功率为百分之99.9%,复杂的验证码就别用这个插件了

以上就是配置识别验证码的接口配置完成,接下来进行批量化处理的教学

4.最终步骤:将验证码识别与爆破结合

(1)按正常步骤进行账号密码验证的抓包

打开拦截开关,抓取登录操作的数据包

图片

(2)发送到intruder模块

和正常的爆破一样,发送到入侵者模块

图片

(3)对密码和验证码添加攻击字段标记并选择pitchfork模式

图片

(4)字段1对应密码,选择字典

payload页面字段1选一个爆破密码的字典

图片

(5)字段2对应captcha-killer模块

第二个payload是验证码的值
线程2选择继承插件模式
继承插件选择captcha-killer

图片

(6)一定注意选择单线程

线程池为单线程,否则验证码识别会交叉出现错误,很好理解,因为页面的验证码会一次一换,如果不是一一对应的关系就会出现验证码错误.

图片

(7)最终开始攻击,就会实现密码和验证码一一对应的爆破了

图片


↑此图为本机测试,并未进行未授权攻击

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

免费领取安全学习资料包!

渗透工具

技术文档、书籍

 

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

 

应急响应笔记

学习路线

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程数据共享必学的3个工具类: ThreadLocal InheritableThreadLocal TransmittableThreadLocal

线程数据共享必学的3个工具类&#xff1a; ThreadLocal InheritableThreadLocal TransmittableThreadLocal 1.ThreadLocal:在当前线程中共享数据的&#xff0c;JUC 中提供的 2.InheritableThreadLocal:也是JUC中的一个工具类&#xff0c;解决 ThreadLocal 难以解决的问题 3.Tra…

MPLS原理与配置

1.MPLS概述 &#xff08;1&#xff09;传统IP路由转发 &#xff08;2&#xff09;MPLS基本概念 ⦁ MPLS起源于IPv4&#xff08;Internet Protocol version 4&#xff09;&#xff0c;其核心技术可扩展到多种网络协议&#xff0c;包括IPv6&#xff08;Internet Protocol ver…

WPF中CommandParameter用法

1. 界面样式 2. XAML中代码部分 <ButtonGrid.Row"0"Grid.Column"1"Command"{Binding BtnClick_Number}"CommandParameter"7"Content"7"Style"{StaticResource BtnStyle_Num}" /> <ButtonGrid.Row"…

我的第一个JAVA程序IDEA版

目录 第一步 新建一个空项目第二步 新建模块第三步 新建包第四步 新建类第五步 新建main方法 第一步 新建一个空项目 第二步 新建模块 第三步 新建包 第四步 新建类 然后在包文件夹下新建类 第五步 新建main方法

xlrd.biffh.XLRDError: Excel xlsx file; not supported报错原因

xlrd库读取xlsx文件时报错 xlrd.biffh.XLRDError: Excel xlsx file; not supported报错原因&#xff1a; xlrd版本为2.1版本&#xff0c;需要读取xlsx文件需要安装xlrd低一些版本1.2.0版本&#xff0c;重新安装重试即可 更换xlrd版本 重新运行

如何使用ffmpeg 实现10种特效

相关特效的名字 特效id 特效名 1 向上移动 2 向左移动 3 向下移动 4 颤抖 5 摇摆 6 雨刷 7 弹入 8 弹簧 9 轻微跳动 10 跳动 特效展示(同时汇总相关命令) pad背景显示 pad背景透明 相关命令(一会再讲这些命令&#xff0c;先往下看) # 合成特效语音 ffmpeg -y -loglevel erro…

【Linux】Linux信号产生,接受与处理机制

理解Linux信号产生&#xff0c;接受与处理机制 信号是Linux操作系统中一种用于进程间通信和异步事件处理的机制。在本文中&#xff0c;我们将结合Linux的源码&#xff0c;深入分析信号的产生、发送、接收和处理的底层原理。 文章目录 理解Linux信号产生&#xff0c;接受与处理…

Elasticsearch集群和Logstash、Kibana部署

1、 Elasticsearch集群部署 服务器 安装软件主机名IP地址系统版本配置ElasticsearchElk10.3.145.14centos7.5.18042核4GElasticsearchEs110.3.145.56centos7.5.18042核3GElasticsearchEs210.3.145.57centos7.5.18042核3G 软件版本&#xff1a;elasticsearch-7.13.2.tar.gz 示…

asp.net core接入prometheus

安装prometheus和Grafana 参考之前的文章->安装prometheus和Grafana教程 源代码 dotnet源代码 新建.net core7 web项目 修改Program.cs using Prometheus;namespace PrometheusStu01;public class Program {public static void Main(string[] args){var builder We…

Linux中ftp配置

一、ftp协议 1、端口 ftp默认使用20、21端口 20端口用于建立数据连接 21端口用于建立控制连接 2、ftp数据连接模式 主动模式&#xff1a;服务器主动发起数据连接 被动模式&#xff1a;服务器被动等待数据连接 二、ftp安装 yum install -y vsftpd #---下…

4. Java多线程面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 为什么要使用并发编程 充分利用多核CPU的计算能力&#xff1a;通过并发编程的形式可以将多核CPU的计算能力发挥到极致&#xff0c;性能得到提升方便进行业务拆分&#xff0c;提升系统并发能力和性能&#xff1a;在特殊的业务场景下&#…

cnpm 安装失败

安装淘宝镜像 //旧 证书已过期 npm config set registry https://registry.npm.taobao.org/ //运行这个会报错 //npm ERR! code CERT_HAS_EXPIRED //npm ERR! errno CERT_HAS_EXPIRED //用下边最新的安装 //新 npm config set registry https://registry.npmmirror.com这里安装…

SSE 与 SASE哪个云原生安全框架更加适合

近年来&#xff0c;随着云计算和网络技术的不断发展&#xff0c;出现了一种新的网络安全解决方案——SASE&#xff08;安全访问服务边缘&#xff09;。SASE是一种将网络和安全功能融合到单个基于云的服务中的框架&#xff0c;旨在提供更加安全、高效和便捷的网络访问体验。SASE…

【机器学习与实现】支持向量机SVM

目录 一、SVM (Support Vector Machine) 概述&#xff08;一&#xff09;支持向量机SVM的主要特点&#xff08;二&#xff09;支持向量与间隔最大化&#xff08;三&#xff09;线性可分/不可分&#xff08;四&#xff09;软间隔 (soft margin) 与核技巧 (kernel trick)&#xf…

web前端学习笔记11

11. CSS3高级特效 11.1 CSS3变形 CSS3变形是一些效果的集合, 如平移、旋转、缩放、倾斜效果 每个效果都可以称为变形(transform),它们可以分别操控元素发生平移、旋转、缩放、倾斜等变化 语法 transform:[transform-function] ; /* 设置变形函数,可以是一个,也可以是多…

vscode插件-07Java

文章目录 Extension Pack for JavaSpring Initializr Java SupportCodeSwingJdk下载JDK安装jdkWindows安装jdkLinux安装jdk&#xff08;以Ubuntu为例&#xff09; jdk环境变量在VScode中配置Windows系统中配置Linux系统中配置&#xff08;以Ubuntu为例&#xff09; Extension P…

arcgis 10.6 工具栏操作error 001143 后台服务器抛出异常

arcgis 10.6 工具栏操作error 001143 后台服务器抛出异常 环境 win10arcgis 10.6 问题 执行定义投影要素转线出现 Error: 001143:后台服务器抛出异常&#xff08;差点重装10.6&#xff09; 如下图所示&#xff1a; 解决方法 通过在菜单工具条上单击地理处理 > 地理处…

Linux进程相关查询

1、Linux下查看某些进程的启动时间和运行时长 比如查看java进程的启动时间和运行时长 # ps -ef|grep -v grep|grep -w java|awk {print $2} # ps -eo pid,lstart,etime | grep 1973 其中&#xff1a; Mon Jun 24 09:25:41 2019 为java进程的启动时间 4-00:16:55 …

LeetCode-Pow(x, n)【递归 数学】

[TOC](LeetCode-Pow(x, n)【递归 数学】) 题目描述&#xff1a; 实现 pow(x, n) &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即&#xff0c;xn &#xff09;。 示例 1&#xff1a; 输入&#xff1a;x 2.00000, n 10 输出&#xff1a;1024.00000 示例 2&#xf…

【Linux】套接字的理解 基于TCP协议的套接字编程(单/多进程 / 线程池|英汉互译 / C++)

文章目录 1. 前言1.1 网络方面的预备知识&#x1f447;1.2 了解TCP协议 2. 关于套接字编程2.1 什么是套接字 Socket2.2 socket 的接口函数2.3 Udp套接字编程的步骤2.4 sockaddr 结构 3. 代码实现3.1 makefile3.2 log.hpp3.3 tcp_server.hpp① 框架② service() 通信服务③ init…