漏洞描述
在2.10.1之前的Apache APISIX Dashboard中,Manager API使用了两个框架,并在框架‘gin’的基础上引入了框架‘droplet’,所有的API和认证中间件都是基于框架‘droplet’开发的,但有些API直接使用框架‘gin’的接口,从而绕过了认证。
利用条件
漏洞原理
对一个漏洞的分析、先提出几个问题:
1. 是什么漏洞
分析思路(在gtihub上对提交的源码做分析、涉及到认证相关的代码)
点进去看修改的代码
移除了 filter包、中间件鉴权方式
修改了authentication文件,对login、version及未经认证的接口处理做了修改。
修改了authentication_test.go 做了修改,对各种状态的请求做了修改。
/apisix/admin/migrate/import
漏洞验证
通过访问 http://127.0.0.1:9000/apisix/admin/migrate/export 下载到配置文件 apisix-config.bak
漏洞利用
通过在路由列表、查看数据时、添加script字段、后跟系统命令。
最终脚本执行是在管理apache/apisix 的 9080端口的容器里
访问创建的路由 http://11.22.33.101:9080/dream 执行扩展脚本
修复建议
-
升级到最新版本(https://github.com/apache/apisix-dashboard);
-
接口添加token验证;
-
建立白名单、做ip验证。
往期· 推荐
原文始发于微信公众号(星阑科技):【技术干货】CVE-2021-45232 APISIX Dashboard 越权漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论