CVE-2021-45232漏洞分析
林寒 技术文章 6257浏览 · 2022-01-05 13:40

0x00 漏洞描述

Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX Dashboard 使用户可通过前端界面操作 Apache APISIX。该漏洞的存在是由于 Manager API 中的错误。Manager API 在 gin 框架的基础上引入了 droplet 框架,所有的 API 和鉴权中间件都是基于 droplet 框架开发的。但是有些 API 直接使用了框架 gin 的接口,从而绕过身份验证。

0x01 影响版本

Apache APISIX Dashboard 2.7 - 2.10 版本

0x02 漏洞分析

根据https://nvd.nist.gov/vuln/detail/CVE-2021-45232 分析得出是两个api出的问题,造成的未授权

接着来到该项目的github开源地址,定位补丁

发现此处修复鉴权,那么跟进去看一下

首先在==http.go==删除了目录==/manager-api/internal/filter==的包导入并且删除了filter鉴权方式
跟进修复后目录==/manager-api/internal==

发现相关修复点
继续跟进修复补丁


修改了==api/internal/filter/authentication.go==与==api/internal/filter/authentication_test.go==的鉴权方式

路径==/apisix/admin/tool/version==,可得到版本信息,其他路径均会跳回登录界面

在test中发现路径==/apisix/admin/routes==,经过测试,此路径需要授权,继续跟进


在后面经过一小部分的地方其他修复后,定位到==api/internal/route.go==,此为官方描述未授权点之一

发现新增鉴权,猜测与api漏洞点相关,继续跟进
之后发现==api/test/e2enew/migrate/migrate_test.go==做了大量修改

首先对两个路径==/apisix/admin/migrate/export==和==/apisix/admin/migrate/import==新增了鉴权方式,结合官方漏洞描述,猜测这两个路径为漏洞点,继续跟进

发现在原有访问==/apisix/admin/migrate/export==此路径前新增了四个了对http获取token的鉴权方式。由此来判断请求是否含有正确的token,由此判断,该路径为漏洞点。

0x03 漏洞复现

访问

http://xxx.xxx.xxx.xxx:9000/apisix/admin/migrate/export

0x04 修复建议

1.更改默认用户名和密码
2.升级至官方最新版本:https://github.com/apache/apisix-dashboard/releases/tag/v2.10.1
3.设置白名单,限制ip访问。

0x05 参考

https://github.com/apache/apisix-dashboard
https://nvd.nist.gov/vuln/detail/CVE-2021-45232
https://apisix.apache.org/zh/blog/2021/12/28/dashboard-cve-2021-45232/

1 条评论
某人
表情
可输入 255