BurpSuite使用(三):暴力破解及验证码绕过

声明:学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章。笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!

本文所有操作均在个人实验机器上进行!

一、安装并启用验证码识别插件

本插件依赖Python环境,所以需要先安装好Python3

1、在Extensions菜单导入插件

(1)点击Add,添加插件

(2)导入成功

2、安装Python必备模块

(1)pip install ddddocr

(2)pip install aiohttp

二、验证码绕过配置

本文所有测试均在Pikachu靶场

1、配置验证码URL

(1)鼠标在验证码上右键-新建标签页打开图像

如果每次刷新页面,验证码会变就说明是正确的

(2)对该页面进行抓包,并发送扩展插件

点击获取菜单

2、配置接口URL

(1)进入插件文件夹,执行python codereg.py

(2)输入接口URL:http://127.0.0.1:8088

数据包发送到扩展插件

填写接口URL,右键选择模板库-ddddocr,点击识别

可以看到,验证码识别成功

三、进行暴力破解和验证码绕过测试

1、选择测试页面并抓包

发送到Intruder模块

2、进行攻击测试配置

(1)攻击类型选择Pitchfork,添加密码和验证码两个攻击变量

(2)点击Payloads

Payload set:选择1,配置密码字典

Payload set:选择2,Payload type:选择Extensions-generated

Payloads Options选择装好的插件

(3)插件页面点击使用该插件

3、点击Start attack开始进行测试

四、总结

1、安装好python环境,python版本选择3.9以下的;

2、不要使用最新的BurpSuite,会报错;

### 使用Burp Suite对Pikachu平台实施验证码爆破攻击 #### 安装与配置环境 为了能够顺利进行暴力破解操作,需先确保已正确安装并配置好Burp Suite软件。对于特定功能需求如验证码处理,则要额外加载支持插件来增强其能力[^2]。 #### 清理历史记录以便于后续工作开展 进入Proxy模块下的HTTP History界面清除之前所有的访问痕迹,这样做是为了更清晰地定位即将发起请求的相关信息而不受干扰项影响;接着重新载入目标站点的登录页从而获取最新的认证令牌(Token),此步骤至关重要因为每次页面刷新都会更新这个一次性使用安全参数,在随后构建自动化脚本时需要用到它作为必要组成部分之一[^3]。 #### 抓取并分析登录过程中的关键要素 利用浏览器开发者工具或者直接依靠Burp自身的拦截机制监视整个提交表单的过程,重点关注POST方法携带的数据字段特别是那些动态生成的部分比如CSRF Token等防重放措施所涉及的内容。同时也要留意服务器响应里可能存在的提示消息或错误描述有助于调整猜测策略提高成功率[^1]。 #### 设置Intruder用于执行实际的密码尝试任务 切换到Intruder标签页内创建新的Attack定义,指定先前捕获的那个包含用户名/口令输入框在内的Request作为模板。接下来就是精心挑选Payloads集合——即待测账户名列表加上字典文件组合而成的整体候选集,并且针对每一轮试验合理安排并发数量以平衡效率同稳定性之间的关系。 #### 应对可能出现的人机验证挑战 如果遇到图形化形式呈现出来的检验环节,那么除了依赖OCR技术自动解析之外还可以考虑搜集大量样本训练专门模型实现精准识别转换成可被程序理解的文字串再参与整体流程当中去。当然有时候最简单的办法反而是寻找规律避开正面冲突,例如观察URL变化模式、Cookie属性设置等方面是否存在漏洞可供利用绕过这层防护屏障直达核心业务逻辑层面继续深入探索。 ```python import requests def attempt_login(username, password): url = "http://example.com/login" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', # Add other necessary headers here based on your observation from Burp's interception. } data = { 'username': username, 'password': password, 'csrf_token': get_current_csrf_token() # Function to fetch the latest CSRF token dynamically. } response = requests.post(url, headers=headers, data=data) if "Login successful" in response.text: print(f"[+] Login succeeded with {username}:{password}") return True else: print(f"[-] Failed login attempt using {username}:{password}") return False def main(): usernames = ["admin", "test"] passwords = load_password_list_from_file("path/to/password/dictionary.txt") for user in usernames: for pwd in passwords: success = attempt_login(user, pwd) if success: break if __name__ == "__main__": main() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值