TRX CTF 2025 WEB题目分析
字数 1715 2025-08-29 08:30:24

TRX CTF 2025 WEB题目解析与利用技术教学

1. Online Python Editor题目解析

1.1 题目概述

这是一个基于Python语法检查的Web应用,用户在前端输入Python代码,后端使用ast.parse进行语法分析,错误时调用traceback.format_exc()输出错误信息。

1.2 关键文件分析

  • app.py: 主应用逻辑
  • secret.py: 包含flag的文件
  • index.html: 前端页面

1.3 漏洞原理

  1. 后端使用ast.parse解析用户输入的Python代码
  2. 当代码有语法错误时,会调用traceback.format_exc()显示错误
  3. 关键点:traceback.format_exc()会显示错误发生的文件名和行号内容
  4. secret.py中的flag位于第6行

1.4 利用方法

构造一个特殊的输入,使:

  • 错误发生在secret.py的第6行
  • 通过错误信息泄露flag

具体payload:

\n\n\n\n\n:

解释:

  • 5个换行符(\n)使错误定位到第6行
  • :是一个无效语法,触发语法错误

1.5 防御建议

  • 限制错误信息输出,不显示文件内容
  • 对用户输入进行更严格的过滤
  • 使用自定义错误处理而非traceback.format_exc()

2. Baby Sandbox题目解析

2.1 题目概述

一个使用Shadow DOM技术隐藏flag的Web应用,需要通过XSS等技术绕过限制获取flag。

2.2 关键技术点

  1. Shadow DOM: 将flag封装在隔离的DOM中,常规DOM操作无法访问
    shadow.appendChild(flagElement);
    
  2. CSP策略:
    • script-src: unsafe-inline - 允许内联JavaScript
    • default-src: none - 阻止加载外部资源
  3. Sandbox限制:
    • 限制了弹出新窗口

2.3 漏洞利用

  1. Shadow DOM突破:

  2. CSP绕过:

    • 利用unsafe-inline执行内联脚本
    • 通过top.document.body写入内容
  3. Sandbox绕过:

2.4 完整利用流程

  1. 构造XSS payload
  2. 使用window.find()定位flag
  3. 通过top.document.body将flag外带
  4. 注意payload需要进行hex编码

3. zStego题目解析

3.1 题目概述

一个文件上传和扫描功能,需要伪造特定文件结构来读取flag。

3.2 漏洞原理

  1. 应用使用file_get_content读取上传文件
  2. 可以构造特殊文件结构欺骗系统
  3. 通过软链接使系统读取非预期文件

3.3 利用方法

  1. 伪造一个docx文件
  2. 在文件中设置软链接,使media指向根目录
  3. 系统会读取并解码flag.txt
  4. 通过文件内容获取flag

3.4 防御建议

  • 验证上传文件的真实结构
  • 限制文件读取范围
  • 禁用符号链接功能

4. 总结与学习要点

4.1 关键学习点

  1. 错误处理信息泄露:

    • 了解traceback.format_exc()的安全风险
    • 掌握通过语法错误定位特定文件行的技术
  2. Shadow DOM安全:

    • 理解Shadow DOM的隔离机制
    • 掌握突破Shadow DOM的技术
    • 了解window.find()的特殊用途
  3. CSP与Sandbox绕过:

    • 理解各种CSP指令的安全含义
    • 掌握在严格限制下的代码执行技术
    • 了解iframe沙箱绕过方法
  4. 文件结构欺骗:

    • 理解文件格式解析的潜在风险
    • 掌握构造特殊文件结构的技术
    • 了解符号链接在攻击中的应用

4.2 进阶研究方向

  1. Python AST解析的更多安全问题
  2. Web Components安全模型深入研究
  3. 复杂CSP策略的绕过技术
  4. 文件格式解析漏洞的挖掘方法

通过这三个题目的分析,我们学习了多种Web安全技术和绕过方法,这些知识对于现代Web应用安全测试具有重要意义。

TRX CTF 2025 WEB题目解析与利用技术教学 1. Online Python Editor题目解析 1.1 题目概述 这是一个基于Python语法检查的Web应用,用户在前端输入Python代码,后端使用 ast.parse 进行语法分析,错误时调用 traceback.format_exc() 输出错误信息。 1.2 关键文件分析 app.py : 主应用逻辑 secret.py : 包含flag的文件 index.html : 前端页面 1.3 漏洞原理 后端使用 ast.parse 解析用户输入的Python代码 当代码有语法错误时,会调用 traceback.format_exc() 显示错误 关键点: traceback.format_exc() 会显示错误发生的文件名和行号内容 secret.py 中的flag位于第6行 1.4 利用方法 构造一个特殊的输入,使: 错误发生在 secret.py 的第6行 通过错误信息泄露flag 具体payload : 解释: 5个换行符( \n )使错误定位到第6行 : 是一个无效语法,触发语法错误 1.5 防御建议 限制错误信息输出,不显示文件内容 对用户输入进行更严格的过滤 使用自定义错误处理而非 traceback.format_exc() 2. Baby Sandbox题目解析 2.1 题目概述 一个使用Shadow DOM技术隐藏flag的Web应用,需要通过XSS等技术绕过限制获取flag。 2.2 关键技术点 Shadow DOM : 将flag封装在隔离的DOM中,常规DOM操作无法访问 CSP策略 : script-src: unsafe-inline - 允许内联JavaScript default-src: none - 阻止加载外部资源 Sandbox限制 : 限制了弹出新窗口 2.3 漏洞利用 Shadow DOM突破 : 使用 window.find() 方法可以搜索Shadow DOM中的内容 参考: Shadow DOM攻击技术 CSP绕过 : 利用 unsafe-inline 执行内联脚本 通过 top.document.body 写入内容 Sandbox绕过 : 参考: iframe和window.open绕过技术 2.4 完整利用流程 构造XSS payload 使用 window.find() 定位flag 通过 top.document.body 将flag外带 注意payload需要进行hex编码 3. zStego题目解析 3.1 题目概述 一个文件上传和扫描功能,需要伪造特定文件结构来读取flag。 3.2 漏洞原理 应用使用 file_get_content 读取上传文件 可以构造特殊文件结构欺骗系统 通过软链接使系统读取非预期文件 3.3 利用方法 伪造一个docx文件 在文件中设置软链接,使media指向根目录 系统会读取并解码flag.txt 通过文件内容获取flag 3.4 防御建议 验证上传文件的真实结构 限制文件读取范围 禁用符号链接功能 4. 总结与学习要点 4.1 关键学习点 错误处理信息泄露 : 了解 traceback.format_exc() 的安全风险 掌握通过语法错误定位特定文件行的技术 Shadow DOM安全 : 理解Shadow DOM的隔离机制 掌握突破Shadow DOM的技术 了解 window.find() 的特殊用途 CSP与Sandbox绕过 : 理解各种CSP指令的安全含义 掌握在严格限制下的代码执行技术 了解iframe沙箱绕过方法 文件结构欺骗 : 理解文件格式解析的潜在风险 掌握构造特殊文件结构的技术 了解符号链接在攻击中的应用 4.2 进阶研究方向 Python AST解析的更多安全问题 Web Components安全模型深入研究 复杂CSP策略的绕过技术 文件格式解析漏洞的挖掘方法 通过这三个题目的分析,我们学习了多种Web安全技术和绕过方法,这些知识对于现代Web应用安全测试具有重要意义。