VulnClaw CTF三大知识库实战:ctf-web、ctf-crypto与ctf-misc
VulnClaw 是一款基于 AI Agent 的智能安全工具,除了自动渗透测试,它还内置了面向 CTF 夺旗赛的三大知识库:ctf-web(Web 攻防)、ctf-crypto(密码学攻击)、ctf-misc(杂项解题)。这三个知识库以"速查表"风格编写,直接给出可用的绕过值、payload 和攻击思路,配合大语言模型自动完成判题、选路、验证全流程,是 CTF 新手快速上手的完整指南。
三大知识库定位一览
| 知识库 | 路径 | 解决什么问题 |
|---|---|---|
| 🕸️ ctf-web | vulnclaw/skills/specialized/ctf-web/SKILL.md | PHP 弱比较、命令注入绕过、SSTI、反序列化、代码审计 |
| 🔐 ctf-crypto | vulnclaw/skills/specialized/ctf-crypto/SKILL.md | RSA/AES/ECC 攻击、PRNG 预测、古典密码、格攻击 |
| 🎲 ctf-misc | vulnclaw/skills/specialized/ctf-misc/SKILL.md | 沙箱逃逸、编码链解码、隐写术、游戏逆向、CTFd 平台 |
三者有个共同的设计原则:精确值优于方法论——不告诉你"可以尝试",而是直接给出"0e 开头 MD5 值大全""双写绕过公式""子类索引表"这类拿来即用的实战内容。
ctf-web:PHP Web 题实战知识库
这是三个知识库中内容最"硬核"的一个,核心思想是:先想能不能"直接读",再想怎么"绕过"。
1. PHP 伪协议优先原则
题目出现 ?file=xxx、?page=xxx 等参数传文件名的特征时,知识库要求先试 php://filter 再想其他方法:
convert.base64-encode被称为"万能读取器":PHP 文件被 include 会执行,但 base64 编码后不会执行,可直接拿到源码- 参数名不一定叫
file,page、num、path、template都可能有效
2. 内置速查表清单
| 场景 | 参考文档 | 核心内容 |
|---|---|---|
| PHP 弱比较/类型绕过 | php-bypass-cheatsheet.md | 0e 开头 MD5 值大全、数组绕过、extract() 覆写 |
| 双写绕过速查 | 同上 + SKILL.md 内置表 | NSSNSSCTFCTF → 替换后拼出 NSSCTF,含 8 组已验证过滤词 |
| 命令注入空格绕过 | command-injection-bypass.md | ${IFS}/$IFS$9/</%09/%0a 全表 |
| eval/RCE 技巧 | eval-and-rce-techniques.md | system/exec/passthru 区别、无回显外带 |
| SSTI 注入链 | ssti-injection-chains.md | Jinja2/Twig/ERB/Mako 注入链速查 |
| 反序列化利用链 | deserialization-playbook.md | PHP/Java/Python 反序列化、SoapClient CRLF |
| 代码审计 | php-code-audit-checklist.md | 输入入口→过滤→危险函数→输出分析 |
| flag 位置速查 | web-ctf-quick-reference.md | /flag、/proc/self/environ、phpinfo 环境变量段等优先级清单 |
3. 新手最常踩的坑:RCE 之后找不到 flag
知识库把"RCE 得手后的 flag 位置优先级"写成了清单:cat /flag → cat /flag.txt → ls / 找文件名 → 容器环境变量。特别提醒:ls 默认列的是当前目录(通常是 /var/www/html/),根目录的 /flag 必须 ls / 才能看到——这是新手丢分的重灾区。
另外还有一个"长度限制绕过"首推策略:当 eval() 被 strlen() 卡住(如 ≤18 字符)时,直接用 $_GET 链式传参,把 eval($_GET['A'])(仅 16 字符)放在长度受限的参数里,真正的命令放在第二个参数中,无需费心缩短 payload。
ctf-crypto:密码学攻击知识库
与负责编解码操作的 crypto-toolkit 不同,ctf-crypto 解决的是**"知道加密参数后怎么打"**的问题。
1. 快速判题表
知识库提供了一张"看参数定攻击"的判题表:
| 题目特征 | 可能攻击 | 参考文档 |
|---|---|---|
| 给了 n, e, c | RSA 全家桶 | rsa-attacks-cheatsheet.md |
| e=3 或 e 很小 | 小指数/广播攻击 | 同上 |
| 多组参数且 n 相同 | 共模攻击 | 同上 |
| n 大但 e 大 | Wiener 攻击 | 同上 |
| AES-CBC + 解密 oracle | Padding Oracle | aes-and-block-cipher-attacks.md |
| 椭圆曲线参数 | ECC 攻击 | ecc-attacks-cheatsheet.md |
| 给了随机数序列 | PRNG 预测 | prng-and-stream-cipher-attacks.md |
| 密文 + 部分明文 | XOR/频率分析 | classic-cipher-attacks.md |
| 矩阵/向量运算 | 格攻击 | lattice-and-lwe-attacks.md |
2. RSA 攻击决策树
rsa-attacks-cheatsheet.md 用一棵决策树覆盖全部常见攻击:Håstad 广播(同明文多次加密)→ 共模(同 n 不同 e)→ Wiener(e 大 d 小)→ Fermat/Pollard p-1 分解 → Coppersmith(已知部分明文),每种攻击都附带 Python 代码片段,Agent 拿到题目后按树对号入座即可。
3. 核心原则
密码学攻击对参数极其敏感,知识库要求先识别加密体系(看密钥长度、加密模式、已知量)再动手,所有攻击代码通过 python_execute 实际执行验证,绝不"脑补"解密结果。
ctf-misc:杂项题型知识库
CTF 杂项题是新手最迷茫的赛道,ctf-misc 用六份文档覆盖了最高频的题型:
| 场景 | 参考文档 | 核心内容 |
|---|---|---|
| Python 沙箱逃逸 | python-jail-escape.md | __import__/func_globals 逃逸链、子类索引表、下划线/引号/方括号过滤绕过 |
| Bash 沙箱逃逸 | bash-jail-escape.md | HISTFILE/ctypes.sh/vi 编辑器逃逸 |
| 编码链识别与解码 | encoding-chain-reference.md | Base64→Hex→ROT13 多层嵌套识别特征表、自动解码脚本 |
| 游戏/自定义 VM 逆向 | game-and-vm-reverse.md | WASM/Brainfuck/Z3 约束求解 |
| CTFd 平台操作 | ctfd-platform-guide.md | API 批量下载附件、提交 flag、查排行榜 |
| Linux 提权 | linux-privesc-quick.md | SUID/sudo/cron/内核漏洞路径 |
两个亮点值得新手重点看:
- Python Jail 决策树:python-jail-escape.md 把"能否 import → 能否访问 builtins → 被过滤了什么字符"整理成一棵决策树,连"下划线被过滤用
\x5f、引号被过滤用chr()、数字被过滤用True/False拼"这类细节都列成了对照表 - 编码链识别特征表:见到末尾带
=想 Base64、偶数长度0-9A-F想 Hex、%XX想 URL 编码——encoding-chain-reference.md 把 10 种编码的"一眼识别特征"做成了表格,还内置了自动多层解码脚本,杂项题第一关基本通吃
VulnClaw 如何自动调用这些知识库
VulnClaw 的知识库不是静态文档堆,而是一套路由驱动的 Skill 体系,这是它与普通"笔记仓库"的最大区别:
- 声明式路由:每个 SKILL.md 的 frontmatter 中声明
routing元数据(target_types: [ctf, web]、vulnerability_classes: [rce, ssti, ...]),由 vulnclaw/skills/routing.py 解析为强类型路由信号,任务类型、技术栈、漏洞类别匹配后自动注入对应知识库 - 场景二级路由:SKILL.md 内部再按"题目特征 → 参考文档"做第二层路由,Agent 判题后只加载需要的速查表,控制上下文消耗
- flag 状态机:vulnclaw/agent/ctf_mode.py 实现了 CTF 专属的 flag 声明/验证状态机——Agent 声称找到
flag{...}后必须进入验证环节,防止"以为拿到了其实没拿到"的假阳性 - 工具闭环验证:知识库反复强调"所有 payload 必须用
fetch或python_execute实际发送验证,不猜测结果",某个 payload 失败后立即记录、不重复尝试
快速上手:三步开始解题
- 获取 VulnClaw:执行
git clone https://gitcode.com/GitHub_Trending/vu/VulnClaw,按 README.md 安装依赖 - 配置模型与目标:按 docs/mcp-deployment.md 完成大模型与工具链配置,把 CTF 题目地址作为目标输入
- 自然语言驱动:直接描述题目(如"给我一个 CTF Web 题,页面有登录框,源码里有
preg_replace过滤"),Agent 会自动完成判题 → 路由到知识库 → 选 payload → 工具验证 → 提交 flag 全流程;也可阅读 vulnclaw/agent/ctf_mode.py 了解其 flag 验证机制
想深入理解技能加载与调度机制,可以看 vulnclaw/skills/dispatcher.py 和 vulnclaw/skills/loader.py 的源码实现。
总结
VulnClaw 的三大 CTF 知识库把"高手脑中的经验"沉淀成了机器可读的速查表:
- ctf-web 给你 PHP 题的精确绕过值和 flag 位置优先级
- ctf-crypto 给你"看参数定攻击"的判题决策树
- ctf-misc 给你沙箱逃逸决策树和编码识别特征表
配合声明式路由和 flag 状态机,新手不需要背知识点——VulnClaw 会在正确的时机把正确的速查表递给模型,并坚持"工具验证、不猜测结果"的闭环原则。对于想系统提升 CTF 解题效率的选手,这三大知识库既是提效工具,也是绝佳的学习资料。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



