☰
ctf-skills的solve-challenge调度器如何工作?侦察→分类路由→跨模块Pivot的5步AI解题流程拆解
2026/9/26 19:26:53 网站建设 项目流程

ctf-skills的solve-challenge调度器如何工作?侦察→分类路由→跨模块Pivot的5步AI解题流程拆解

【免费下载链接】ctf-skillsAgent skills for solving CTF challenges - web exploitation, binary pwn, crypto, reverse engineering, forensics, OSINT, and more项目地址: https://gitcode.com/gh_mirrors/ct/ctf-skills

ctf-skills 是一个面向 CTF 竞赛的 Agent 技能包,其中的solve-challenge 调度器是整套 AI 解题流程的总入口:它自动完成侦察(Recon)、分类路由,并在卡壳时触发跨模块 Pivot,把题目分发给 web、pwn、crypto 等 8 个专家技能模块。本文带你完整拆解这套"5步解题流程"如何运作,无需阅读源码也能快速上手。🎯

什么是 solve-challenge 调度器?

如果把 8 个 CTF 分类技能比作各领域的"专科医生",那么 solve-challenge 就是"分诊台"。它的定位很明确——

它负责初诊分诊:判断题目属于哪个方向,然后把执行权交给对应的ctf-*技能;当类别已经明确时,也可以直接调用专科技能,跳过调度器。

调度器的完整定义在 solve-challenge/SKILL.md,它声明了可调用的工具权限(Bash、Read、Grep、Task 等),并支持用户直接以[category] [challenge-file-or-url]的形式传参触发。

5步解题流程总览

整个流程分为 5 步,外加一个可选的平台探测步骤:

步骤名称做什么
Step 0平台探测(可选)识别 CTFd 平台,切换 API 驱动模式
Step 1Recon 侦察摸清文件类型、二进制特征、远程服务行为
Step 2Categorize 分类路由按文件/关键词/服务行为判定主类别
Step 3Invoke 调用技能加载匹配的/ctf-*专家技能
Step 4Pivot 跨模块转向卡壳时换思路、换模块、找漏点
Step 5Write-up 产出调用 ctf-writeup 生成标准化战报

下面逐步拆解。🔍

Step 1:Recon 侦察 —— 先摸清楚你拿到的到底是什么

侦察阶段调度器会做 5 件事,顺序不能乱:

  1. 列文件—— 遍历题目目录,对每个文件运行file识别真实类型
  2. 二进制分诊—— 用strings、xxd | head、binwalk、checksec快速"把脉"
  3. 抓链接—— 题目里提到的 URL 优先抓取,先获取上下文
  4. 连服务—— 用nc连接远程端口,观察它的交互提示
  5. 读提示—— 题目描述、文件名、注释里往往藏着线索

💡 侦察的关键价值:很多题目的"表面类别"是错的。一个看着像 web 的服务,连上去发现长输入会 crash,其实是 pwn 题。

Step 2:分类路由 —— 三把尺子量出主类别

调度器用三套判据交叉验证题目类别,这是整套流程的"大脑":

📄 按文件类型判断

  • .pcap、.dd、.E01→ 取证(forensics)
  • .elf、.exe、无扩展名二进制 → 逆向或 pwn(有远程服务则倾向 pwn)
  • .py、.sage带数字 → 密码学(crypto)
  • Web URL 或 HTML/JS/PHP 源码 → web

🔑 按题目描述关键词判断

  • "buffer overflow"、"ROP"、"libc" → pwn
  • "RSA"、"AES"、"lattice"、"LWE" → crypto
  • "XSS"、"SQL"、"JWT"、"SSRF" → web
  • "malware"、"C2"、"beacon" → malware

🌐 按服务行为判断

  • 端口交互提示、长输入崩溃 → pwn
  • HTTP 服务 → web
  • netcat 跑数学/加密题 → crypto
  • netcat 给受限 shell → misc(jail 类)

这套路由机制并非拍脑袋:项目在 tests/test_skill_discoverability.py 中维护了专门的回归测试,用真实的用户提示模拟首轮路由,一旦各技能的描述"混在一起"导致误分发,测试会提前失败——保证调度器长期可靠。

Step 3:调用专家技能 —— 8 个分类各就各位

类别确定后,调度器调用对应的技能加载完整技术手册:

