bp插件captcha-killer(验证码杀手)

免责声明

本博客文章仅供教育和研究目的使用。本文中提到的所有信息和技术均基于公开来源和合法获取的知识。本文不鼓励或支持任何非法活动,包括但不限于未经授权访问计算机系统、网络或数据。

作者对于读者使用本文中的信息所导致的任何直接或间接后果不承担任何责任。包括但不限于因使用本文所述技术而可能导致的法律诉讼、财产损失、隐私泄露或其他任何形式的责任。

在进行任何渗透测试或安全研究之前,请确保您已获得所有必要的授权,并遵守适用的法律和道德准则。未经授权的安全测试可能违反法律,并可能导致严重的法律后果。

本文中的内容仅供参考,不应被视为专业建议。在进行任何安全相关活动之前,建议咨询具有相应资质的专业人士。

下载bp,我用的是2024.7.2

下载插件,打开bp安装插件

访问pikachu网站的暴力解第二关,点击图片,刷新验证码

打开bp抓包并发送给captcha-killer模块

进入captcha-killer模块,点击获取就会显示右边的验证码

使用模板库中的百度模版

我们可以看到里面有个[token]

之后我们需要去百度智能云注册用户:百度智能云-登录,然后进入主页操作以下步骤

这里是因为我已经领取过了,全都勾然后领取就行

 这里用这个方法获取,较为简单:
 https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【你创建应用的API Key值】&client_secret=【你创建应用的Secret Key值】

将创建之后的API Key和Secret Key替换掉【你创建应用的API Key值】和【你创建应用的Secret Key值】就行,然后访问该链接,这里我们需要的是access_token:后面的值,复制的时候加上双引号

将token复制过来,点击识别,然后将words后面的双引号内容选取并右键标记为识别结果

再次点击识别就会发现右边的图片码已经被识别出来了文字

接下来我们打开pikachu暴力破解的第二关,输入正确的用户名、密码并随便输入验证码,抓包并将包发送给攻击模块

进入攻击模块,设置攻击节点

设置payload

设置线程,开始攻击

查看攻击结果

也有失败的,到这就完成了

### 使用 Yakit 实现 Captcha-Killer 验证码爆破的技术细节 #### 1. 准备工作 为了实现验证码爆破,需要准备如下工具和环境: - 安装并配置好 BurpSuite 和 Yakit 工具。 - 下载并安装 `captcha-killer-modified` 插件[^1]。 确保目标网站存在可利用的登录接口,并带有验证码验证机制。例如,可以使用测试站点 `http://demo.xxxxx.com/login.php?s=Admin/login` 进行实验[^2]。 #### 2. 设置 BurpSuite 中间人代理 启动 BurpSuite 并设置浏览器通过其作为中间人代理服务器来捕获 HTTP 请求流量。这一步骤是为了拦截提交给服务器的数据包以便后续处理。 #### 3. 整合 Captcha-Killer 到 BurpSuite 扩展 将下载好的 `captcha-killer-modified` 文件夹放置于指定路径下,使 BurpSuite 能够加载此扩展模块。该版本增加了对 base64 编码图片的支持以及集成了多个 OCR 库以提高识别成功率。 #### 4. 在 Yakit 上编写自动化脚本 打开 Yakit 后台管理界面,在其中创建一个新的 Python 或 JavaScript 自动化任务。以下是基于 Python 的简单示例代码片段: ```python import requests from PIL import Image import io import base64 def get_captcha_image(session, url): response = session.get(url) img_data = base64.b64decode(response.json()['data']) image = Image.open(io.BytesIO(img_data)) return image def ocr_recognize(image_path): with open(image_path, 'rb') as f: result = model.predict(f.read()) return ''.join([str(x) for x in result]) if __name__ == '__main__': login_url = "http://example.com/api/getCaptcha" verify_code_field_name = "verifyCode" s = requests.Session() while True: try: captcha_img = get_captcha_image(s, login_url) # Save the CAPTCHA locally to process it using an external tool like Tesseract or EasyOCR. temp_file = "/tmp/temp.png" captcha_img.save(temp_file) recognized_text = ocr_recognize(temp_file).strip() payload = { "username": "admin", "password": "password", verify_code_field_name: recognized_text, } resp = s.post("http://example.com/api/authenticate", json=payload) if resp.status_code == 200 and '"success":true' in resp.text: print("[+] Login successful!") break else: continue except Exception as e: print(f"[!] Error occurred during processing {e}") ``` 这段代码展示了如何获取 Base64 编码形式返回的验证码图像数据流,并将其转换成 Pillow 图像对象;接着调用外部 OCR 模型预测函数解析出可能的文字序列;最后尝试用这些字符组合去完成一次有效的身份认证请求循环直到成功为止。 请注意实际应用时还需要考虑更多因素如反爬虫策略应对措施等。 #### 5. 测试与优化 运行上述编写的脚本之前先在一个受控环境中进行全面的功能性和安全性评估。调整参数设定直至达到预期效果后再应用于真实场景当中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值