cognis-digital/ssrfind

GitHub: cognis-digital/ssrfind

一款用于在源码中扫描和定位易受 SSRF 攻击的代码接收点及未校验 URL 获取的静态分析工具。

Stars: 0 | Forks: 0

SSRFIND # SSRFIND ### 在代码中查找易受 SSRF 攻击的接收点和未经验证的 URL 获取 [![PyPI](https://img.shields.io/pypi/v/cognis-ssrfind.svg?color=6b46c1)](https://pypi.org/project/cognis-ssrfind/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b56e219d10060130.svg)](https://github.com/cognis-digital/ssrfind/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital) *Cognis Neural Suite 的一部分。*
``` pip install cognis-ssrfind ssrfind scan . # → prioritized findings in seconds ``` ## 用法 — 分步指南 1. **安装** CLI(控制台脚本 `ssrfind`): pip install cognis-ssrfind 2. **扫描源码中的 SSRF 接收点** — `scan` 会遍历文件或目录树,查找易受 SSRF 攻击的接收点和未经验证的 URL 获取: ssrfind scan ./src 3. **调整严重性 / 格式** — 仅显示高可信度的结果,或输出 JSON: ssrfind scan ./src --min-severity high ssrfind scan ./src --format json > ssrf.json 4. **阅读输出** — 每个发现都包含 `severity`、`file:line`、`rule_id`、`sink`/`argument` 以及说明性注释;JSON 格式会额外提供一个按严重性统计的 `summary` 计数。当有发现时退出码为 `1`,干净时为 `0`,路径错误时为 `2`: ssrfind scan ./src --format json | jq '.summary, (.findings[] | {rule_id, file, line})' 5. **在 CI 中自动化** — 当出现 SSRF 热点时使任务失败: - run: pip install cognis-ssrfind - run: ssrfind scan ./src --min-severity medium # 非零退出码 = 有发现 ## 目录 - [为什么选择 ssrfind?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI 技术栈](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关工具](#related) · [贡献](#contributing) ## 为什么选择 ssrfind? SSRF 热点 `ssrfind` 是单一用途、可脚本化且可自托管的:将其指向目标,即可获得您的工作流已适应的格式(表格 · JSON · SARIF)的优先级排序结果,以此来控制 CI,并让 agent 通过 MCP 驱动它。
↑ 回到顶部
## 功能 - ✅ 扫描源码 - ✅ 扫描路径 - ✅ 可在 Linux/macOS/Windows · Docker · devcontainer 上运行 - ✅ 提供 Python, JavaScript, Go 和 Rust 的移植版本 (`ports/`)
↑ 回到顶部
## 快速开始 ``` pip install cognis-ssrfind ssrfind --version ssrfind scan . # scan current project ssrfind scan . --format json # machine-readable ssrfind scan . --fail-on high # CI gate (non-zero exit) ```
↑ 回到顶部
## 示例 ``` $ ssrfind scan . [HIGH ] SSR-001 example finding (./src/app.py) [MEDIUM ] SSR-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 回到顶部
## 架构 ``` flowchart LR IN[input] --> P[ssrfind
analyze + score] P --> OUT[report] ```
↑ 回到顶部
## 从任何 AI 技术栈中使用 `ssrfind` 可与所有流行的 AI 使用方式互操作: - **MCP server** — `ssrfind mcp` (Claude Desktop, Cursor, Cognis.Studio, [uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **兼容 OpenAI / JSON** — 通过管道将 `ssrfind scan . --format json` 传递给任何 agent 或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** — 一行代码即可将 CLI/JSON 封装为工具 - **CI / 脚本** — 为非 AI 流水线提供退出码 + SARIF
↑ 回到顶部
## 对比 | | **Cognis ssrfind** | semgrep ssrf | |---|:---:|:---:| | 可自托管,无需账号 | ✅ | 视情况而定 | | 单一命令,零配置 | ✅ | ⚠️ | | 用于 CI 的 JSON + SARIF | ✅ | 视情况而定 | | MCP 原生(AI agent) | ✅ | ❌ | | 多语言移植(JS/Go/Rust) | ✅ | ❌ | | 开源协议 | ✅ COCL | 视情况而定 | *秉承 **semgrep ssrf** 的精神,以 Cognis 的方式重新构建。遗漏了致谢?欢迎提交 PR。*
↑ 回到顶部
## 集成 接入您的技术栈:用于代码扫描的 **SARIF**,用于一切的 **JSON**,用于 AI agent 的 **MCP server** (`ssrfind mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。详见 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 回到顶部
## 安装 — 全方位、全平台支持 ``` pip install "git+https://github.com/cognis-digital/ssrfind.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/ssrfind.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/ssrfind.git" # uv pip install cognis-ssrfind # PyPI (when published) docker run --rm ghcr.io/cognis-digital/ssrfind:latest --help # Docker brew install cognis-digital/tap/ssrfind # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/ssrfind/main/install.sh | sh ``` | Linux | macOS | Windows | Docker | Cloud | |---|---|---|---|---| | `scripts/setup-linux.sh` | `scripts/setup-macos.sh` | `scripts/setup-windows.ps1` | `docker run ghcr.io/cognis-digital/ssrfind` | [DEPLOY.md](docs/DEPLOY.md) (AWS/Azure/GCP/k8s) |
↑ 回到顶部
## 相关 Cognis 工具 - [`portfan`](https://github.com/cognis-digital/portfan) — 总结并对比 nmap XML,生成按优先级排序的、可利用的发现 - [`subhunt`](https://github.com/cognis-digital/subhunt) — 汇总并去重来自多个来源的子域名枚举结果 - [`dirsight`](https://github.com/cognis-digital/dirsight) — 分析 Web 内容发现输出(ffuf/gobuster)并将其转化为排名的 endpoint - [`jwtinspect`](https://github.com/cognis-digital/jwtinspect) — 解码 JWT 并检查 alg=none、弱密钥以及缺失的声明 - [`corsaudit`](https://github.com/cognis-digital/corsaudit) — 从 header 或配置中检测宽松/错误配置的 CORS - [`headerscan`](https://github.com/cognis-digital/headerscan) — 根据响应转储将 HTTP 安全 header(CSP/HSTS/XFO)评级为 A-F **探索全套工具 →** [🗂️ 全部 170+ 工具](https://github.com/cognis-digital/cognis-neural-suite) · [⭐ awesome-cognis](https://github.com/cognis-digital/awesome-cognis) · [🔗 cognis-sources](https://github.com/cognis-digital/cognis-sources) · [🤖 uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet) · [🧠 engram](https://github.com/cognis-digital/engram)
↑ 回到顶部
## 互操作性 `{}` 与包含 300+ 工具的 Cognis 套件组合使用 — JSON 输入/输出以及共享的 兼容 OpenAI 的 `/v1` 主干。请参阅 **[INTEROP.md](INTEROP.md)** 了解 套件图谱、组合模式和参考技术栈。 ## 许可证 在 **Cognis Open Collaboration License (COCL) v1.0** 下开源可见 — 可免费用于个人、内部评估、研究和教育用途;**商业/生产环境使用需要许可证** (licensing@cognis.digital)。详见 [LICENSE](LICENSE)。
Cognis Digital · Cognis Neural Suite 中 170+ 工具之一 · 让明天在今天变得更美好
标签:CISA项目, LNA, Python, SSRF检测, 代码安全审计, 可视化界面, 安全专业人员, 数据可视化, 无后门, 日志审计, 自动化安全扫描, 请求拦截, 逆向工具, 错误基检测, 静态代码分析