rust-memo/caido-csrf-poc-generator

GitHub: rust-memo/caido-csrf-poc-generator

Caido 平台的原生 CSRF 概念验证生成插件,提供类似 Burp Professional 的可编辑 PoC 工作流。

Stars: 0 | Forks: 0

# Caido 的 CSRF PoC 生成器 CSRF PoC Generator 为 Caido 添加了类似 Burp Professional 的概念验证工作流。右键点击 HTTP History 中的某一行、请求编辑器或响应编辑器,然后选择 **Generate CSRF PoC**。该插件会打开一个可编辑的请求,以及可编辑的 HTML,并说明浏览器能在多大程度上还原原始请求。 这是原始 Burp Suite `csrf-poc-generator` 扩展的 Caido 原生配套插件。Burp 项目仍然保持独立且不受影响。 生成过程是在本地进行的,绝不会发送选定的请求。只有在测试人员明确打开预览并提交它,或者在接受警告后打开自动提交的 PoC 时,才会触发目标请求。请仅在有权拥有或获得明确授权测试的系统上使用此插件。 ## 功能特性 - 在 Caido 的请求行、请求面板和响应面板的上下文菜单中添加 **Generate CSRF PoC**。 - 通过 Caido Request ID 加载已保存的 HTTP 交互,或者接受粘贴/编辑的原始 HTTP 请求和完整 URL。 - 自动在标准 HTML 表单、`text/plain` 表单和跨域 XHR 之间进行选择。 - 支持 GET、URL 编码的 POST、multipart 字段和手动文件占位符、原始请求体、JSON/XML 以及非标准方法。 - 保留重复的参数,并对每个表单的 action、name、value 和警告进行 HTML 转义。 - 对 XHR 的方法、URL、标头值和请求体进行 JavaScript 转义,包括闭合脚本序列。 - 从生成的 HTML 中省略 `Cookie`、`Authorization`、代理凭据、浏览器控制的标头、`Sec-*` 标头以及内容长度。 - 解释 SameSite 限制、语义化请求更改、缺失的隐式授权、文件输入行为以及可能的 CORS 预检原因。 - 可选择移除类似 CSRF 的表单字段和请求标头,但并不声称这种移除能证明存在漏洞。 - 支持可编辑的请求和 HTML 面板、带有覆盖保护的重新生成、复制、保存以及显式的浏览器预览。 - 仅在 Caido 前端存储中保留三个 UI 选项;HTTP 请求和生成的 PoC 不会被此插件持久化。 - 在已保存请求和已编辑请求的流程中强制执行 2 MiB 的请求限制。 ## 要求与构建 - Node.js 20 或更高版本。 - pnpm 9。 - 与 SDK `0.46.x` 兼容的当前 Caido 版本。 ``` pnpm install --frozen-lockfile pnpm typecheck pnpm test pnpm lint pnpm knip pnpm build ``` 可加载的包将生成在 `dist/plugin_package.zip` 中。 ## 安装说明 1. 构建插件或从受信任的发布版本中获取 `plugin_package.zip`。 2. 打开 Caido 的插件安装界面并加载此 ZIP 包。 3. 仅将已授权的目标添加到 Caido Scope 中。 4. 右键点击请求/响应并选择 **Generate CSRF PoC**,或者从侧边栏打开该插件。 ## 推荐工作流 1. 使用专用的测试账户捕获状态变更请求。 2. 右键点击其 History 记录行并选择 **Generate CSRF PoC**。您也可以手动输入其 Caido Request ID。 3. 检查可编辑的 HTTP 请求和完整的目标 URL。 4. 首先保持选择 **Auto**。阅读所有兼容性警告并检查生成的 HTML。 5. 如果合适,比较 Form、Plain text 和 XHR 技术。会将对请求进行更改的技术标记为尽力而为。 6. 仅将 **Remove CSRF-like fields** 用作测试辅助工具。它本身并不能作为漏洞证据。 7. 保存或复制 HTML 以供专用的测试浏览器使用。**Preview** 始终会要求确认,并在自动提交可能会立即联系目标时发出警告。 8. 检查 Caido History,并手动验证实际的服务器端状态、身份验证上下文、Origin/Referer 验证以及影响。 ## 技术行为 - **Auto** — 根据方法和 Content-Type 选择最接近的浏览器表示形式。 - **HTML form** — 最适合 GET、URL 编码的 POST 和语义化 multipart 表单。HTML 表单仅支持 GET 和 POST。 - **Plain text form** — 可以重现一些原始请求体,但会更改 `Content-Type`,并且浏览器会追加换行符。 - **Cross-origin XHR** — 保留任意方法和原始请求体,但非简单方法、JSON Content-Type 以及自定义标头通常会触发 CORS 预检。 ## 安全与数据边界 - 生成或重新生成 HTML 不会执行任何网络请求。 - 该插件不会自动测试 CSRF、重放请求、跟随重定向或推断漏洞状态。 - 原始请求凭据仅保留在 Caido 的请求视图/插件页面中,并从生成的 HTML 中排除。 - 浏览器预览使用临时的本地 Blob URL。仅在显式确认后才会打开,并在短时间后将其撤销。 - 对于带有文件输入的 multipart PoC,会自动禁用自动提交功能。 - SameSite cookie、CORS、身份验证标头、用户交互和应用程序防御可能会使语法上有效的 PoC 无法被利用。 ## 阿拉伯语快速使用 1. ابنِ الإضافة وحمّل `dist/plugin_package.zip` داخل Caido. 2. اضغط بالزر الأيمن على Request أو Response واختر **Generate CSRF PoC**، أو أدخل Request ID يدويًا. 3. الإضافة تولّد HTML محليًا فقط ولا ترسل الطلب المستهدف أثناء التوليد. 4. وضع **Auto** يختار بين HTML Form و`text/plain` وXHR ويعرض تحذيرات الاختلاف وCORS وSameSite. 5. لا يتم نسخ Cookie أو Authorization أو الهيدرز التي يتحكم بها المتصفح إلى الـ PoC. 6. زر **Preview** يطلب تأكيدًا واضحًا؛ مع auto-submit قد يرسل المتصفح الطلب فور فتح المعاينة. 7. راجع الطلب والـ HTML، ثم اختبر بحساب مخصص وعلى هدف مصرح فقط، وتأكد من تغير الحالة على الخادم يدويًا. 8. وجود PoC صالح شكليًا أو حذف CSRF token لا يثبت وجود ثغرة. ## 许可证 MIT。详见 [LICENSE](LICENSE)。
标签:Caido插件, CSRF, HTTP协议, MITM代理, PoC生成, Web安全, 安全测试, 攻击性安全, 自动化攻击, 蓝队分析