Sep 3, 2026
ctf-skills:让编码 agent 上手 CTF 的九个类别技能
ljagiello 的 3,162 星 ctf-skills 把 Web 渗透、二进制 Pwn、密码学、逆向工程、取证、OSINT 和恶意软件分析打包成九个类别 skill,让你的编码 agent 在比赛中按需加载,顶层还有一个 solve-challenge 编排器。
CTF 比的是广度:一场比赛可以从 SQL 注入打到堆利用、RSA 陷阱、磁盘取证和隐写术,没有人能在所有方向上都深耕。ljagiello/ctf-skills 把这种广度交给你的编码 agent——九个按类别划分的 skill,覆盖 Web 渗透、二进制 Pwn、密码学、逆向工程、取证、OSINT、恶意软件分析、AI/ML 攻击和杂项技巧,支持任何遵循 Agent Skills 规范的工具。
为什么这个 Skill 重要
每个类别都有自己的 skill 和自己的技巧目录。光是 ctf-web 一行就列出了从 php://filter LFI、原型链污染,到 JWT JWK/JKU/KID 注入、SSTI 绕过的大量模式。README 的表格列出九个类别 skill——ctf-web、ctf-pwn、ctf-crypto、ctf-reverse、ctf-forensics、ctf-osint、ctf-malware、ctf-ai-ml 和 ctf-misc——之外还有两行:solve-challenge,一个分析题目并把工作分派给类别 skill 的编排器;以及 ctf-writeup,用来生成标准化的 writeup。
真正的差异化在环境管理上。每个 skill 的 SKILL.md 都带有 Prerequisites 一节,只列出该类别需要的工具——agent 可以在遇到题目时按需安装,而不是让你全年维护一套巨型工具链。
安装
一条命令装上整个合集:
npx skills add ljagiello/ctf-skills
实战:赛前准备
仓库自带一个中央安装脚本,负责各个类别会用到的工具。先预览——已存在的包会被跳过:
bash scripts/install_ctf_tools.sh --dry-run all
然后正式安装;如果只需要其中一块,也可以跑更窄的分组——python、apt、brew、gems、go 或 manual:
bash scripts/install_ctf_tools.sh all
核对装了什么,日志在 ~/.ctf-tools/:
bash scripts/install_ctf_tools.sh --verify
实战:比赛中
skill 装好之后,按平时的方式在 agent 里做题。Web 题可以这样提示:
This challenge serves a login page at http://localhost:8080.
Work it as a CTF web challenge: probe for injection and auth
bypasses, and capture the flag.
ctf-web skill 会把它的技巧目录带进 agent 的上下文,注入和绕过模式随取随用,你只负责判断和验证。如果 agent 撞到缺工具,skill 的 Prerequisites 一节会指名要装什么,不用在比赛中途去搜包名。
技巧
- 比赛周之前先跑一遍安装脚本的
--dry-run,别让任何事在凌晨两点爆雷。 - 更喜欢按需安装?跳过批量安装脚本,让每个 skill 的 Prerequisites 一节驱动配置。
- README 还文档化了 Friday Studio 集成,如果你想要定时、带日志的挑战工作区可以用它。
- 有意识地组合类别:取证的发现常常就是密码学 skill 的下一个输入。
何时不用这个 Skill
这些是 CTF 战术手册——只用于比赛靶机和你有授权攻击的实验环境。生产环境的安全工作要靠你所在组织的评审流程,而不是一份竞技性漏洞目录。另外,如果你从不碰二进制利用和取证,全量安装工具链就是死重;只装你真正会打的类别就好。
查看 排行榜 了解更多 skill。