某直播平台后台接口未授权导致任意用户密码可重置
本文最后更新于 417 天前,其中的信息可能已经有所发展或是发生改变。

目标系统: https://lm.xxxxxx.com/
测试日期: 2024/02/23
测试人员:
说明:

  1. 本系统为生产环境,允许互联网访问
  2. 本次测试主要针对登录认证相关模块。

测试结果

漏洞汇总:

威胁等级 漏洞数量 漏洞名称
高危 1 任意密码重置

漏洞详情:

漏洞类型 漏洞名称 漏洞位置 测试结果
越权类 任意用户登录 https://lm.xxxxxxxxx.com/login Failed

测试过程

点击忘记密码,发现需要账号与邮箱

file

收集企业信息,得到企业邮箱后缀(脱敏打码)

file

输入任意用户名与匹配的邮箱,爆破

常见的用户企业邮箱格式:

  1. 用户名全拼@邮箱后缀
  2. 用户名全拼+序号@邮箱后缀
  3. 用户名全拼+部门简写@邮箱后缀

file

根据相应长度分析,得到 2 个账号
且根据回显信息得知,邮箱验证码已正常发送,回显如下(图有点模糊)

file

response 包含一个 data 字符串,但用意暂时未知。

暴力破解邮箱验证码

file

不确定是否存在超时机制,暂认定理论可行,但耗时较久,切换至后台运行,继续分析

提交验证码的请求包中包含一个参数 adminId,与之前返回的 data 相同,猜测是用户唯一标识。

  • 疑似上一个请求中返回的 data
  • 确认。这里的 adminId 就是上个请求中返回的 data 字段
    file

    审计 JS 代码

    修改密码接口 validAdminInfoSubmit,疑似无身份验证
    url 为:admin/validAdminInfoSubmit
    参数为:password、confirmpassword、adminid、type

file

file

adminid 已知
type 固定为 update
只需要设置两次新密码

构造数据包,发送请求

file

回显:密码强度不够。
尝试修改密码强度,重新发送。

file

回显:ok

登录系统

file

登录成功

file

风险评估

造成此次风险的主要原因为:账号可爆破接口未授权访问
进入系统后可获取并操作直播课程、主播信息、学员信息等关键信息,风险评估为高危,需紧急修复。

改进建议

  1. 找回密码处模糊化回显信息,如:系统中统一回显 true,具体是否真实返回以是否收到邮件为主;
  2. 登录功能、找回密码处的“发送验证码”功能及“提交验证码”功能需限制调用频率,建议调用 3 次以上增加验证码校验;
  3. 获取邮箱验证码时,禁止回显 adminId 等唯一标识符(如满足 4、5,此条非必须);
  4. 修改密码接口采用合理的身份认证(如 cookie、session 等),禁止单独使用用户唯一标识符(adminId)校验;
  5. 重置密码功能使用双因子认证(如输入短信验证码、邮箱验证码等);
  6. 其余所有非公开接口,统一按照上述第 4 条自查并修复认证机制。
学海无涯,回头是岸。 --- hola
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