公众号:掌控安全EDU 分享更多技术文章,欢迎关注一起探讨学习
目录
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
原文链接:https://mp.weixin.qq.com/s/N2jfGxlDDX9lVF9fD-unYA