MetaCTF - Physics Notes Writeup¶
题目信息¶
- 比赛: MetaCTF
- 题目: Physics Notes
- 类别: Crypto
- 难度: 简单
- 附件/URL:
notes.txt(根据题目附件内容整理) - 附件链接: 下载附件 · 仓库位置
- Flag格式:
DawgCTF{...} - 状态: 已解
Flag¶
DawgCTF{therm0dyn4mic5sucks!}
解题过程¶
1. 初始侦察/文件识别¶
- 附件是一大段看似正常的热力学/理想气体学习笔记,表面上没有明显的加密参数、密文块或编码串。
- 先按题意优先尝试
security-hubMCP: ctf_detect把内容误判成了solfege/rsa_genericctf_solve也没有直接恢复出 Flag- 这说明它并不是一道标准的 RSA、古典密码或多层编码题,更像是藏在文本结构中的信息提取题。
2. 关键突破点一¶
- 仔细观察文本可以发现:
- 每一行的首字符和末字符都比较“刻意”
- 前几行的首尾字符拼起来很像 Flag 头
- 对前几行尝试“每行取首字符和末字符”:
| 行号 | 首字符 | 末字符 | 提取结果 |
|---|---|---|---|
| 1 | D |
a |
Da |
| 2 | w |
g |
wg |
| 3 | C |
T |
CT |
| 4 | F |
{ |
F{ |
- 直接拼接可得:
DawgCTF{
- 到这里基本可以确认,隐藏方式就是按行抽取首尾字符。
3. 关键突破点二¶
- 对前 14 行继续执行同样的规则:
line[0] + line[-1] - 第 15 行内容为:
}]\d\wa\dT
- 这一行如果继续取首尾字符会得到
}T,明显多出一个无关字符。 - 因此前 14 行取“首+尾”,第 15 行只取首字符
}作为闭合符号。
完整提取结果如下:
| 行号 | 提取 |
|---|---|
| 1 | Da |
| 2 | wg |
| 3 | CT |
| 4 | F{ |
| 5 | th |
| 6 | er |
| 7 | m0 |
| 8 | dy |
| 9 | n4 |
| 10 | mi |
| 11 | c5 |
| 12 | su |
| 13 | ck |
| 14 | s! |
| 15 | } |
拼接得到:
DawgCTF{therm0dyn4mic5sucks!}
4. 获取 Flag¶
- 最终隐藏信息即为:
DawgCTF{therm0dyn4mic5sucks!}
攻击链/解题流程总结¶
阅读伪装成物理笔记的文本 → 先尝试 security-hub 自动检测/自动求解 → 发现不是标准密码题 → 观察每行首尾字符 → 前 14 行取“首+尾”、第 15 行取“首” → 拼接得到 Flag
漏洞分析 / 机制分析¶
根因¶
- 本题并非传统密码学漏洞,而是文本隐写 / 结构化藏字。
- 出题者利用大量正常的物理公式作为掩护,将真正信息埋入每一行的边界字符中。
影响¶
- 如果只盯着公式内容本身,会被误导去分析热力学符号、正则片段、幂运算或伪 RSA 线索。
- 一旦识别出“按行取边界字符”的模式,Flag 可以在极短时间内恢复。
修复建议(适用于漏洞类题目)¶
- 本题为 CTF 题目,不涉及真实系统漏洞修复。
- 若在真实场景中需要检测类似隐写,应增加:
- 按行首尾字符统计
- 可疑文本结构分析
- 自动化 acrostic / telestich / 边界字符提取检查
知识点¶
- 文本隐写(Text Steganography)
- Acrostic / Telestich / 边界字符提取
- 自动化工具误判后的人工结构分析
使用的工具¶
- Security Hub MCP —
ctf_detect/ctf_solve用于快速排除常规密码学题型 - Python — 本地验证首尾字符提取逻辑
脚本归档¶
- Go:
MetaCTF_Physics_Notes.go - Python:
MetaCTF_Physics_Notes.py - 说明:脚本用于复现首尾字符提取过程
命令行提取关键数据(无 GUI)¶
# Python 版本复现
python CTF_Writeups/scripts_python/MetaCTF_Physics_Notes.py
# Go 版本复现
go run CTF_Writeups/scripts_go/MetaCTF_Physics_Notes.go
推荐工具与优化解题流程¶
这类题不一定真的是“密码算法题”,有时更接近文本隐写与模式识别。
工具对比总结¶
| 工具 | 适用阶段 | 本题耗时 | 优点 | 缺点 |
|---|---|---|---|---|
| Security Hub MCP | 初筛 | 秒级 | 能快速排除常见密码学方向 | 面对文本隐写容易误判 |
| 手工观察 | 模式发现 | 分钟级 | 对结构异常非常敏感 | 依赖经验 |
| Python/Go 脚本 | 结果复现 | 秒级 | 可验证、可归档 | 需要先发现规律 |
推荐流程¶
推荐流程:先用 MCP 快速判断是否为常规密码题 → 若无结果则检查行结构、首字母、尾字母、特殊符号分布 → 写一个最小脚本复现 → 输出 Flag。
工具 A(推荐首选)¶
- 安装:启用
security-hubMCP - 详细步骤:
- 使用
ctf_detect判断是否为 RSA / 古典密码 / 编码类题 - 若输出和题面特征明显不匹配,则转向人工结构分析
- 检查首字母、末字母、标点、固定列等文本隐写特征
- 优势:能先快速缩小搜索范围
工具 B(可选)¶
- 安装:Python 3 或 Go 1.20+
- 详细步骤:
- 将文本按行切分
- 对前 14 行提取首尾字符
- 对第 15 行仅取首字符并拼接
- 优势:复现简单,便于写入仓库长期保存