CVE-2021-37580 Apache ShenYu 身份验证绕过漏洞复现
漏洞简介
Apache ShenYu 是一个异步的,高性能的,跨语言的,响应式的 API 网关,Apache ShenYu 功能十分强大且易于扩展,支持各种语言的 http 协议,同时支持 Dubbo、 Spring Cloud、 gRPC、 Motan、 Sofa、 Tars 等协议。2021 年 11 月,Apache ShenYu 被爆出存在身份认证绕过漏洞,攻击者可以通过该漏洞绕过 JWT(JSON Web Token)安全认证机制,直接进入系统后台。
影响版本
该漏洞影响 Apache ShenYu 的以下版本:
Apache ShenYu 2.3.0
Apache ShenYu 2.4.0
环境搭建
首先使用 docker 搭建存在漏洞的 Apache ShenYu 2.4.0 环境
使用 sudo docker pull apache/shenyu-admin:2.4.0 命令拉取容器
使用命令 sudo docker run --rm -d apache/shenyu-admin:2.4.0 开启 Apache ShenYu 容器
运行 docker ps 命令查看容器是否正常启动
此时容器的映射端口时存在问题的,需要运行下面的命令重新映射端口并重启容器
浏览器访问 http://ip:9095/出现如下界面则证明 Apache ShenYu 2.4.0 环境搭建成功
漏洞复现
首先使用默认初始账号密码 admin/123456 登录进入后台
System Manager->User 新建一个用户,角色为 default
使用新建的账号进行登录
此时登录界面会提示用户角色为配置权限错误,无法进入后台
抓包发现该账号的登录包已经生成了 jwt token
登录接口为:
接下来用上述不具备任何权限的账号的 jwt token 去访问管理员才能访问的接口
发现访问成功,获取到了所有的账号信息,漏洞复现成功
修复方案
将 Apache ShenYu 升级到最新版本。
评论