欢迎参加 Shadow Corp 夺旗赛 (CTF) 挑战!本次挑战将测试您在识别和利用与安全标头及 HTTP 代理行为相关的漏洞方面的技能。您的任务是绕过保护措施,并揭露隐藏在 Shadow Corp 网络应用程序中的秘密。
您发现了 Shadow Corp 的公共 Web 界面,这是一个以从事秘密网络间谍活动而臭名昭著的组织。有传言称,他们保护了一个只有内部可信人员才能访问的端点。然而,有传闻说,只要使用正确的方法,您可以欺骗系统,让其暴露这个隐藏的端点,从而揭露 Shadow Corp 的秘密。
您的任务:访问受保护的端点并获取隐藏的旗帜!
本 CTF 可以在本地运行,您需要安装并配置该 Web 应用程序。
需要 docker compose 来运行此应用程序 建议使用 curl 查询和测试端点。
克隆仓库并导航到项目目录:
cd traefik-CVE-2024-45410-poc
运行 CTF
docker compose up
您的主要目标是访问 /protected 端点并获取秘密标志。但是,您会发现除非满足某些条件,否则直接访问会被阻止。系统通过验证 X-Forwarded-Host 标头来检查可信来源。
该应用程序设计为仅允许来自 localhost (127.0.0.1) 的访问。但是,如果您仔细检查 HTTP 标头,可能会发现一种“欺骗”服务器让其认为您是可信来源的方法。请关注 HTTP 代理标头以及如何操纵它们。
您是否探索过逐跳 (hop-by-hop) 标头?代理通常使用这些标头来控制或修改转发请求的行为。通过正确操纵这些标头,您可能能够说服服务器您来自可信位置,即使事实并非如此。
Connection 标头可以改变游戏规则。如果您能引入一个系统隐式信任的标头会怎样?探索如何修改请求标头,以一种服务器可能预料不到的方式包含 X-Forwarded-Host。
示例命令(非解决方案) 以下是使用 curl 开始实验的示例:
curl -i http://localhost:5000/protected
这将显示默认情况下访问被拒绝。
在某些系统中,某些标头被视为逐跳标头,这意味着它们控制 HTTP 请求链中每个中间节点的行为。代理会剥离或修改这些标头。但是,如果您巧妙地操纵标头并指定正确的逐跳标头,您可能会找到绕过某些安全机制的方法。重点关注 Connection 标头的工作原理,以及您如何影响其他通常不会转发超过一个跳点的标头。这可以帮助您欺骗服务器,使其认为您是可信客户端。
开始思考如何调整您的请求以获得访问权限。答案在于应用程序如何处理可信主机标头。请记住,操纵标头可能是解决此 CTF 的关键。