安全与风控
CTF 挑战入口分流:拿到题目包/远程服务/可疑文件时先做侦…
当面对一个 CTF 挑战(文件包、远程服务、可疑文件或模糊描述)且不确定从何入手时,先做首轮侦察、判定主类别,再调用对应的 ctf-* 专项技能。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
CTF 挑战入口分流:拿到题目包/远程服通用
解决思路
- 环境准备:赛前推荐用统一安装入口预装工具:`bash scripts/install_ctf_tools.sh all`;也可按需只装某一组:`bash scripts/install_ctf_tools.sh python`、`apt`、`brew`、`gems`、`go`、`manual`;完整包列表见 `scripts/install_ctf_tools.sh`。
- 按需安装:每个类别技能的 `SKILL.md` 中都有 Prerequisites 段,只列出该类别所需工具,边做边装。
- Step 0 CTFd 平台检测:若已知 CTF 平台 URL,用 `curl -s "$CTF_URL/api/v1/" | head -5` 和 `curl -s "$CTF_URL" | grep -oE '/themes/core/'` 判断是否为 CTFd;若是,向用户索要 API token(需用户在 CTFd 设置 > Access Tokens 中自行生成),然后 `export CTF_URL="https://ctf.example.com"`、`export CTF_TOKEN="ctfd_..."`,改用 API 驱动操作;调用 `/ctf-misc` 并加载其 `ctfd-navigation.md` 获取完整 API 参考与 Python 客户端类。
- Step 1 侦察:列出挑战目录并对所有文件运行 `file *`;对二进制做 `strings`、`xxd | head`、`binwalk`、`checksec` 分类;若题目提到 URL,优先抓取以获取上下文;用 `nc` 连接远程服务了解其期望输入;阅读题目描述、文件名和注释中的线索。
- Step 2 按文件类型分类:`.pcap`/`.pcapng`/`.evtx`/`.raw`/`.dd`/`.E01` → forensics;`.elf`/`.exe`/`.so`/`.dll`/无扩展名二进制 → reverse 或 pwn(若提供远程服务则多半是 pwn);`.py`/`.sage`/含数字的 `.txt` → crypto;`.apk`/`.wasm`/`.pyc` → reverse;`.safetensors`/`.pt`/`.pth`/`.bin`/`.onnx` → ai-ml;Web URL 或含 HTML/JS/PHP/模板的源码 → web;无明显内容的图片、音频、PDF → forensics(隐写)。
- Step 2 按描述关键词分类:"buffer overflow"、"ROP"、"shellcode"、"libc"、"heap" → pwn;"RSA"、"AES"、"cipher"、"encrypt"、"prime"、"modulus"、"lattice"、"LWE"、"GCM" → crypto;"XSS"、"SQL"、"injection"、"cookie"、"JWT"、"SSRF" → web;"disk image"、"memory dump"、"packet capture"、"registry"、"power trace"、"side-channel"、"spectrogram"、"audio tracks"、"MKV" → forensics;"find"、"locate"、"identify"、"who"、"where" → osint;"obfuscated"、"packed"、"C2"、"malware"、"beacon" → malware;"prompt injection"、"LoRA"、"adversarial"、"model weights"、"embedding" → ai-ml;"jail"、"sandbox"、"escape"、"encoding"、"signal"、"game"、"Nim"、"commitment"、"Gray code" → misc。
- Step 2 按服务行为分类:有交互式提示、长输入崩溃的端口 → pwn;HTTP 服务 → web;带数学/密码谜题的 netcat → crypto;带受限 shell 或 eval 的 netcat → misc(jail)。
- Step 3 调用对应类别技能:Web → `/ctf-web`(XSS、SQLi、SSTI、SSRF、JWT、文件上传、原型污染);Pwn → `/ctf-pwn`(缓冲区溢出、格式化字符串、堆、ROP、沙箱逃逸);Crypto → `/ctf-crypto`(RSA、AES、ECC、PRNG、ZKP、古典密码);Reverse → `/ctf-reverse`(二进制分析、游戏客户端、VM、混淆代码);Forensics → `/ctf-forensics`(磁盘镜像、内存转储、事件日志、隐写、网络抓包);OSINT → `/ctf-osint`(社交媒体、地理定位、DNS、公开记录);Malware → `/ctf-malware`(混淆脚本、C2 流量、PE/.NET 分析);AI/ML → `/ctf-ai-ml`(模型权重 `.safetensors`/`.pt`/`.pth`/`.bin`/`.onnx`、提示注入、LoRA 适配器、对抗样本);Misc → `/ctf-misc`(jail、编码、RF/SDR、深奥语言、约束求解);也可直接调用 `/ctf-<category>` 加载完整技能说明。
- Step 4 卡住时转向:重新审视假设(类别可能判断错,如 web 题需 crypto 伪造 JWT、forensics PCAP 中藏 pwn 利用);尝试另一个类别技能(很多题跨类别);寻找遗漏(隐藏文件、备用端口、响应头、源码注释、图片元数据);简化(若利用太复杂,检查是否有默认凭据、已知 CVE、逻辑漏洞等更简单路径);检查边界情况(off-by-one、竞态、整数溢出、编码不匹配)。
- Step 4 常见多类别组合:Forensics + Crypto(PCAP/磁盘镜像中的加密数据需解密);Web + Reverse(Web 题中的 WASM 或混淆 JS);Web + Crypto(JWT 伪造、自定义 MAC/签名方案);Reverse + Pwn(先逆向再漏洞利用);Forensics + OSINT(从转储恢复数据后通过公开来源追踪);Misc + Crypto(jail 逃逸需在约束下构造密码原语);OSINT + Stego(社交媒体帖子用 Unicode 同形字隐写,西里尔字母相似字编码比特);Web + Forensics(付费墙绕过,curl 揭示被 CSS 覆盖层隐藏的内容);Misc + Crypto + Game Theory(多阶段交互题:AES 解密 → HMAC 承诺 → 组合博弈求解 GF(256) Nim);Crypto + Geometry + Lattice(多层题:空间重建 → 子空间恢复 → LWE 求解 → AES-GCM 解密);Forensics + Signal Processing(功耗轨迹/侧信道分析需对测量数据做统计分析);Forensics + Network + Encoding(PCAP 中基于时序的编码,包间隔编码二进制数据)。
- Step 5 生成 Write-up:解题后调用 `/ctf-writeup` 生成标准化提交式 writeup——简洁、可复现,便于主办方或队友验证。
- Flag 格式:常见有 `flag{...}`、`FLAG{...}`、`CTF{...}`、`TEAM{...}`,以及自定义前缀(如 `ENO{...}`、`HTB{...}`、`picoCTF{...}`),有时是无包装的纯文本;查看题目描述或 CTF 规则确认格式。
- Flag 验证规则:若发现多个类似 flag 的字符串,先作为候选并验证再定稿;优先选择与目标产物/工作流相关的 token(而非随机元数据噪声或明显诱饵);做全语料唯一性检查,报告时附上来源文件/路径。
- Flag 搜索命令:`grep -rniE '(flag|ctf|eno|htb|pico)\{' .`;二进制/内存输出用 `strings output.bin | grep -iE '\{.*\}'`。
- 快速参考命令:侦察用 `file *`、`strings binary | grep -i flag`、`xxd binary | head -20`、`binwalk -e firmware.bin`、`checksec --file=binary`;连接用 `nc host port`、`echo -e "answer1\nanswer2" | nc host port`、`curl -v http://host:port/`;Python 利用模板 `python3 -c "from pwn import *; r = remote('host', port); r.interactive()"`。
适用边界 · 注意事项
- 当类别已经明确、可直接调用某个专项技能时,不要用本技能——它是调度与侦察入口,不是类别技术的深入参考。
- 需要基于文件系统的 agent(Claude Code 或类似)并具备 bash、Python 3 和互联网访问;不满足该环境时无法使用。
- 本技能依赖并编排其他 ctf-* 技能,缺少这些专项技能时无法完成后续深入利用。