漏洞复现 - Apache APISIX 默认 Token RCE 漏洞 (CVE-2020-13945)
本文最后更新于 2025年7月14日 下午
🗂️ 简介
Apache APISIX 是一款云原生高性能 API 网关和微服务代理,广泛应用于企业网关、API 管理、负载均衡、动态路由等场景。
CVE-2020-13945 漏洞的核心点在于:
- 默认情况下,APISIX 管理端(Admin API)使用默认配置文件中的 Token(
edd1c9f034335f136f87ad84b625c8f1
)作为管理员认证凭证。 - 如果用户未更改 Token,攻击者可直接使用该默认 Token 访问管理 API。
- 管理 API 提供了通过
script
参数注入 Lua 脚本的功能,攻击者可插入恶意 Lua 代码,执行任意系统命令,进而远程控制服务器。
🔥 危害极大:未授权 RCE,拿下整个网关后可进行流量劫持、横向移动等攻击。
⚙️ 漏洞环境搭建
这里使用 Vulhub 快速拉起测试环境:
1 |
|
环境启动后,访问:
可看到默认 404 页面,说明服务已启动成功。
🚩 漏洞复现
📌 1. 添加恶意路由
使用默认管理员 Token,调用 Admin API 新增一个带有恶意 Lua 脚本的路由:
1 |
|
如图所示:
📌 2. 访问恶意路由触发 RCE
此时访问:
1 |
|
即可看到返回结果,表示命令执行成功:
此时可执行任意系统命令,如 id
、whoami
、uname -a
、curl
等。
🕵️♂️ 后续渗透思路
- 📌 获取权限:可进一步执行反弹 Shell 命令,获取持久交互式 Shell。
- 📌 横向渗透:查看 APISIX 所部署的宿主机,获取更多 API 配置或凭证信息,尝试在内网横向。
- 📌 流量劫持:在网关层可注入恶意脚本修改流量、劫持请求、记录敏感数据。
- 📌 后门植入:保留恶意路由或修改网关插件,实现长时间驻留。
🛡️ 修复与缓解
✅ 官方建议:
- 修改默认 Token:在
config.yaml
中更改admin_key
,使用强随机值,并重启服务。 - 最小化暴露:使用防火墙或代理,仅允许可信 IP 访问 Admin API(默认监听在
127.0.0.1
,不要暴露在公网)。 - 及时更新:升级至官方已修复版本,避免脚本注入风险。
- 访问审计:定期审计路由配置及日志,排查可疑脚本或未知路由。
⚠️ 参考链接
🚨 总结:这是一个典型的配置失误引发的远程命令执行案例,提醒大家部署生产环境务必修改默认凭证!