Cyber Apocalypse CTF 2025 部分web wp
字数 1588
更新时间 2025-08-30 06:50:28

Cyber Apocalypse CTF 2025 Web题目解析与利用技术详解

目录

  1. Trial by Fire - Jinja2 SSTI利用
  2. Whispers of the Moonbeam - 命令注入与终端绕过
  3. Cyber Attack - Apache CRLF注入与SSRF
  4. Eldoria Realms - Ruby原型链污染与GRPC注入

Trial by Fire

漏洞分析

这是一个基于Jinja2模板引擎的服务器端模板注入(SSTI)漏洞。

  • 题目提供了一个简单的路由,使用Jinja2模板引擎渲染用户输入
  • 由于未对用户输入进行适当过滤,导致可以直接注入模板代码

利用方法

直接构造Jinja2的SSTI payload进行利用:

{{ config.__class__.__init__.__globals__['os'].popen('id').read() }}

防御措施

  • 对用户输入进行严格过滤
  • 使用Jinja2的沙盒环境
  • 避免直接将用户输入作为模板渲染

Whispers of the Moonbeam

非预期解

题目提供了一个类似终端的界面,包含以下命令:

  • gossip - 查看系统信息
  • observe - 查看进程信息

直接利用gossip命令查看目录,发现flag.txt文件并直接访问:

http://target/flag.txt

预期解(命令注入)

  1. 通过observe命令可以发现系统执行了Linux命令
  2. 在命令输入框中使用分号(;)进行命令注入:
; cat flag.txt;

或者:

| cat flag.txt

防御措施

  • 使用白名单验证用户输入
  • 避免直接拼接用户输入到系统命令
  • 使用安全的命令执行API

Cyber Attack

漏洞分析

题目涉及Apache服务器的CRLF注入和SSRF攻击:

  1. 提供两个攻击按钮:

    • attack-domain.py - 检查域名格式
    • attack-ip - 检查IP格式并限制为本地访问
  2. Apache配置限制:

    • 只有本地用户可以调用attack-ip路由
    • index.php中也做了相应限制

利用方法

利用Apache的CRLF注入完成SSRF攻击:

  1. 构造恶意payload利用CRLF注入:
http://target/attack-domain?url=http://127.0.0.1%0d%0aX-Forwarded-For:%20127.0.0.1%0d%0a%0d%0a
  1. 绕过本地限制,访问attack-ip路由

防御措施

  • 严格验证HTTP头
  • 禁用不必要的HTTP方法
  • 限制服务器对自身的请求

Eldoria Realms

漏洞概述

这是一个Ruby应用,涉及原型链污染和GRPC注入攻击,最终实现RCE。

污染our_url

  1. 应用路由:

    • /player - 用户信息,包含merge方法更新信息
    • /quest - 问题及其奖金
    • /store - 商店
    • /fellowship - 用户信息
    • /livedata - 更新信息
    • /advanced - 召唤Helios和连接realm功能
  2. 漏洞点:

    • merge_with调用了recursive_merge方法
    • merge-fates路由获取用户输入的JSON数据
    • 可以污染our_url属性来更改连接行为

利用SSRF请求走私GRPC packet

  1. 污染our_url后,通过connect-realm路由执行curl命令
  2. Docker环境中curl版本为7.7.0.0,可利用gopher协议攻击GRPC
  3. 目标端口:127.0.0.1:50051

go命令注入

app.go中存在不安全的命令拼接:

cmd := exec.Command("sh", "-c", "nc -zv "+ip+" "+port)

可以直接注入命令:

port = "1337; cat /flag.txt;"

完整利用步骤

  1. 污染our_url
{
  "__proto__": {
    "our_url": "gopher://127.0.0.1:50051/_<GRPC_PACKET>"
  }
}
  1. 调用connect触发漏洞
  2. 访问/flag.txt获取flag

防御措施

  • 避免使用__proto__等原型链操作
  • 严格验证用户输入的URL
  • 使用安全的命令执行方式
  • 更新curl等基础组件

总结

本次CTF题目涵盖了多种Web安全技术:

  1. 模板注入(SSTI)
  2. 命令注入
  3. CRLF注入
  4. SSRF攻击
  5. 原型链污染
  6. GRPC协议注入

每种技术都需要深入理解其原理和防御方法,在实际开发中应特别注意这些安全风险。

相似文章
相似文章
 全屏