摘要:开源项目 php-ctf-handbook 把 PHP 手册与 CTF 知识做进一个 13 MB 的 HTML 文件,无需联网编译运行、双击就会打开。整包收录 11930 条内容,其中包含 PHP 官方中文手册的完整索引、从真实题目总结出的 196 条攻击思路、990 余段可直接复制的利用代码,以及一组 CTF 辅助工具,为新手入门与线下赛现场查询提供了一个本地知识库方案。
13MB 单页 HTML 里装了些什么
项目在 GitHub 上开源,仓库地址为 github.com/writerosee/php-ctf-handbook。整个界面由一处静态网页构成,不依赖后端服务,也不存在安装环节。打包内容包括四项:手册索引的整体快照、来自赛题实践的打法条目、可一键复用的攻击载荷,以及一个配套的简易工具箱。

搜索直接命中 payload 内部
作者明确说明,这正是它与「用浏览器 Ctrl+F 翻网页」不同的关键所在。只要输入 base64,出现在某个利用代码片段里的 base64 字样同样会被列出,说明检索层级已经下探到代码内容,不再局限于条目标题与简介。
工具提供字段化的过滤语法:前缀 k: 用于按类型筛选类别;前缀 pl: 用于只在载荷库中检索,例如输入后就能看到 base64;在某个关键字前加上减号则表示从匹配结果中剔除该词;用英文双引号包住的短语会作为整体精确匹配。
按下 Ctrl+K 键会调出命令面板,完成条目跳转、视图切换与数据导出这三类操作,都可以在这个面板里点选。

196 条官方手册之外的战术讲解
手册索引擅长描述函数的定义和调用方式,几乎不考虑怎么被绕过去;而这批共 196 条手写内容面向攻击与防御一侧,方向覆盖文件包含与伪协议、反序列化、SSTI 及框架相关利用、形形色色的过滤器绕过手法,还有 XXE、JWT 与 SSRF,直到后渗透阶段。
每条都统一组织成三部分来展开:第一步讲如何识别当前场景属于该漏洞点,再加入实际打法,最后提供一份可直接套用的样本,即本处的 payload 应是什么样子的。依据作者自己的说明,识别的方法是从真实解过的题目里归纳出来的,与照翻 PHP 手册是两回事。

顺手集成的几种编码与载荷小工具
工具箱并非只放正文,一键结果说明它可以现场生成序列化数据、发起反弹 Shell、分析 JWT 结构、判断哈希类型、做多路编码转换。尤其是序列化构造那部分,能表达对象的相互嵌套结构、可以加入 i:、d:、b:、n:、raw: 这些代表类型的写法;自定义私有成员以「类名::属性」这样的语法描述,长度计算遵循 UTF-8 字符边界。
OSV 漏洞投影与本地可编辑笔记
在联网场景下,手册会调用 OSV 数据源,接入 fastjson、log4j-core、spring-beans、struts2-core 等主流的几个第三方组件;赛前当你能连上网络,就先拉取它们近期披露的漏洞记录,再把中文版的观察结论和攻击尝试补写进这些组件自带的各种本地内容里。若是网络上不去,就展示上一次缓存下来的列表。
常用功能是收藏、备注、最近浏览。页面不会限制用户不可以在页面内改动。后者允许在任何条目正文中做当前笔记者级的小调整——改动只记录于浏览器的本地存储之中;再经由导出 JSON 备份,可以换台电脑时再放进这里继续编辑,带过来的内容也会一并存放。

文件被 Defender 删除的两种情况
影响之一:如果文件已经删除了,那几乎可以归因于“带了大量的 PHP 源码 + 只有一块 13MB 的纸 + 电脑开了启发式检查”,而后把它统统判为疑似威胁。为绕过这一层屏蔽,去杀毒软件里相应的位置添加例外即可找回。
前置理解只需要知道两件事:软件用手工作业编写,在比赛时预先积累知识;无独目标也离不开:全中文、跳节即可编写代码的独立性,是一个具有自我提升属性的验证环境。
小结:php-ctf-handbook 用一个仅本地打开的单文件实现了手册索引、赛题战法与载荷资源的合并。只需一个 HTML 文件,就可以避免平时离线学解析脚本之类操作造成的迟缓,适用于希望第一次接触处理这些题目风格的初学者,也可以在断网状态下,在各类 PWN 赛中辅助做一些方便翻阅的小型文档库。
