项目总览
项目总览
ljagiello/ctf-skills 是一组面向 AI Agent 的 CTF Skills。
它不是 CTF 平台,不是自动交 flag 的机器人,也不是一个单独运行的扫描器。它更像一套“给 Agent 看的 CTF 解题手册”:当 Agent 面对一道题时,可以根据题目材料加载合适 Skill,按对应路线开展分析。
项目定位
项目 README 对它的定位很直接:Agent Skills for CTF challenges。
这句话里有三个关键词:
| 关键词 | 含义 |
|---|---|
| Agent | 使用者不是普通脚本,而是能调用工具的 AI Agent |
| Skills | 项目提供的是可复用技能说明,不是可执行靶机 |
| CTF | 使用场景是授权比赛、靶场、课程题目 |
所以这个项目要解决的不是“如何从零学习所有 CTF 知识”,而是“如何让 Agent 在 CTF 题目中更有章法地行动”。
它为什么有用
没有 Skill 的 Agent,面对 CTF 题容易出现两种问题。
第一种是泛泛而谈。它知道很多术语,但不落地:
这可能涉及逆向、密码学或取证,建议进一步分析。第二种是乱用工具。它看到一点线索就进入某个方向,但没有验证:
看到 ELF 就直接写 exploit。
看到数字就假设是 RSA。
看到图片就直接跑隐写。ctf-skills 试图在中间建立一条路:先分类,再选择 Skill,再按该方向的路线做最小验证。
项目核心结构
原仓库可以分成四类内容:
| 类型 | 目录 | 作用 |
|---|---|---|
| 调度入口 | solve-challenge | 不确定题型时先做分类和路由 |
| 专业 Skill | ctf-web、ctf-pwn 等 | 各方向 CTF 题的路线说明 |
| 输出 Skill | ctf-writeup | 解出后生成标准 writeup |
| 工具准备 | scripts | 安装和检查常见 CTF 工具 |
还有 tests、pyproject.toml、GitHub 配置等,用来维护项目质量。
支持的方向
项目覆盖的主要方向包括:
- Web
- Pwn
- Crypto
- Reverse
- Forensics
- OSINT
- Malware
- Misc
- AI/ML
这些目录不是传统教程章节,而是 Agent Skills。每个 Skill 的 SKILL.md 都会说明适用场景、常用工具、第一轮流程和补充文件。
入口 Skill 与方向 Skill
项目设计里,solve-challenge 很重要。它不是某个方向,而是入口。
当 Agent 还不知道题型时,应该先用 solve-challenge。它根据题目描述、文件类型、远程服务和关键词判断方向,再转到具体 ctf-* Skill。
如果题型已经明确,就可以直接使用方向 Skill。例如已经确认是 JWT 题,可以直接进入 ctf-web;已经确认是 RSA 题,可以直接进入 ctf-crypto。
writeup 也是 Skill
ctf-writeup 说明这个项目不只关注“解题动作”。它还关注“解完之后如何交付”。
CTF 题解如果只有一句 flag,没有复现过程,价值很低。一个合格 writeup 至少要说明:题目是什么、关键发现是什么、用了什么工具、最终如何得到 flag。
Agent 很适合做这件事,因为它可以把过程日志整理成结构化文档。
这个项目不是什么
注意
不要把 ctf-skills 理解成现实攻击指南。
它不是:
- 未授权渗透测试手册
- 扫描真实目标的自动化工具
- 绕过检测或隐藏行为的指南
- 直接给新手复制粘贴的漏洞利用教程
它是 CTF 场景下的 Agent Skill 集合。理解这个边界,才能正确阅读后面的技能包介绍。
推荐阅读方式
如果你第一次接触这个项目,建议顺序是:
- 先理解 Agent、Tool、MCP、Skill 的关系。
- 看项目总览和仓库结构。
- 看
solve-challenge,理解它如何做入口调度。 - 再看各
ctf-*Skill 的中文介绍。 - 最后看使用方式和安全边界。
这样读,不会把项目误解成“CTF 万能教程”。它真正的核心,是让 Agent 有一套可复用的 CTF 工作路线。