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