登录页面渗透测试总结
字数 1270 2025-08-19 12:40:34

登录页面渗透测试技术总结

1. 测试准备

  1. Burp Suite配置
    • 开启Burp Suite拦截所有网页流量
    • 启用自动扫描功能
    • 安装并配置常用插件(如Hae插件可探测RememberMe关键字,用于识别Shiro框架)

2. 前端安全测试

  1. 敏感信息泄露检查
    • 打开开发者工具(F12)检查JS文件
    • 查找硬编码的AK/SK密钥(特别是OSS存储桶凭证)
    • 检查前端源码中的注释、调试信息等

3. 账号密码登录测试

  1. 错误提示分析

    • 输入错误账号:观察是否返回"账号不存在"等提示
    • 输入正确账号+错误密码:观察是否返回"密码错误"提示
    • 利用这些信息进行账号枚举攻击
  2. 验证机制测试

    • 检查是否存在验证码
    • 验证码是否可绕过(如重复使用、空值、简单识别等)
    • 测试错误次数限制机制
  3. 密码爆破测试

    • 无验证码/限制时可尝试爆破
    • 使用常见弱密码字典测试
  4. SQL注入测试

    • 拦截登录数据包
    • 测试账号和密码参数是否存在SQL注入
    • 尝试经典注入payload如' OR 1=1 --

4. 短信验证码登录测试

  1. 短信轰炸测试

    • 拦截发送验证码请求
    • 在Repeater模块重放数据包
    • 测试是否限制发送频率
    • 尝试手机号变形(如添加+86、*、|等特殊字符)
  2. 验证码逻辑漏洞

    • 测试多个手机号接收同一验证码
    • 尝试在手机号参数中添加额外手机号(如&&1232***7878
    • 检查验证码是否可预测或重复使用

5. 密码找回功能测试

  1. 信息泄露测试

    • 检查找回密码流程
    • 拦截相关API请求,分析响应数据
    • 测试是否返回敏感信息(如完整账号信息、密码等)
  2. 逻辑漏洞测试

    • 测试验证码是否可绕过
    • 检查是否可篡改接收验证码的手机号/邮箱
    • 测试是否可越权修改他人密码

6. 框架特定测试

  1. Shiro框架测试

    • 检测RememberMe功能
    • 测试Shiro反序列化漏洞
    • 尝试使用已知密钥或爆破密钥
  2. 其他框架测试

    • 根据识别结果测试框架特定漏洞
    • 如Spring框架测试SpEL注入等

7. 插件辅助测试

  1. 推荐插件
    • Hae:关键字探测
    • Autorize:授权测试
    • Turbo Intruder:高效爆破
    • Logger++:日志分析

8. 法律与道德声明

  1. 测试规范

    • 仅对授权目标进行测试
    • 遵守《中华人民共和国网络安全法》
    • 测试前获取书面授权
  2. 免责声明

    • 技术信息仅供参考
    • 需自行评估适用性
    • 注意技术时效性

9. 漏洞利用示例

  1. 案例1:短信验证码共用

    • 通过添加额外手机号参数,使两个手机号接收同一验证码
    • 实现账号接管
  2. 案例2:密码找回信息泄露

    • 找回密码接口返回完整用户信息(包括密码)
    • 虽然不显示在前端,但可通过Burp拦截获取
  3. 案例3:无验证码爆破

    • 通过账号枚举获取有效账号
    • 使用弱密码字典爆破获取访问权限

10. 防御建议

  1. 通用防御措施

    • 统一错误提示(如"账号或密码错误")
    • 强制使用复杂验证码
    • 实施错误次数限制和账户锁定机制
  2. 特定防御

    • 短信验证码:频率限制、有效期限制
    • 密码找回:多因素验证、安全问答
    • 敏感操作:二次确认机制
  3. 开发规范

    • 避免硬编码敏感信息
    • 使用预编译语句防止SQL注入
    • 定期安全审计和渗透测试
登录页面渗透测试技术总结 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注入 定期安全审计和渗透测试