Web 渗透身份验证测试 —— Burp 用户名枚举 + 登录字典攻击实战心得

Web 渗透身份验证测试 —— Burp 用户名枚举 + 登录字典攻击实战心得
Web 渗透身份验证测试 —— Burp 用户名枚举 登录字典攻击实战心得前言本次通过完成OWASP WebGoat、WackoPicko靶场的两项实战任务Burp Suite Intruder模块完成用户名枚举、Cluster Bomb模式双字段字典爆破登录复现 Web 身份验证环节的前置信息收集、账号密码暴力破解流程。一、整体实验思路整套身份验证渗透分为两大阶段逻辑层层递进也是渗透测试的标准执行流程1. 信息搜集阶段用户名枚举不可直接盲目进行账号密码爆破首要目标是从目标页面提取真实有效的用户名。利用密码重置页面的响应差异特性输入无效用户名会固定返回Not a valid username而有效账号的返回报文、响应长度会出现明显区别。我们使用 Burp 代理抓包将请求发送至 Intruder 模块加载用户名字典批量发起请求筛选响应异常的结果锁定存活账号为后续密码爆破缩小攻击范围。图1 错误用户名提交图2 响应移交intruder2. 漏洞利用阶段双参数字典攻击获取有效用户名列表后针对登录接口实施字典攻击。登录表单包含用户名、密码两个可控参数选用Intruder的Cluster bomb集群炸弹模式分别加载用户名字典、高频弱口令字典完成账号与密码的两两组合遍历发包。依靠HTTP 状态码、响应长度、页面重定向地址三个维度判断登录结果最终破解后台管理员登录凭证。二、项目实操实现细节1用户名枚举实操要点靶机地址192.168.120.128以WebGoat密码重置页面作为测试点位核心操作步骤浏览器配置 Burp 代理默认 8080 端口通过代理抓包截取提交用户名的 POST 请求右键将请求发送至·Intruder模块捕获post请求Positions页面仅标记Username字段作为唯一攻击位攻击类型选择Sniper狙击手模式适配单字段遍历场景Payloads载荷面板加载 Kali 系统自带字典路径/usr/share/wordlists/metasploit/http_default_users.txt设置载荷切换至Options选项卡在Grep-Match规则中添加匹配字符串Not a valid username点击Start attack启动攻击最终没有匹配到该报错字符串的 Payload即为系统有效用户名本次实验成功识别admin为合法账号。2登录页面字典爆破实操要点目标为* WackoPicko* 登录页面表单核心参数为adminname、password关键配置流程抓取登录提交的POST请求将两个参数全部添加攻击标记攻击类型修改为Cluster bomb知识点区分Sniper模式多用于单个参数爆破Cluster bomb 专门适配两个参数独立字典两两组合是双字段账号密码爆破的首选模式。Payload Set1导入实验给定的用户名列表Payload Set2导入 2017 年度 TOP25 高频弱口令字典载入密码文件结果判定规则登录失败请求统一返回200状态码响应长度固定不变登录成功会返回303重定向状态码响应长度变短响应头携带后台首页Location跳转路径以及会话 Cookie本次成功破解账号密码组合admin/admin。三、工具技巧与避坑总结字典选用技巧Kali Linux 内置大量渗透字典统一存放路径为/usr/share/wordlists日常实战常用metasploit默认账号字典、rockyou.txt海量密码库rockyou 解压命令tar -xzf rockyou.tar.gz。可根据业务场景精简自定义字典能够极大缩减爆破耗时。结果判断技巧研判优先级优先查看状态码302/303重定向大概率为登录成功其次对比响应长度若长度完全一致可启用Grep匹配规则检索首页关键字、Set-Cookie 会话字段精准区分成功与失败请求。防御角度反思本次漏洞根源为页面提示信息差异化泄露、无登录失败锁定机制。对应防御方案统一账号错误提示模糊用户名是否存在添加人机验证码、对高频失败 IP 进行封禁、设置接口请求频率限制从底层抵御用户名枚举与字典爆破攻击。四、学习总结本次实验完整走完用户名搜集→密码字典爆破的身份验证完整攻击链路熟练掌握了 Burp Intruder 四大攻击模式的适用场景理解 HTTP 响应报文、状态码、响应长度在渗透结果研判中的关键作用。同时也意识到弱口令、错误提示信息泄露是 Web 身份验证模块最普遍的高危漏洞。后续我会继续学习验证码绕过、会话劫持等会话管理类进阶漏洞同时站在开发运维视角吃透配套安全加固方案做到攻防知识双向掌握。