| Crates.io | corrode-scanner |
| lib.rs | corrode-scanner |
| version | 0.1.0 |
| created_at | 2026-01-06 05:24:14.721707+00 |
| updated_at | 2026-01-06 05:24:14.721707+00 |
| description | Passive web reconnaissance tool for extracting secrets, credentials, and security data |
| homepage | https://github.com/ul0gic/corrode |
| repository | https://github.com/ul0gic/corrode |
| max_upload_size | |
| id | 2025199 |
| size | 222,624 |
Passive reconnaissance tool for extracting secrets, credentials, and security-relevant data from web applications
Built with Rust and chromiumoxide for fast, headless scanning. Corrode performs passive analysis onlyβno active exploitation or fuzzing. Use its output to inform manual penetration testing and security assessments.
src/
βββ api/ # API endpoint discovery (passive extraction from JS)
βββ cli.rs # CLI definitions
βββ config.rs # Config normalization
βββ detectors/ # Secrets, DOM, JS (and AST) collectors
βββ network/ # Network monitor
βββ reporting/ # JSON/Markdown report writers
βββ scanner/ # Browser orchestration + workflow
βββ types.rs # Shared data structures
βββ main.rs # Entry point
fixtures/ # Static fixture pages for local testing
corrode-output/ # Default output directory (per scan)
graph TD
A[URL Input] --> B[Headless Chrome/Chromium]
B --> C[Network Monitor]
B --> D[DOM/Storage Extractor]
B --> E[Script + AST Scanner]
E --> G[Secret Scanner]
D --> H[Tech Fingerprinter]
C --> I[Security Analysis]
G --> Results[Reporting JSON + MD]
C --> Results
D --> Results
H --> Results
I --> Results
classDef purple fill:#e9d5ff,stroke:#7c3aed,stroke-width:2px,color:#000
class A,B,C,D,E,F,G,H,I,Results purple
graph TD
U[User Input] --> CLI[CLI Parser]
CLI --> B[Headless Browser]
B --> N[Network Tracking]
B --> S[HTML/Script Extraction]
S --> SC[Secret Scanner]
N --> SEC[Security Analysis]
SC --> R[Reporter]
SEC --> R
N --> R
R --> OUT[JSON + Markdown Output]
classDef green fill:#d1fae5,stroke:#059669,stroke-width:2px,color:#000
class U,CLI,B,N,S,SC,SEC,R,OUT green
graph TD
S1[HTML Content] --> P[Pattern Matching]
S2[Inline Scripts] --> P
S3[External Scripts] --> P
S4[Hidden Inputs] --> P
S5[localStorage/sessionStorage] --> P
S6[Window Objects] --> P
S7[Cookies] --> P
P --> D1[Regex Patterns]
P --> D2[JWT Decoder]
P --> D3[Base64 Decoder]
D1 --> R[Extract & Classify]
D2 --> R
D3 --> R
R --> F1[Secret Findings]
R --> F2[Source Location]
R --> F3[Severity Level]
classDef blue fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#000
class S1,S2,S3,S4,S5,S6,S7,P,D1,D2,D3,R,F1,F2,F3 blue
cargo install corrode-scanner
For local development (from source):
git clone https://github.com/ul0gic/corrode.git
cd corrode
cargo build --release
./target/release/corrode --url https://example.com
| Requirement | Details |
|---|---|
| Rust | 1.70+ (install from rustup.rs) |
| Chrome/Chromium | Installed and discoverable; auto-detected, or override with --chrome-bin/CHROME_BIN |
| OS | Linux/macOS |
| Flag / Option | Description | Default | Required |
|---|---|---|---|
--url <URL> |
Target URL to scan | β | β |
-o, --output <DIR> |
Output directory (<output>/<domain>/scan_result.json, REPORT.md) |
corrode-output |
|
--chrome-bin <PATH> |
Path to Chrome/Chromium binary (overrides auto-detect) | auto-detect | |
-t, --timeout <s> |
Page-load timeout in seconds | 30 |
|
-v, --verbose |
Verbose progress + findings | off | |
--format <fmt> |
Output format: json, md, or both |
both |
|
-h, --help |
Show help | β | |
-V, --version |
Show version | β |
Chrome/Chromium is auto-detected via PATH and common install locations. Override with --chrome-bin <path> or CHROME_BIN/CHROMIUM_BIN if you have a nonstandard install.
./target/release/corrode --url https://example.com
./target/release/corrode --url https://example.com -o recon-$(date +%Y%m%d)
./target/release/corrode --url https://example.com -t 60 -v
./target/release/corrode --url https://example.com --chrome-bin "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
Corrode detects 30+ types of secrets and credentials:
Corrode automatically identifies 40+ technologies:
Frameworks: React, Vue.js, Angular, Svelte, Solid.js, Next.js, Nuxt.js, Remix, Gatsby Backend-as-a-Service: Supabase, Firebase, Appwrite, AWS Cognito Authentication: Auth0, Clerk, Okta Payment: Stripe, PayPal, Square, Braintree Analytics: Google Analytics, Mixpanel, Segment, Amplitude, HubSpot CMS: WordPress, Drupal, Webflow, Contentful, Sanity Libraries: jQuery, Bootstrap, Tailwind CSS, Material-UI State Management: Redux, MobX, Zustand, Apollo Client, Relay
IMPORTANT: For Authorized Security Testing Only
This tool is designed for legitimate security research, penetration testing, and vulnerability assessment. By using Corrode, you agree to the following:
We are NOT responsible for:
Legal Notice: Unauthorized access to computer systems is illegal under laws such as the Computer Fraud and Abuse Act (CFAA) in the United States and similar legislation in other countries. Always obtain proper authorization before testing.
Corrode is provided by ul0gic on an "as-is" basis with no warranty. You assume all responsibility for how you use the tool.
Corrode is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for the complete terms. Highlights:
Read CONTRIBUTING.md before opening a PR. Key points:
Questions about contributions? Open an issue or ping @ul0gic on GitHub.
For questions, issues, or security concerns, please open an issue on GitHub.