跳转至

User module

0x01 漏洞描述

目前大部分应用程序都会有用户模块,比如用户登录、注册、忘记密码、修改密码、申诉等,如果后端逻辑存在缺陷将直接导致大量用户信息泄漏,甚至直接接管任意用户。

0x02 常见应用场景

2.1 注册

  • 短信验证码or邮箱验证码可爆破导致任意账号注册
  • 数据库和后端逻辑处理不一致可能导致注册覆盖
  • 万能注册码or验证码
  • 注册处用户名暴力猜解
  • 邮箱大小写、手机号前缀、账号前后使用空格/回车/换行等处理不当
  • 特殊注册地址or测试地址

2.2 登录

  • 撞库or账号密码爆破
  • 登录处用户名暴力猜解
  • 默认密码
  • 任意账号锁死
  • 账号劫持
  • 短信验证码or邮箱验证码可爆破导致任意账号登录

2.3 忘记密码

  • 忘记密码处用户名暴力猜解
  • 任意用户短信轰炸or短信接口滥用
  • 发送验证随机码至任意验证设备导致任意用户密码重置
  • 随机码可被暴力猜解导致任意用户密码重置
  • 随机校验码在返回包或者cookie中
  • 忘记密码流程前端校验导致验证绕过

2.4 修改密码

  • 越权修改任意用户密码
  • 修改密码未校验旧密码
  • 同上相关场景...

2.5 Session

  • Session机制可被猜测or爆破
  • Session伪造
  • Session泄漏
  • Session会话固定

0x03 漏洞危害

攻击者通过相关措施可直接查看、修改、添加、删除用户信息,以站内信任用户身份发起其他非法操作,甚至直接接管网站任意用户。

0x04 修复建议

  1. 严格校验当前操作与当前用户身份是否匹配;
  2. 登录、忘记密码、修改密码、注册等处建议添加图形验证码,并保证使用一次即销毁;
  3. 用户中心操作数据包建议添加包含随机码的签名,防止数据包被非法篡改;
  4. 用户中心操作建议对数据包or特殊字段进行加密等处理;