-- 身份认证 --
图形验证码
- 图形 验证码可复用 - 图形验证码绕过(中)
生成的图形验证码在认证错误/成功后未失效, 所以可以复用 - 图形 验证码回显文本内容 - 图形验证码绕过(中)
生成图形验证码的api会回显验证码的具体内容
短信/邮箱验证码
- 验证码通用 - 短信/邮箱验证码 绕过(高)
由于验证码未和 手机号/邮箱 绑定在一起, 导致发向攻击者的手机/邮箱的验证码 也可用于其它账户的验证码验证 - 验证码未设置最大错误次数 且 短/简单 - 验证码爆破 - 短信/邮箱验证码 绕过(高)
由于验证码验证时未设置最大错误次数, 且验证码简单(如四位数字验证码), 所以可以爆破来猜解验证码 - 短信/邮箱验证码回显 - 短信/邮箱验证码 绕过(高)
申请短信验证码的api会回显短信验证码的具体值, 导致可以绕过 - 验证码发送无CD - 短信/邮箱验证码 轰炸添加字符绕过:
利用 空格 @ +86 逗号 进行绕过 可以任意连续发送短信, 没有cd, 可以进行短信轰炸(每分钟15/30条以上为漏洞) - 短信/邮箱验证码多重发送:
可以同时选择多个验证码发送目标, 导致可以通过其中一个手机号/邮箱获取验证码来注册另一个手机号/邮箱的账号 phone=13888888888,phone=13999999999 phone=13888888888&phone=13999999999 phone=13888888888,13999999999 phone=13888888888&13999999999
登录框
漏洞
- 空密码登录(高)
由于密码校验存在漏洞, 可以通过空密码/0来进行登录 - 图形验证码绕过 - 任意密码爆破(低)
- 先验证账号密码 再验证图形验证码 - 任意密码爆破(低)
- 未设置最大错误次数 - 任意密码爆破(低)
- 设置最大错误次数- 封禁针对用户名而非ip - 任意用户封禁(中)
设置了最大错误次数,但封禁针对的是登录的用户名,导致攻击者可以通过故意错误导致指定用户无法登录 - 账号存在与否对应的 登录响应不同(且未设置最大错误次数) - 枚举账号(低)
由于响应不同, 导致可以判断哪些账号存在, 哪些不存在
如账户存在时显示 密码错误, 账号不存在时显示 账号不存在 - 用户设置弱密码 - 弱口令爆破(高)
管理员/用户的账号密码简单, 可以进行爆破登录 - 站点其它地方泄露员工信息 - 社工字典爆破(中)
通过收集 资产相关人士的 信息(邮箱/手机号等),
对 用户名/密码 进行猜测/社工字典爆破 - 会话标识登录后未更新 - 会话固定攻击(低)
会话标识在登录后未更新, 而是更新会话标识对应的权限, 导致可以通过让受害者使用攻击者给予的会话标识来登录, 从而使用相同会话标识来 获取受害者权限 - 用户界面未授权 - 前端验证绕过(中)
验证机制在前端, 从而可以通过修改 登录响应中的success标志位, 绕过前端的验证机制, 转入用户界面
风险
- 密码通过GET参数传输:
密码通过GET参数传输, 会被记录在日志中 且存在中间人攻击的风险 - 明文密码传输:
密码进行明文传输, 有中间人攻击的风险
注册框
- 账号存在与否对应的 注册响应不同 - 枚举账号(低)
由于响应不同, 导致可以判断哪些账号存在, 哪些不存在如账户存在时显示 账号已存在 - 短信/邮箱 验证码绕过 - 任意用户注册(中) 、
由于验证码可以绕过导致可以注册任意邮箱/手机号的账户 - 已存在用户可再注册
由于注册时没有对用户进行存在与否的判断, 导致可以注册已存在用户的账号, 从而覆盖/顶替原用户
忘记密码
- 账号存在与否对应的 忘记密码响应不同 - 枚举账号(低)
由于响应不同, 导致可以判断哪些账号存在, 哪些不存在
如账号不存在时, 会显示账号不存在 - 短信/邮箱 验证码绕过 - 任意账户密码重置(高)
认证存在 短信/邮箱验证码回显 短信/邮箱验证码爆破 的漏洞, 导致可以任意重置 - 短信/邮箱 验证通过的标识通用 - 短信/邮箱验证码绕过(高)
有些站点是先验证短信/邮箱, 验证通过后返回通过标识(会话/key/认证头), 而这个标识未与先前验证的短信/邮箱绑定时, 可用这个标识重置其它账户的密码
1
1
1
2RfUECCz
1
1
1
1
1
1
1
1
1
1