madebyaris/chaca-scanner

GitHub: madebyaris/chaca-scanner

基于 Tauri 2 和 Rust 构建的桌面安全扫描器,帮助开发者快速检测 Web 应用的 OWASP Top 10 漏洞、API 暴露和配置泄露问题。

Stars: 31 | Forks: 3

Chaca — Web 安全扫描器

一款面向氛围编码者和开发者的原生桌面安全扫描器

version tauri react rust

对您的 Web 应用程序进行快速、具有针对性的安全审计 — 无需终端。

直接支持 Chaca:购买 Chaca Pro,通过 GitHub 提供支持,或者通过 PayPal 向 arissetia.m@gmail.com 发送 $100 创始人支持,即可让您的公司标志永久列于此处。

## 截图 | 新建扫描 | 仪表盘 | 完整报告 | |:--------:|:----------:|:-----------:| | [Chaca New Scan screen](assets/home.png) | [Chaca Dashboard](assets/detail.png) | [Chaca vulnerability list](assets/list-vuln.png) | | 配置目标 URL、扫描模式(被动/主动/全量),或扫描本地文件夹 | 安全评分、漏洞趋势、目标情报 | 按严重程度过滤、CWE 参考、导出为 JSON/CSV/SARIF/PDF | ## Chaca 是什么? **Chaca** = **Cha**lim S**ca**nner — 一款使用 **Tauri 2**、**React 19** 和 **Rust** 构建的桌面应用程序,用于扫描 Web 应用程序的安全问题。专为希望在无需学习 Burp Suite 或 OWASP ZAP 的情况下获得可操作结果的开发者而设计。 ## 功能特性 ### 扫描引擎 (Rust) | 类别 | 能力 | |----------|--------------| | **被动** | 安全标头、Cookie、CORS、CSP、CSRF、点击劫持、JWT、速率限制、反序列化指标 | | **主动** | XSS(Canary + 属性/事件注入)、SQLi、SSTI、开放重定向、路径遍历、CORS 反射、CSRF 验证 | | **CMS** | WordPress、Drupal、Joomla、Shopify、Magento 指纹识别 + 平台特定检查 | | **API** | 57+ 敏感路径探测(`/swagger.json`、`/env`、`/graphql`、`/wp-json/wp/v2/users` 等) | | **信息泄露** | 堆栈跟踪、调试标头、文件路径泄露(Python、Java、PHP、.NET、Go、Ruby、Node.js) | | **服务** | Supabase、Firebase、PocketBase、管理面板(phpMyAdmin、Adminer、wp-login、调试控制台) | | **侦察** | IP、DNS、TLS、服务器指纹识别、技术检测(框架、CDN、WAF、主机托管)、`robots.txt` / `sitemap.xml` / `security.txt` | | **知识库** | 50+ 漏洞定义,包含 CWE、CVSS 严重程度、修复建议、参考链接 | | **质量** | 置信度评分(已确认/确凿/试探性)、去重、按类别计算的安全评分(0–100) | ### 桌面应用 (React + Tailwind) - 优先等宽字体的极简 UI - 实时进度(爬取 → 被动 → 主动) - 包含评分、图表、统计和目标情报面板的仪表盘 - 报告查看器,包含 CWE 链接和外部参考 - 按严重程度和置信度过滤 - 导出为 JSON、CSV、SARIF 和 PDF - Pro 扫描助手:快速标头、优先登录设置、品牌 PDF 导出 - 应用重启后保留持久化扫描历史 - 扫描预设(快速被动、API 审计、全量扫描)+ 自定义预设 - 本地文件夹扫描:Secrets、配置暴露、端点清单(仅限本地) - 设置页面(网络、爬取、被动、主动、数据检测、导出、预设),支持持久化存储 ## 技术栈 | 层级 | 技术 | |-------|------------| | Shell | Tauri 2 | | 前端 | React 19, TypeScript, Tailwind CSS v4 | | 状态 | Zustand, tauri-plugin-store | | UI | Radix UI, Lucide icons, Recharts | | 后端 | Rust (reqwest, regex, tokio, serde, tracing, base64) | ## 入门指南 ### 前置条件 - [Node.js](https://nodejs.org/) 18+ - [Rust](https://rustup.rs/) 1.77+ - 适用于您平台的 [Tauri 前置条件](https://v2.tauri.app/start/prerequisites/) ### 运行 ``` npm install npm run tauri dev ``` ### 构建 ``` npm run tauri build ``` 输出:`src-tauri/target/release/bundle/` ### 发布 (GitHub) 针对 **Windows (x64)** 和 **Linux (x64 AppImage)** 的预构建二进制文件会在每个版本标签发布到 [GitHub Releases](https://github.com/madebyaris/chaca-scanner/releases)。macOS 构建目前需要本地编译,因为 Chaca 尚未使用 Apple Developer 账户进行签名/公证。 **创建发布版:** 1. 在 `package.json` 和 `src-tauri/tauri.conf.json` 中升级版本号 2. 提交并推送 3. 创建并推送版本标签:`git tag v0.6.0 && git push origin v0.6.0` 4. GitHub Actions 构建所有平台并创建草稿发布 5. 编辑草稿发布,添加发布说明,并发布 **预期的构建产物:** | 平台 | 产物 | 备注 | |----------|----------|-------| | macOS (Apple Silicon) | 本地构建 | 目前,macOS 开发者应使用 `npm run tauri build` 自行编译 Chaca | | Windows (x64) | `Chaca_0.6.0_x64-portable.exe` | 直接运行;Windows 10 需要安装 [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) | | Windows (x64) | `Chaca_0.6.0_x64-setup.nsis.exe` | 安装程序(包含 WebView2) | | Linux (x64) | `Chaca_0.6.0_amd64.AppImage` | 直接运行 | **注意:** 当前的发布版本未签名。Windows 可能会显示安全警告,macOS 的公开发布会暂时受阻,直到 Chaca 完成签名/公证。请确保 **Settings → Actions → General → Workflow permissions** 设置为 "Read and write permissions",以便发布工作流可以创建发布。 ### macOS “已损坏” 警告 如果 macOS 提示 `"Chaca.app" is damaged and can't be opened`,通常是因为应用未签名或下载时带有隔离标记,被 Gatekeeper 阻止。 如果您是 Mac 开发者,目前最可靠的方法是克隆仓库并在本地构建: ``` npm install npm run tauri build ``` 尝试以下步骤: 1. 打开 `.dmg` 2. 将 `Chaca.app` 拖入 `Applications` 3. 在 Finder 中,右键点击 `Chaca.app` 并选择 `Open`(打开) 4. 如果 macOS 仍然阻止,请前往 `System Settings -> Privacy & Security` 并点击 `Open Anyway`(仍要打开) 如果仍然无效,请手动移除隔离属性: ``` xattr -dr com.apple.quarantine "/Applications/Chaca.app" ``` 然后再次打开应用。 ## 使用方法 ### URL 扫描 1. 输入目标 URL 2. 选择 **Passive**(被动)或 **Full**(全量)扫描 3. 查看仪表盘 — 评分、漏洞、目标情报 4. 打开发现项查看证据、修复建议、CWE 参考 5. 导出为 JSON、CSV、SARIF 或 PDF ### 本地文件夹扫描 (v0.6) 1. 点击 **SCAN FOLDER** 并选择一个项目目录 2. Chaca 扫描:Secrets(AWS、GitHub、Stripe 等)、暴露的配置文件(`.env`、CI、K8s)以及端点模式(Express、Next.js、FastAPI) 3. 所有扫描仅在本地进行;不会有任何内容离开您的设备 4. 结果显示在同一个仪表盘中;像往常一样导出 ## 项目结构 ``` src/ # React frontend ├── components/ │ ├── dashboard/ # Scan results, charts, target intelligence │ ├── layout/ # App shell, sidebar, header │ ├── settings/ # Settings page and controls │ └── ui/ # Radix-based primitives ├── store/ # Zustand (scan state, settings) └── utils/ # Export helpers src-tauri/ # Rust backend └── src/ ├── scanner/ │ ├── engine.rs # Scan orchestrator │ ├── crawler.rs # URL discovery │ ├── folder_scanner.rs # Local folder scan (secrets, config, endpoints) │ ├── passive.rs # Passive checks │ ├── active.rs # Active tests │ ├── cms.rs # CMS detection │ ├── recon.rs # Target intelligence │ └── rules/ # api_exposure, data_exposure, info_disclosure, │ # exposed_services, vuln_db └── lib.rs # Tauri commands & data structures ``` ## 作者 **Aris Setiawan** - [madebyaris.com](https://madebyaris.com) - [GitHub @madebyaris](https://github.com/madebyaris) - [X @arisberikut](https://x.com/arisberikut)

开源软件。请负责任地使用。

标签:API安全, DInvoke, JSON输出, OWASP Top 10, React 19, Rust, SARIF, Snort++, Talos规则, Tauri 2, Web安全, 主动扫描, 加密, 可视化界面, 威胁情报, 密码管理, 开发者工具, 插件系统, 桌面应用, 漏洞扫描器, 目标情报, 网络安全, 网络流量审计, 蓝队分析, 被动扫描, 通知系统, 隐私保护