E1gHt Timeline Sec 2023-11-09 19:31 发表于上海
0x01 简介
JumpServer开源堡垒机是一款运维安全审计系统产品,提供身份验证、授权控制、账号管 理、安全审计等功能支持,帮助企业快速构建运维安全审计能力。JumpServer开源堡垒机 通过企业版或者软硬件一体机的方式,向企业级用户交付开源增值的运维安全审计解决方 案。 0x02 漏洞概述
漏洞编号:CVE-2023-42820 漏洞的核心是随机数种子泄露导致的,未授权的攻击者可以利用该漏洞推算出没有开启多因子验证(MFA)的账号的“重置密码Token”,进而修改该账号的密码。 0x03 影响版本
受影响的版本:v2.24 - v3.6.4 0x04 环境搭建
使用vulhub中的docker搭建 - cd vulhub/jumpserver/CVE-2023-42820
- docker-compose up -d
复制代码
0x05 漏洞复现
首先,在浏览器第一个Tab中打开忘记密码页面: http://your-ip:8080/core/auth/password/forget/previewing/
此时页面上将有一个验证码
- 如果验证码中包含数字10,则请刷新验证码,因为我们使用的脚本暂时无法处理数字10
- 如果验证码中不包含数字10,则右键菜单中将该验证码在新Tab下打开
新Tab中验证码的URL类似于http://your-ip:8080/core/auth/captcha/image/f6653774c319e128842bc9072180922e5ee21819/,其中包含该验证码的key(一串sha1 hash值),也就是后面伪随机数使用的种子,记录下这个值作为seed
返回第一个Tab,刷新页面。刷新页面的目的是,不使用包含“种子”的验证码,因为这个种子将在后续步骤中使用到。
刷新页面后正确填写用户名和验证码后提交,跳转到验证码验证页面。 此时这个页面的URL类似于http://localhost:8080/core/auth/password/forgot/?token=mf3L8YDLBK21Av9fq4mUpASU6q9ernjgcuWQ,其中包含一个随机的token值,记录下这个值作为token。 使用vulhub中的脚本 https://github.com/vulhub/vulhub/blob/master/jumpserver/CVE-2023-42820/poc.py 管理员邮箱账号默认为admin@mycomany.com - python3 poc.py -t http://127.0.0.1:8080/ --email admin@mycomany.com --seed f6653774c319e128842bc9072180922e5ee21819 --token mf3L8YDLBK21Av9fq4mUpASU6q9ernjgcuWQ
复制代码
输入验证码452361,重置密码成功 成功登录 0x06 修复方式
升级到安全版本: v2版本:>= v2.28.19 v3版本:>= v3.6.5
|