首页 / 资讯中心 / 文章详情

web渗透实战笔记:暴力破解(上)----无防护与前端验证码

web渗透实战笔记:暴力破解(上)----无防护与前端验证码 ★ FEATURED ARTICLE
在Web渗透测试中暴力破解Brute Force并非简单的盲目跑字典而是基于对服务端防护机制的识别选择针对性的自动化攻击策略。本文记录了在 Pikachu 靶场中针对基础防护场景的爆破实战过程与核心原理分析。场景一基于表单的暴力破解无防护机制现象评估登录界面无验证码且未制定失败次数锁定策略具备完全自动化攻击的条件。操作路径输入账号“1”与任意密码“1”登录界面显示“用户名或密码不存在”使用 Burp Proxy 拦截Burp suit 可以在我们的请求到达服务端之前拦截客户端发送的请求登录请求并发送到 Intruder。在 Positions 标签中清空默认标记针对 password 参数值添加 Payload 标记§。攻击类型我们可以选择 Sniper 或 Cluster bomb attack。Burp Suite 四种爆破模式先记住一个前提你在请求里把“用户名”和“密码”标记成两个位置Burp 就会往这两个坑里填字典。假设• 用户名字典admin、test• 密码字典123、456下面看四种模式分别怎么填。Sniper狙击手一次只改一个坑另一个坑不动。比如先只爆破密码• admin / 123• admin / 456然后再换用户名密码不动• admin / 123• test / 123像什么 狙击手一次只瞄一个目标。啥时候用 已知用户名只猜密码。Pikachu 表单爆破最常用。Battering ram攻城锤一个值同时填进所有坑。字典里拿到 admin就变成• admin / admin拿到 test就变成• test / test像什么 一把锤子同时砸所有门。啥时候用 用户名和密码需要填一样的值。Pitchfork音叉两组字典一一配对不乱配。用户名字典第 1 个配密码字典第 1 个第 2 个配第 2 个• admin / 123• test / 456像什么 两个人一对一对上场。注意 以短的那组为准。啥时候用 你已经有“用户名对应密码”的字典。Cluster bomb集束炸弹所有搭配全试一遍。用户名每个值配密码每个值• admin / 123• admin / 456• test / 123• test / 456像什么 把所有组合都炸一遍。啥时候用 用户名和密码都不知道彻底穷举。注意 请求量是相乘的字典一大就很慢。口诀Sniper 最常用Cluster bomb 最猛但请求最多在 Payloads 标签中加载预设的弱口令字典。点击 Start attack 发起自动化并发请求。插入图片2Intruder 攻击结果列表重点圈出 Length 不同的那一条这是爆破后的响应列表。观察 Length响应体长度 列可以发现绝大多数失败请求的响应长度保持高度一致。唯独其中一条记录的 Length 发生了显著突变通常伴随状态码302重定向。这种响应差异Response Variance直接证明了该 Payload 成功通过了认证即正确密码。场景二验证码绕过前端校验缺陷现象评估登录页面存在图形验证码输入框但在输入错误验证码时系统仍返回“密码错误”而非“验证码错误”。这表明验证码的校验逻辑仅存在于前端客户端 JS。操作路径输入用户名“1”密码“1”和正确验证码登陆界面显示用户名和密码不存在界面刷新。拦截登录请求。发送到重放器Repeater点击发送响应显示用户名和密码不存在。将验证码改为新的验证码响应依旧显示用户名和密码不存在并没有刷新后端的验证码这说明验证码正确与否后端并不验证因此可以利用验证码重复暴破接下来就和基于表单暴破的手法无二了。发送至 Intruder攻击类型为Sniper 模式仅对 password 参数添加标记。加载字典并执行 Start attack。即由于后端未对验证码进行二次校验该参数在请求体中形同虚设。在自动化工具面前仅靠前端校验的防护体系毫无意义风险极大。总结一基于表单的暴力破解原因 登录框没有验证码、没有次数限制、没有账号锁定能无限试。攻击 用 Burp Intruder 加载字典反复试看响应长度找正确密码。防御 限制频率、失败锁定、加服务器端验证码。一句话 登录没限制就等于让字典随便试。总结二前端验证码原因 验证码只在浏览器里用 JS 判断后端不检查。攻击 抓包后改掉或删掉验证码参数照样爆破用户名密码。防御 验证码必须后端生成、后端校验一次有效。一句话 前端验证码不等于安全后端不校验就等于没有。
阅读完成 · 觉得有帮助?
咨询建站