图像验证码绕过

本文分享了两种验证码绕过方法,包括使用免费插件captcha-killer-modified配合burp和ddddocr进行识别,以及付费版本的调用。通过具体步骤演示了如何下载、安装和配置这些工具,以在Pikachu靶场进行登录尝试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前沿

最近一直在研究绕过验证码进行爆破的方法,在这里对自己这段时间以来的收获进行一下分享。在这里要分享的绕过验证码爆破的方法一共有2个,分为免费版本(如果验证码比较奇怪可能会有识别错误的情况)和付费版本(调用收费接口,所以很精准),下面针对免费的版本做分享。

插件:captcha-killer-modified

步骤概述

  1. 下载captcha-killer-modified.jar包
  2. burp安装captcha-killer-modified.jar包
  3. 搭建验证码识别服务(下载安装ddddocr)
  4. 启动验证码识别接口(codereg.py)
  5. 配置参数进行使用

下载captcha-killer-modified.jar包

打开项目地址,点击右侧releases进入下载最新版本的jar包,我选择的是0.21-jdk11版,也可以直接点击下边地址下载(使用的burp的jdk版本是jdk16,win11操作系统)。

https://github.com/f0ng/captcha-killer-modified/releases/download/0.21-beta/captcha-killer-modified-0.21-beta-jdk11.jar

下载python脚本源码

也可以直接点击下方地址下载。

https://github.com/f0ng/captcha-killer-modified/blob/main/codereg.py

下载python脚本即可,即codereg.py,需准备python3环境。

burp安装captcha-killer-modified.jar包

下载插件文件后,启动Burpsuite,点击Extensions模块,在Burp Extensions一栏点击Add,选择刚下好的jar包。并点击下一步完成安装

安装ddddocr服务,并配置接口

验证码识别接口用到的是Python库中的ddddocr,Web服务用 到的是aiohttp。 因此我们需要使用到Python环境,本次教程中使用的版本为 Python3.

执行命令:

pip install -i http://mirrors.aliyun.com/pypi/simple/

也可以单独安装ddddocr

Pip install ddddorc

我选择的是第二种,如果网上慢的话,弄个vpn即可。

然后安装其他包

然后运行codereg.py脚本。

成功运行后的结果。

实验

实例:以pikachu靶场为目标

鼠标放到图片位置,复制图片的链接,新建窗口打开;

访问攻击目标的验证码图片接口的url:http://127.0.0.1/pikachu-master/inc/showvcode.php

然后使用burp抓包,然后右键点击扩展:

然后在数据包中对url进行修改:

此处改为验证码的链接:/pikachu/inc/showvcode.php

然后点击获取,如果成功显示验证码图片则成功。

接着配置接口URL,填写为http://127.0.0.1:8888,在Reques template 中右击配置模板库为ddddocr(没有使用过工具的,这里在未设置模板库时应该是 无内容的)

然后修改coderge.py脚本中的内容,修改要识别的验证码位数,

修改之后运行该脚本,如下情况表示运行成功,成功创建http接口。

之后点击burp中的识别;成功识别,且python脚本有输出。

之后将登录数据包发送到攻击模块。

在爆破模块中:clear所有参数,在选择password、vcode的参数进行add

然后攻击类型选择‘集束炸弹’

然后进入有效载荷模块,payload1选择简单列表,然后载入密码字典。

Payload2选择‘通过扩展生成’,之后选择生成器。

进入资源池设置攻击请求数。

然后点击‘开始攻击’。

让burp自己跑一阵之后在看结果,然后一般长度最长且跟其余不一样的表示登录成功。

用户名为admin,密码为123456,

在pikachu中登录,显示登录成功

自此,实验成功!!!

### Pikachu验证码绕过技术分析 #### 前端验证绕过 (On Client) 对于前端验证机制,在某些情况下,验证码的校验逻辑可能完全位于客户端浏览器内。当尝试登录并故意输入错误验证码时,如果观察到仅触发JavaScript警告而未向服务器发出任何请求,则表明验证码校验发生在前端[^3]。 在这种场景下,可以通过禁用JavaScript或修改DOM来规避此限制。具体操作如下: 1. 使用开发者工具(如Chrome DevTools)中的Network标签监控HTTP流量; 2. 发现即使提交表单也不会真正发送POST请求给服务端; 3. 这意味着可以在本地环境中篡改HTML/JS代码,移除或调整验证码检验部分。 ```javascript // 修改后的JavaScript函数,总是返回true跳过实际验证过程 function checkCaptcha() { return true; } ``` #### 后端验证失效利用 (On Server) 针对后端处理不当的情况,存在几种常见的弱点可加以利用: - **验证码永不过期**:一旦获取有效验证码即可无限次重试直至成功登陆。 如果注意到尽管页面上的图形已更新但先前版本仍能通过验证,则证明该站点未能妥善管理会话状态下的CAPTCHA时效性[^4]。 - **缺乏严格的二次确认流程**:即允许同一份图像多次参与身份认证而不做额外检查。 当遇到这种情况时,攻击者能够记录下合法响应包并通过Burp Suite等代理软件批量投递伪造的数据流实施字典攻击[^5]。 - **模式识别风险**:过于简单的字符组合加上固定的生成算法使得机器学习模型易于训练从而预测下一个可能出现的结果序列[^2]。 为了防止上述漏洞的发生,开发人员应当确保每次展示新的随机数列的同时也要同步销毁之前存在的实例,并且引入时间戳或其他动态因素增加复杂度降低被攻破的概率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值