-
Notifications
You must be signed in to change notification settings - Fork 0
Home
grave0x edited this page Jul 19, 2026
·
2 revisions
Rust API scanner. Point it at an API spec or a URL to scan.
rapiscm scan https://api.example.com
rapiscm spec ./openapi.json
rapiscm url https://example.com --crawl js --ghost
rapiscm capture https://example.com --extractcargo build --release
./install.sh # install to ~/.local/bin
cargo test # run tests
cargo clippy # lint| Doc | Description |
|---|---|
| Installation | Install from source, with browser features, via cargo |
| Build | Build modes, feature flags, CI, troubleshooting |
| Usage | Full CLI reference with examples |
| Features | All features, checks, output formats, module map |
| Architecture | Internal design, data flow, module deps |
| Contributing | Coding standards, PR process, testing |
| Roadmap | Future plans and known gaps |
| Changelog | Release history |
| ADRs | Architecture Decision Records |
| Command | Description |
|---|---|
rapiscm scan <target> |
Auto-detect: spec file or URL |
rapiscm spec <file> |
Scan from OpenAPI spec (JSON/YAML) |
rapiscm url <url> |
Scan a URL / API base URL |
rapiscm fuzz <url> |
Fuzz endpoints with a wordlist |
rapiscm corp <name> |
Discover domains for an organisation |
rapiscm session <file> |
Replay a recorded JSONL session |
rapiscm tasks |
Manage saved scan tasks |
rapiscm capture <url> |
Capture page as evidence (HTML + JS endpoints + screenshot) |
- Spec mode — parse OpenAPI 3.x, extract + scan endpoints
- URL mode — discover endpoints from HTML, JS, robots.txt, sitemaps, common API paths
-
JS bundle scanning —
--crawl jsdownloads & parses SPA bundles for API endpoints -
Ghost mode —
--ghoststealth scanning with UA rotation, jitter, header randomization, proxy rotation -
Browser JS eval —
--eval <js>runs custom JS in headless browser, extracts returned URLs - Fuzzing — wordlist-based fuzzing with match/filter by status, size, regex
- Security checks — security headers, CORS, auth enforcement, schema validation, tracker/analytics detection, cookie auditing (Secure/HttpOnly/SameSite/expiry)
-
Output formats — table (ANSI terminal), JSON, markdown, structured docs (
-o doc) -
Filter system — include/exclude by path, tag, method, status, expression (
tag:rest AND status:2xx) - Task system — persist, compare, export (MD/SARIF/HTML), rebuild, and resume scans
- Corporate discovery — discover owned domains via crt.sh, RDAP, favicon hash, ASN, Google CSE, Shodan
-
Browser discovery — headless Chrome/Firefox for JS-rendered SPAs (
--features browser) - Session replay — replay JSONL recordings with live probes and timing analytics
- Auth modes — bearer token, basic auth, custom header
-
Static report site —
--report <name>generates full HTML report site
-
cargo clippymust pass before commit -
cargo fmtbefore diff - Errors:
anyhow/thiserror, propagate with context - CLI:
clapderive macros - HTTP:
reqwestwith configurable timeouts - Minimise external deps
- Rust stable (≥ 1.80)
- OpenSSL dev libraries (
libssl-devon Debian,openssl-develon Fedora) - Optional: Chromium or Firefox + geckodriver (for browser discovery)
Powered by rapiscm