登录页面渗透测试总结
字数 1270 2025-08-19 12:40:34
登录页面渗透测试技术总结
1. 测试准备
- Burp Suite配置
- 开启Burp Suite拦截所有网页流量
- 启用自动扫描功能
- 安装并配置常用插件(如Hae插件可探测RememberMe关键字,用于识别Shiro框架)
2. 前端安全测试
- 敏感信息泄露检查
- 打开开发者工具(F12)检查JS文件
- 查找硬编码的AK/SK密钥(特别是OSS存储桶凭证)
- 检查前端源码中的注释、调试信息等
3. 账号密码登录测试
-
错误提示分析
- 输入错误账号:观察是否返回"账号不存在"等提示
- 输入正确账号+错误密码:观察是否返回"密码错误"提示
- 利用这些信息进行账号枚举攻击
-
验证机制测试
- 检查是否存在验证码
- 验证码是否可绕过(如重复使用、空值、简单识别等)
- 测试错误次数限制机制
-
密码爆破测试
- 无验证码/限制时可尝试爆破
- 使用常见弱密码字典测试
-
SQL注入测试
- 拦截登录数据包
- 测试账号和密码参数是否存在SQL注入
- 尝试经典注入payload如
' OR 1=1 --
4. 短信验证码登录测试
-
短信轰炸测试
- 拦截发送验证码请求
- 在Repeater模块重放数据包
- 测试是否限制发送频率
- 尝试手机号变形(如添加+86、*、|等特殊字符)
-
验证码逻辑漏洞
- 测试多个手机号接收同一验证码
- 尝试在手机号参数中添加额外手机号(如
&&1232***7878) - 检查验证码是否可预测或重复使用
5. 密码找回功能测试
-
信息泄露测试
- 检查找回密码流程
- 拦截相关API请求,分析响应数据
- 测试是否返回敏感信息(如完整账号信息、密码等)
-
逻辑漏洞测试
- 测试验证码是否可绕过
- 检查是否可篡改接收验证码的手机号/邮箱
- 测试是否可越权修改他人密码
6. 框架特定测试
-
Shiro框架测试
- 检测RememberMe功能
- 测试Shiro反序列化漏洞
- 尝试使用已知密钥或爆破密钥
-
其他框架测试
- 根据识别结果测试框架特定漏洞
- 如Spring框架测试SpEL注入等
7. 插件辅助测试
- 推荐插件
- Hae:关键字探测
- Autorize:授权测试
- Turbo Intruder:高效爆破
- Logger++:日志分析
8. 法律与道德声明
-
测试规范
- 仅对授权目标进行测试
- 遵守《中华人民共和国网络安全法》
- 测试前获取书面授权
-
免责声明
- 技术信息仅供参考
- 需自行评估适用性
- 注意技术时效性
9. 漏洞利用示例
-
案例1:短信验证码共用
- 通过添加额外手机号参数,使两个手机号接收同一验证码
- 实现账号接管
-
案例2:密码找回信息泄露
- 找回密码接口返回完整用户信息(包括密码)
- 虽然不显示在前端,但可通过Burp拦截获取
-
案例3:无验证码爆破
- 通过账号枚举获取有效账号
- 使用弱密码字典爆破获取访问权限
10. 防御建议
-
通用防御措施
- 统一错误提示(如"账号或密码错误")
- 强制使用复杂验证码
- 实施错误次数限制和账户锁定机制
-
特定防御
- 短信验证码:频率限制、有效期限制
- 密码找回:多因素验证、安全问答
- 敏感操作:二次确认机制
-
开发规范
- 避免硬编码敏感信息
- 使用预编译语句防止SQL注入
- 定期安全审计和渗透测试