如何面对登录页面
字数 1281 2025-08-11 17:40:17
登录页面渗透测试全面指南
前言
登录页面是渗透测试和攻防演练中最常见的场景之一。本文系统总结了针对登录页面的各种测试方法和思路,帮助安全人员全面评估登录页面的安全性。
1. 爆破类测试
1.1 明文传输/不安全加密算法
- 检查登录请求是否明文传输用户名密码
- 分析加密算法是否可逆或存在缺陷
- 这些漏洞为暴力破解创造了条件
1.2 用户名枚举
- 通过不同错误提示判断用户名是否存在
- 常见提示差异:
- "用户名或密码错误" vs "用户名/密码错误"
- "用户名不存在"(较少见)
1.3 验证码绕过
- 不刷新验证码:验证码不变,可重复使用
- 万能验证码:如8888、0000等开发者测试用码
- 验证码回显:前端或响应包中包含验证码
- 验证码识别:使用工具自动识别(推荐BP插件:NEW_xp_CAPTCHA)
1.4 弱口令爆破
- 使用社工字典提高成功率(推荐工具:genpass)
- 结合用户名枚举结果针对性爆破
2. SQL注入测试
2.1 万能密码
- 测试经典万能密码:
or 1=1-- 'or 1=1-- a'or' 1=1-- "or 1=1-- - 可直接加入用户名字典一并测试
2.2 登录框SQL注入
- 测试特殊字符:
'、`、"、# - 可能存在过滤不全的情况
3. 逻辑漏洞测试
3.1 任意密码重置
- 常见于两步验证系统:
- 先验证身份,后重置密码
- 验证码与手机号未绑定
- 修改Response状态值可能绕过验证
3.2 任意账号注册
- 原理类似任意密码重置
- 验证码可爆破或未绑定手机号
3.3 短信/邮箱轰炸
- 未限制发送频率和数量
- 绕过技巧:添加空格、+86等前缀
4. 框架漏洞测试
4.1 反序列化漏洞
- Shiro/Log4j/Fastjson:使用BP插件扫描
- BpScan:Log4j/Fastjson
- BurpShiroPassiveScan:Shiro
4.2 Apereo-CAS反序列化
- 4.1.7版本前存在默认密钥问题
- 使用工具生成payload替换execution参数
4.3 Shiro权限绕过
- 在路由中拼接
/;可能绕过验证 - 示例:
/;/test/admin/page绕过/test/admin/page
4.4 CMS漏洞
5. JavaScript相关测试
5.1 禁用JavaScript
- 部分站点依赖JS进行跳转验证
- 禁用JS可能直接访问受限页面
5.2 分析JS代码
- 查找泄露的敏感信息(用户名、密码等)
- 推荐工具:FindSomething插件
6. 未授权访问测试
6.1 目录扫描
- 使用dirsearch等工具扫描
- 查找无需认证的页面和接口
6.2 API文档访问
- 前后端分离系统可能暴露API文档
- 根据文档构造请求测试
7. JWT相关测试
7.1 JWT密钥爆破
- 使用jwt_tool
- 爆破top1k/top1w常见密钥
总结
登录页面作为系统入口,隐藏着多种潜在漏洞。测试时应全面覆盖上述各个方面,特别关注爆破、注入和逻辑漏洞等高风险问题。通过系统化的测试方法,可以有效评估登录页面的安全性。