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 漏洞原理
- 后端使用
ast.parse解析用户输入的Python代码 - 当代码有语法错误时,会调用
traceback.format_exc()显示错误 - 关键点:
traceback.format_exc()会显示错误发生的文件名和行号内容 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 关键技术点
- Shadow DOM: 将flag封装在隔离的DOM中,常规DOM操作无法访问
shadow.appendChild(flagElement); - CSP策略:
script-src: unsafe-inline- 允许内联JavaScriptdefault-src: none- 阻止加载外部资源
- Sandbox限制:
- 限制了弹出新窗口
2.3 漏洞利用
-
Shadow DOM突破:
- 使用
window.find()方法可以搜索Shadow DOM中的内容 - 参考: Shadow DOM攻击技术
- 使用
-
CSP绕过:
- 利用
unsafe-inline执行内联脚本 - 通过
top.document.body写入内容
- 利用
-
Sandbox绕过:
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应用安全测试具有重要意义。