验证码爆破

验证码爆破

验证码爆破

现在偶尔遇到验证码爆破这东西了,这里还是来记录一下配置及使用方法,但是这个爆破方法也只在一定情况下使用。

对于验证码的其他情况,可以看一看第三个参考文章。

captcha-killer-modified

工具配置

一个burp插件,地址:https://github.com/f0ng/captcha-killer-modified/releases/tag/0.24.3

先在给的工具地址选下载与启动burp的java版本适配的jar包,我这里是直接看的本地java版本,所以这里直接选择java8即可:

image-20250207205142805

然后需要配置一下python的环境,这里需要安装如下的库:

1
2
3
4
5
flask
ddddocr
Pillow==9.5.0
aiohttp==3.8.3
argparse==1.1

直接将其写入到一个requirements.txt文件一步下载即可,这里我用的python的版本是python3.8,写好后直接如下安装即可:

1
pip38 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

后面使用时会使用如下脚本,现在先不说:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# -*- encoding=utf-8 -*-

import argparse
import ddddocr                      
from aiohttp import web

ocr = ddddocr.DdddOcr()
async def handle_cb(request):
    return web.Response(text=ocr.classification(await request.text()))

app = web.Application()
app.add_routes([web.post('/reg', handle_cb)])

if __name__ == '__main__':
    web.run_app(app,host='127.0.0.1',port=8881)

然后就是在burp上配置一下插件,直接在上边栏找到extension,然后如下配置即可:

image-20250207212427038

如下就是配置好了:

image-20250207212457162

后面就直接用一道题来说明后面该怎么用。

例题说明

这里就简单说说验证码爆破的步骤,后续的解题就不说了。

开题如下:

image-20250207212956998

可以看出来就是一个登录框+验证码,在这里我们可以看一下这个验证码的生成情况:

image-20250207213056867

经测试发现是通过一个url可查看,并且这里刷新一次换一个验证码,在这里我们直接将其发送给burp,并用captcha来获取:

image-20250207213951836

然后去到插件页面,点击获取,得到验证码即为成功(这里识别到了验证码,但是不用管,继续跟着后面走就行):

image-20250207221720161

然后启动前面的python脚本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# -*- encoding=utf-8 -*-

import argparse
import ddddocr                      
from aiohttp import web

ocr = ddddocr.DdddOcr()
async def handle_cb(request):
    return web.Response(text=ocr.classification(await request.text()))

app = web.Application()
app.add_routes([web.post('/reg', handle_cb)])

if __name__ == '__main__':
    web.run_app(app,host='127.0.0.1',port=8881)

再来到配置的下面部分,在Request template输入框中右键,选择ddddocr模板:

image-20250207221915008

然后将端口改成本地运行的端口并点击识别:

image-20250207222058288

然后就成功了:

image-20250207222131767

然后回到原先登录框这里,随便输入将其发送到爆破模块,将密码和验证码设置为变量:

image-20250207222943829

payload1就是正常的字典,Payload2如下设置,选择扩展生成:

image-20250207223229700

然后还可以设置一下资源池,注意应该需要调一下线程,新建一个就行,这里是设置的一秒一个请求,防止验证码被重复使用(确实需要调线程):

image-20250207223747852

然后点击start,最后成功爆破出来:

image-20250207223956115

在工具的配置页面是可以看到识别效果的:

image-20250207224729971

——————

一般验证码爆破适用于验证码是一个url生成的,还是多尝试。还有问题的话看参考文章。

PKAV工具

地址:https://github.com/estell-yf/PKAV

这里直接就是一个图形化工具,直接讲怎么用吧:

[NSSCTF 3rd]NSS影院

NSS影视,你值得拥有

——————

开题,信息收集,可以知道是php,扫目录扫到www.zip,访问拿到源码,给了一个文件:

image-20250208144701526

感觉是一个字典,测了一下网站,应该是需要登录的,找了一圈,在咨询下有一个test:

image-20250208145400386

image-20250208145409749

点进去就行,这是一个建站测试,可以看到作者,以及flag部分路径:

image-20250208145459671

image-20250208145510320

1
2
d3f4u1t
/Fl4g_is_h3r3

再扫一下这个路径下的文件:

image-20250208150505644

访问login.php,就是一个登录框:

image-20250208150544789

然后可以打开验证码,发现是通过url来生成的验证码,这里先是尝试用captcha工具,然后成功爆破出来了:

image-20250208151200250

密码是 princess! ,登录进去就拿到了flag:

image-20250208153105070

——————

但这里还是主要说明PKAV工具的使用:

复制验证码的url到PKAV工具中:

image-20250208150958106

然后翻到下载点识别测试即可:

image-20250208151026004

然后抓登录的HTTP包,将其丢进PKAV工具:

image-20250208151753306

分别设置爆破的变量以及验证码标记。

然后设置密码字典即可:

image-20250208152147763

再然后到重放选项页面设置,根据实际情况调整:

image-20250208152247657

然后在发包器开始爆破就行:

image-20250208152634928

最后也是成功爆破出来了:

image-20250208152753741

总的来说就是需要设置变体,验证码识别,重放选项,然后在发包器发包即可。

但其实感觉直接使用burp插件就行了,也比较方便。

参考配置文章:

https://blog.csdn.net/qq_33906495/article/details/135367789

https://www.52pojie.cn/thread-1944555-1-1.html

https://blog.csdn.net/weixin_39190897/article/details/86539542

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计