动手实验图形验证码识别与利用

Posted i春秋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手实验图形验证码识别与利用相关的知识,希望对你有一定的参考价值。


实验环境

操作机:Windows XP

IP:172.16.11.2


实验目的

了解图形验证码识别技术


学习使用PKAV HTTP Fuzzer

对图片型验证码识别与利用


学习使用burp插件reCAPTCHA

对图片型验证码识别与利用


实验工具

python

是一种面向对象的解释型计算机程序设计语言,可快速开发实用的小脚本。


PKAV HTTP Fuzzer

自带验证码识别的工具,可暴力破解表单。


实验步骤

步骤一: 了解图形验证码识别技术

图形验证码识别主要分成三部分:预处理,字符分割,字符识别。


预处理:主要是将验证码图片进行色度空间转换、去除干扰、降噪、旋转等操作,为字符分割的时候提供一个质量较好的图片。


字符分割:得到经过预处理的图片后需要将每个字符单独分隔出来。


字符识别:收集训练样本,生成识别模型,再利用识别模型来识别图片验证码。

一般情况下,对于字符型验证码的识别流程如下

准备原始图片素材

图片预处理

图片字符切割

图片尺寸归一化

图片字符标记

字符图片特征提取

生成特征和标记对应的训练数据集

训练特征标记数据生成识别模型

使用识别模型预测新的未知图片集

达到根据“图片”就能返回识别正确的字符集的目标


步骤二: 使用PKAV HTTP Fuzzer对图片型验证码识别与利用

第一步:打开“验证码安全演示系统”靶场

打开桌面上的Mozilla Firefox浏览器,会自动进入到“验证码安全演示系统”靶场

【动手实验】图形验证码识别与利用


第二步:打开burpsuite,拦截表单数据包

打开桌面上的burpsuite.bat等待几秒,会弹出提示框,点击I Accept

【动手实验】图形验证码识别与利用


查看burpsuite的代理端口

【动手实验】图形验证码识别与利用


Mozilla Firefox浏览器进行设置代理端口

菜单栏 > 选项

【动手实验】图形验证码识别与利用


高级 > 网络 > 手动配置代理

输入127.0.0.1、端口:8080

【动手实验】图形验证码识别与利用


点击靶场左侧的“验证码识别”

【动手实验】图形验证码识别与利用


填写账号、密码、验证码,点击Login,打开burpsuite查看拦截的数据包

【动手实验】图形验证码识别与利用


第三步:使用PKAV HTTP Fuzzer识别验证码

PKAV HTTP Fuzzer:自带验证码识别的工具,可暴力破解表单,本工具运行需要安装.net framework 4.0或以上版本


打开桌面\Tools里的PKAV HTTP Fuzzer

【动手实验】图形验证码识别与利用


将burpsuite拦截的数据请求包复制到PKAV HTTP Fuzzer工具中的请求包

【动手实验】图形验证码识别与利用


将验证码选中添加验证码标记

【动手实验】图形验证码识别与利用


将密码字段添加标记

【动手实验】图形验证码识别与利用


【动手实验】图形验证码识别与利用


【动手实验】图形验证码识别与利用


【动手实验】图形验证码识别与利用


点击识别测试

【动手实验】图形验证码识别与利用

可发现验证码识别成功


第四步:使用PKAV HTTP Fuzzer爆破表单

选中变体设置,点击导入

【动手实验】图形验证码识别与利用


选择C:\Documents and Settings\ichunqiu\桌面\Tools\python脚本文件夹中的password.txt字典

【动手实验】图形验证码识别与利用
【动手实验】图形验证码识别与利用


选择重放选项添加字符串匹配,添加内容为admin

【动手实验】图形验证码识别与利用


选择发包器中的启动

【动手实验】图形验证码识别与利用


发现密码为888888,显示匹配,破解成功

【动手实验】图形验证码识别与利用


步骤3:使用burp插件reCAPTCHA对图片型验证码识别与利用

因实验环境无法连接外网,无法在线识别验证码,建议此处使用burp插件reCAPTCHA对图片型验证码识别与利用的实验学员们能在自己本机环境下测试


第一步:安装burp插件reCAPTCHA

从此处https://github.com/bit4woo/reCAPTCHA/releases下载插件。

将它添加到burp

【动手实验】图形验证码识别与利用
【动手实验】图形验证码识别与利用
【动手实验】图形验证码识别与利用


如果没有遇到错误,你将看到一个新的名为“reCAPTCHA”的tab。

【动手实验】图形验证码识别与利用


第二步:使用burp插件reCAPTCHA对图片型验证码识别与利用

通过burp代理访问目标网站的登录界面。

在proxy中找到获取图形验证码的请求,选中它并点击右键选择“Send to reCAPTCHA”,这个请求的信息将被发送到reCAPTCHA。

【动手实验】图形验证码识别与利用


切换到reCAPTCHA标签,并配置所需的参数。当参数配置好后,你可以点击“请求”按钮来测试配置。


http://www.ysdm.net 的API是目前唯一支持的接口,其中的各项参数需要自行注册帐号并填写,才能成功调用接口完成图片的识别。该API需要的参数如下,请用正确的值替换%s ,特别注意typeid值的设定(http://www.ysdm.net/home/PriceType)

username=%s&password=%s&typeid=%s


在Intruder中使用:

完成了配置并测试成功后,现在可以在Intruder中使用该插件生成的payload了。有2种情况:用户名或密码之一+验证码;用户名+密码+验证码;


情况一:只有密码或只有用户名需要改变,我们可以用Pitchfork 模式来配置。

比如,已知系统存在一个用户admin,来爆破该用户,插入点标记如下

【动手实验】图形验证码识别与利用


payload 1我们从字典中加载

payload 2 选择“Extension-Generated”

【动手实验】图形验证码识别与利用


运行效果如下

【动手实验】图形验证码识别与利用


情况二:用户名和口令都需要改变,这个稍微复杂点。我们还是使用Pichfork模式,但需要将用户名和密码一起标注为一个插入点。像这样:

【动手实验】图形验证码识别与利用


payload 1 使用“自定义迭代器(Custom interator)”。并在迭代器中组合用户名和密码。

在该例子中,即 position 1为用户名,position 2 为“&j_password=”,postion 3为密码。

【动手实验】图形验证码识别与利用


payload 2 的配置和情况一中的配置完全一样。

运行效果如图:

【动手实验】图形验证码识别与利用


实验结果分析与总结

通过本实验我们了解图形验证码识别技术,学习了使用PKAV HTTP Fuzzer对图片型验证码识别与利用,学习了使用burp插件reCAPTCHA对图片型验证码识别与利用。

编辑:咕嘟嘟

责任编辑:MAD小郭

校对:小林龙马、山雾草野、小南瓜


戳阅读原文,参与实验吧~


以上是关于动手实验图形验证码识别与利用的主要内容,如果未能解决你的问题,请参考以下文章

Python验证码识别:利用pytesser识别简单图形验证码

[Python][爬虫]利用OCR技术识别图形验证码

利用pytesser识别图形验证码

验证码的识别

图形验证码的识别

学会Python,验证码识别,不在是难事!