Garden: 登录后的安全验证工作流

CLI-first 的内部工具,把授权场景下的登录、盘点、检查、取证、复测串成一条可重复、可审计的管线。

View on GitHub
Login-driven

登录态驱动

HTTP / Playwright 适配器执行真实登录,创建可复用的 AuthSession,覆盖匿名扫瞄器无法进入的 OA、ERP、管理后台。

End-to-end

完整工作流闭环

target → credential → login → session → inventory → checks → findings → evidence → retest → export,11 个 CLI 子命令组全链路贯通。

Safe by default

安全护栏默认开启

默认仅允许本地目标、不做破坏性检查、secret 不直接存储、evidence 默认脱敏、所有关键操作记审计日志。

Pipeline

工作流

10 个阶段,每个阶段产出结构化数据,不是纯文本日志。

target credential login session inventory checks findings evidence retest export
对比

Garden 与主流安全工具的定位差异

Garden vs Burp / ZAP

Burp/ZAP 强在代理抓包、手工测试、主动扫描。Garden 补的是登录编排、结构化 Inventory、Finding 生命周期、证据脱敏、复测与报告导出。

Garden vs Nuclei

Nuclei 擅长匿名协议级模板扫描。Garden 专注登录后的业务路径验证,产出面向团队协作的结构化结果。

Garden vs 流量录制工具

录制工具解决"流量怎么拿"。Garden 解决"拿到之后怎么办"——把流量变成 inventory、findings、证据、复测对象。

Garden vs API 权限测试框架

API 越权测试只看接口权限。Garden 同时覆盖浏览器态、页面态、接口态和登录后的完整业务路径。

Constraints

设计约束

Quick start

5 分钟开始

$ git clone https://github.com/Moxxkidd/Garden.git
$ cd garden
$ pip install -e '.[dev]'
$ playwright install chromium
$ cp .env.example .env

$ gardenctl target add --name demo --base-url http://127.0.0.1:8080 --type web --owner appsec
$ gardenctl cred add --target-id 1 --name admin --role admin \
    --auth-type password --username admin@local --secret-ref env://PASS --login-config-path login.yaml
$ gardenctl login test --target demo --profile admin
$ gardenctl inventory build --target demo --profile admin
$ gardenctl checks run --inventory 1
$ gardenctl findings list
$ gardenctl findings export --format md