类别调用技能典型场景
Web/ctf-webXSS、SQLi、SSTI、JWT、文件上传
Pwn/ctf-pwn栈溢出、格式化字符串、堆利用、ROP
Crypto/ctf-cryptoRSA、AES、ECC、PRNG、ZKP
Reverse/ctf-reverse二进制分析、自定义 VM、混淆代码
Forensics/ctf-forensics磁盘镜像、内存dump、隐写、抓包
OSINT/ctf-osint社交媒体、地理定位、公开档案
Malware/ctf-malware混淆脚本、C2 流量、PE/.NET 分析
Misc/ctf-miscjail 逃逸、编码谜题、RF/SDR、约束求解

以 web 为例,ctf-web/SKILL.md 开头就要求"首轮保持简短:先映射应用、确认信任边界,再深入具体技术笔记"——每个专家技能内部都是"先侦察、再开火"的节奏。

Step 4:跨模块 Pivot —— 卡壳时的5种转向策略

这是调度器最"聪明"的部分。真实 CTF 题常常横跨多个领域,首次尝试失败时它会按以下顺序自救:

  1. 重审假设—— 这真是你以为的类别吗?"web 题"可能需要 crypto 技能伪造 JWT;"取证"PCAP 里可能藏着重放的 pwn 载荷
  2. 换模块—— 调用第二个技能处理跨领域技术点
  3. 找漏掉的线索—— 隐藏文件、备用端口、响应头、源码注释、图片元数据
  4. 降级简化—— 漏洞利用太复杂时,看看有没有默认凭据、已知 CVE、逻辑漏洞等捷径
  5. 检查边界情况—— off-by-one、竞态条件、整数溢出、编码错位

调度器还内置了一份常见多类别组合清单,比如:

  • 🔗 Forensics + Crypto:PCAP 里是加密数据,需要密码学技能解密
  • 🔗 Web + Reverse:web 题里的 WASM 或混淆 JS 需要逆向
  • 🔗 Reverse + Pwn:先逆向出逻辑,再构造内存漏洞利用
  • 🔗 OSINT + Stego:社媒帖子里用 Unicode 同形字编码比特位

这些模式让 Agent 不会"一条路走到黑"。各分类技能内部同样设有 "When to Pivot" 指引(如 ctf-misc/SKILL.md 中写明:若谜题核心其实是数论,就切回/ctf-crypto),形成双向的路由闭环。

Step 5:ctf-writeup 生成标准化战报

解出 flag 后,调度器调用/ctf-writeup生成竞赛提交风格的 writeup,要求:

  • 带完整元数据(题目名、赛事、类别、难度、flag 格式)
  • 一个从题目数据直接跑到 flag 的完整脚本,而非多个碎片代码
  • 步骤精简到 1~3 步,方便队友或主办方快速验证

它的完整模板与质量检查清单在 ctf-writeup/SKILL.md。另外调度器内置了flag 校验规则:发现多个形如 flag 的字符串时视为候选项,优先选择与出题目标工件绑定的那个,并做全库唯一性检查、附来源路径,避免把"诱饵"当答案提交。🏁

快速上手:3行命令跑起来

1. 获取技能包

仓库是只读的,克隆到本地使用:

git clone https://gitcode.com/gh_mirrors/ct/ctf-skills

2. 预装解题工具(赛前推荐)

bash scripts/install_ctf_tools.sh all

3. 触发调度器

/solve-challenge <题目描述或URL>

工具清单统一维护在 scripts/install_ctf_tools.sh;比赛期间也可以"按需安装"——每个分类技能的 SKILL.md 都带有 Prerequisites 小节,只列出该类别所需的最少工具。

小结:为什么这套调度设计值得学习

  • 职责分离:调度器只管分诊与转向,技术深度全部下沉到 8 个分类模块,互不膨胀
  • 多判据交叉验证:文件类型 + 描述关键词 + 服务行为三重确认,降低误路由
  • Pivot 内建化:把"卡壳时怎么办"写成显式流程和组合模式清单,而非隐性经验
  • 质量闭环:发现性测试(tests/test_skill_discoverability.py)守护路由准确性,writeup 技能守护产出质量

对于想给 AI Agent 构建多技能编排系统的开发者,这套"侦察 → 路由 → Pivot → 产出"的骨架是一个很好的参考模板。

【免费下载链接】ctf-skillsAgent skills for solving CTF challenges - web exploitation, binary pwn, crypto, reverse engineering, forensics, OSINT, and more项目地址: https://gitcode.com/gh_mirrors/ct/ctf-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询