TryHackMe Infinity Pool 通关实录:从命令注入到 root 的两次提权链
来源:dev.to — 2026-08-07 — 11 min
📋 概述
对目标机器侦察发现一个由 Gunicorn 托管的「Byte Lotus」酒店站点,robots.txt 禁用了 /internal/ 与 /status 两个路径。/status 页面暴露内部员工工具,它会向 /internal/netcheck POST 一个 host 参数,而该参数未经过滤地传给 ping——由此形成 OS 命令注入,以 web 用户身份拿到初始立足点与 user flag。随后发现仅内部可达的 Watchtower 运维控制台(127.0.0.1:3000)泄漏了被明确标注为「未轮换默认模板凭据」的 FreePBX UCP 账号。通过 SSH 端口转发登录 UCP 面板,添加语音信箱小部件时暴露了泄漏进 caller-ID 字段的 Automation Key 令牌,该密钥可认证到以 root 运行的内部自动化服务(127.0.0.1:9000),其 /jobs/export 端点用未净化的 report 参数拼 shell 命令,构成第二次命令注入并以 root 身份拿到 root flag。
🔑 核心要点
- robots.txt 泄露 /internal/ 与 /status 两个隐藏路径,/status 暴露内部员工工具。
- /internal/netcheck 把 host 参数未过滤地传给 ping,形成首次 OS 命令注入并拿下 web 用户立足点。
- Watchtower 控制台(127.0.0.1:3000)泄漏未轮换默认模板凭据的 FreePBX UCP 账号。
- UCP 语音信箱小部件的 caller-ID 字段暴露 Automation Key,认证到 root 运行的自动化服务。
- /jobs/export 用未净化的 report 参数拼 shell 命令,构成第二次命令注入并获得 root flag。
💡 金句
./static/app.js 里的一行开发者注释,把隐藏的 /status 内部端点直接指到了攻击者面前。
👍 0
👎 0
← 返回 dev.to 首页