动手实验图形验证码识别与利用
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小郭
校对:小林龙马、山雾草野、小南瓜
戳阅读原文,参与实验吧~
以上是关于动手实验图形验证码识别与利用的主要内容,如果未能解决你的问题,请参考以下文章