配置字典
pikachu 靶场内置了三个账户:
admin/123456
pikachu/000000
test/abc123
这里也就是告诉我们实际存在哪些用户,我们在编写字典时需要把正确的三组账户至少插入一组才能检验试验是否成功
标记替换点(Payload)
这里我们先随便填入一组数据,并开始抓包
之后使用 Burp Suite 的 Intruder
功能(Ctrl+i),并添加 Payload 位置
什么是 Payload:在网络安全领域中,Payload 被译为载荷,通常是指在通信中传输的有效数据或恶意代码,其具体含义取决于上下文环境
当待替换字段被§
包围时,则代表选中成功
Burp Suite 的爆破类型
Burp Suite 共有四种爆破类型:
-
狙击手(Sniper)—— 单个 Payload -
撞击物(Battering ram)—— 一组 Payload -
交叉(Pitchfork)—— 多个 Payload 集 -
集束炸弹(Cluster bomb)—— 多个 Payload 集合
狙击手(Sniper)
使用一组或多组 Payload 位置,将每个 Payload 放入第一个位置,再放入第二个位置,以此类推
撞击物(Battering ram)
使用一组 Payload 位置,将每个 Payload 同时放入所有位置
交叉(Pitchfork)
可以标记最多 20 个 Payload ,每个 Payload 集各用各的字典
集束炸弹(Cluster bomb)
可以标记最多 20 个 Payload,尝试 Payload 组合的所有排列
爆破试验
这里我们使用集束炸弹(Cluster bomb)
模式,因为实际情况下我们既不知道用户名也不知道密码
发现 admin/123456 (提示中的正确组合)组合与其他组合响应报文长度明显不同(单点长度即可排序),故用对比器验证返回报文有何不同
长度为 35806 时返回的的报文(左),长度为 35110 时返回的的报文(右),差别在于一个登录成功(login success),一个登录失败(username or password is not exists),故找到了长度不同的原因
常见问题
-
长度不同就可以判断为登录成功吗?为什么有的差距很小有的很大?一般长度具有明显区别才可以判断为有成功组合,因为成功页面和原页面响应内容大不相同,故响应报文长度也不同
除此以外,有些差距小的是因为响应头某些字段产生了改变,如实验中的长度 35110 与 35111 组仅是响应头有一项数据不同,无法作为判断依据
可以使用 Burp Suite 的正则提取功能(grep)来进行辅助判断
最终只要看谁没有返回 1 即可
-
为什么使用 Burp Suite 自带的比较器无法比较?可能是你 Burp Suite 自带的编码出现问题,请使用 Hex 格式进行比较,或调整编码格式
原文始发于微信公众号(天禧信安):【Pikachu 靶场精讲】暴力破解—基于表单的暴力破解
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论