作者:TedeAtom@Timeline Sec
本文字数:534
阅读时长:2~3min
声明:仅供学习参考使用,请勿用作违法用途,否则后果自负
0x01 简介
APISIX 是一个高性能、可扩展的微服务 API 网关,基于 nginx(openresty)和 Lua 实现功能,借鉴了 Kong 的思路,将 Kong 底层的关系型数据库(Postgres)替换成了NoSQL 型的 etcd。Apache APISIX Dashboard 设计的目的是让用户通过前端界面尽可能轻松地操作 Apache APISIX。
0x02 漏洞概述
Apache APISIX Dashboard 有些接口直接使用了 gin 框架导致未授权访问进而可导致远程代码执行,攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行远程代码执行攻击,获取服务器控制权限。
0x03 影响版本
2.7 ≤ Apache APISIX Dashboard < 2.10.1
0x04 环境搭建
拉取官方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
0x05 漏洞复现
https://github.com/wuppp/apisix_dashboard_rce 下载利用脚本,直接运行
请求脚本返回的url,注意,这里端口号需要从9000改为9080
加个header
cmd: ifconfig
原理可参考官方API文档
https://github.com/apache/apisix/blob/master/docs/zh/latest/architecture-design/script.md
对上传文件crc32校验↓
0x06 修复方式
升级至Apache Apisix Dashboard至最新版本
参考链接:
https://github.com/wuppp/apisix_dashboard_rce
https://github.com/apache/apisix/blob/master/docs/zh/latest/architecture-design/script.md