Sep 3, 2026

ctf-skills:让编码 agent 上手 CTF 的九个类别技能

ljagiello 的 3,162 星 ctf-skills 把 Web 渗透、二进制 Pwn、密码学、逆向工程、取证、OSINT 和恶意软件分析打包成九个类别 skill,让你的编码 agent 在比赛中按需加载,顶层还有一个 solve-challenge 编排器。

#tutorial#security#agent-tools

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-webctf-pwnctf-cryptoctf-reversectf-forensicsctf-osintctf-malwarectf-ai-mlctf-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

然后正式安装;如果只需要其中一块,也可以跑更窄的分组——pythonaptbrewgemsgomanual

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。