All 31 flags, all accepted values, all combinations. Single-page cheat sheet — keep it open while you hunt.
| Flag | Type | Description |
|---|---|---|
--wizard |
bool | Launch the interactive guided session (menus for everything) |
-d DORK, --dork |
str | Single dork string or path to a .txt file (one dork per line, # = comment) |
-u URL, --url |
str | Single URL — direct SQL injection test, no search performed |
-f FILE, --file |
str | Load saved DorkEye results (.json or .txt) for re-processing |
--dg[=CATEGORY] |
str | Activate Dork Generator; value = category name or all (default if omitted) |
--create-config |
bool | Write sample dorkeye_config.yaml to disk and exit |
| Flag | Default | Description |
|---|---|---|
-o FILE, --output |
report_YYYYMMDD_HHMMSS.html |
Output file — extension determines format (see table below) |
-c N, --count |
50 |
Max results per dork from DuckDuckGo |
All output files are saved inside the Dump/ folder (auto-created).
| Flag | Description |
|---|---|
--config FILE |
Load a custom YAML or JSON configuration (merged with defaults) |
--create-config |
Generate sample dorkeye_config.yaml and exit |
| Flag | Default | Description |
|---|---|---|
--sqli |
off | Enable multi-method SQL injection detection on every result |
--stealth |
off | Stealth mode — 1.4×–1.8× longer delays, extended rate-limit pauses |
--no-analyze |
off | Skip HEAD-request file analysis (no size / content-type / status) |
--no-fingerprint |
off | Disable HTTP fingerprint rotation (falls back to basic UA rotation) |
--blacklist EXT… |
none | Space-separated extensions to exclude (e.g. .jpg .png .gif) |
--whitelist EXT… |
none | Space-separated extensions — only these are kept |
| Flag | Default | Description |
|---|---|---|
--dg[=CATEGORY] |
all |
Category to generate (all = every category in template) |
--dg-max N |
800 |
Max dork combinations per template file |
--mode MODE |
soft |
Generation intensity: soft / medium / aggressive |
--templates=FILE |
dorks_templates.yaml |
Template file inside Templates/; all = every .yaml in the folder |
⚠ --templates requires = syntax: --templates=file.yaml ✓ — --templates file.yaml ✗
| Flag | Default | Description |
|---|---|---|
--analyze |
off | Run the full analysis pipeline (triage → secrets → report) |
--analyze-fetch |
off | Download page content for HIGH / CRITICAL results |
--analyze-fetch-max N |
20 |
Max pages to download during analysis |
--analyze-fmt FORMAT |
html |
Analysis report format: html / md / json / txt |
--analyze-out FILE |
auto | Custom path for the analysis report |
Requires dorkeye_agents.py in Tools/. If missing, --analyze and --crawl are silently disabled.
| Flag | Default | Description |
|---|---|---|
--crawl |
off | Enable multi-round adaptive crawl after the initial search |
--crawl-rounds N |
4 |
Maximum refinement rounds |
--crawl-max N |
300 |
Total result cap across all rounds |
--crawl-per-dork N |
20 |
DuckDuckGo results per generated dork per round |
--crawl-stealth |
off | Longer delays between crawl searches |
--crawl-report |
off | Generate a dedicated crawl HTML report |
--crawl-out FILE |
auto | Custom path for the crawl report |
The crawler analyzes initial results (domains, paths, technologies, extensions), generates refined dorks, searches again, and repeats until diminishing returns.
--mode| Value | Behaviour | Footprint |
|---|---|---|
soft |
Low-risk dorks only — minimal variable expansion | Minimal |
medium |
Soft + medium coverage patterns | Moderate |
aggressive |
All dork combinations — maximum variable expansion | Maximum |
-o / --output — format by extension| Extension | Format | Notes |
|---|---|---|
.html |
Interactive dark-theme report | Matrix rain, filter bar, search panel, export panels (TXT/JSON/CSV), file browser, ⓘ detail popup, WAF badges |
.json |
Structured JSON | Full metadata + statistics block. Triggers interactive analysis prompt |
.csv |
Spreadsheet CSV | All columns: url, title, snippet, dork, timestamp, extension, category, file_size, content_type, accessible, status_code, sqli_vulnerable, sqli_confidence, waf_detected |
.txt |
Numbered plain text | Per-result details (title, category, SQLi status, WAF) |
If no extension is provided, .json is appended automatically.
--analyze-fmt| Value | Output |
|---|---|
html |
Full dark-theme HTML with triage, secrets, credentials sections |
md |
Markdown with tables |
json |
Structured JSON (pii, emails, subdomains, cve_dorks keys) |
txt |
Plain text summary |
Reported in results and HTML reports:
| Level | Meaning |
|---|---|
NONE |
No injection detected |
LOW |
Weak signal (e.g. UNION col-mismatch only) |
MEDIUM |
Boolean blind differential or time-based confirmed |
HIGH |
DB error signature matched or strong UNION evidence |
CRITICAL |
Multiple methods confirmed across parameters (score ≥ 5) |
Detected automatically during SQLi testing. Supported signatures:
Cloudflare · ModSecurity · Wordfence · Sucuri · Imperva · Akamai · F5 BigIP · Barracuda · FortiWeb · AWS WAF · DenyAll · Reblaze · generic (403/406/419/429 with short body)
--wizard ←→ -d ←→ -u ←→ -f ←→ --dg ←→ --create-config
Only one input source per invocation.
-u constraints--sqli is auto-enabled even if not specified--analyze, --crawl, -d, -f, --dg-o if provided--dg constraints--dg value only — --dg=sqli ✓, two --dg flags ✗--templates=FILE syntax (with =, no space)-c / --count is ignored — the generator uses a fixed 50 results per dork--analyze constraints--analyze-fetch-max only takes effect when --analyze-fetch is also set--analyze-out requires --analyze to be active (or .json output)dorkeye_agents.py in Tools/ — otherwise silently skipped.json output special behaviourWhen -o ends in .json and --analyze is not explicitly set, DorkEye displays an interactive prompt:
Run analysis on results? [y/N]:
Use --analyze to force yes and skip the prompt (useful for scripting).
-f / --file behaviourDump/.json supports both {"results": [...]} and raw [...] formats.txt reads one URL per line (lines starting with http)--sqli, --analyze, --crawl| Action | Effect |
|---|---|
| Single Ctrl+C | Skip current dork / task → continue to next |
| Double Ctrl+C (within 1.5s) | Exit immediately → save partial results |
Works during: searches, file analysis, SQLi testing, inter-dork delays, analysis, crawl.
Auto-detected — no flags needed. When running inside Termux:
Platform: Android / Termux ⚡ battery-saver active# ── WIZARD ───────────────────────────────────────────────────────────────
python dorkeye.py --wizard
# ── DORK SEARCH ──────────────────────────────────────────────────────────
python dorkeye.py -d "site:example.com filetype:pdf" -o results.html
python dorkeye.py -d dorks.txt -c 100 -o results.json
python dorkeye.py -d "inurl:.php?id=" --sqli --stealth -o results.json
python dorkeye.py -d dorks.txt --analyze --analyze-fetch -o results.json
python dorkeye.py -d dorks.txt --sqli --analyze --crawl -o results.json # full pipeline
# ── DORK GENERATOR ───────────────────────────────────────────────────────
python dorkeye.py --dg=all
python dorkeye.py --dg=sqli --mode=medium --sqli -o results.json
python dorkeye.py --dg=all --mode=aggressive --dg-max=10000 -o results.json
python dorkeye.py --dg=sqli --sqli --analyze --analyze-fetch -o results.json
# ── DIRECT URL TEST ──────────────────────────────────────────────────────
python dorkeye.py -u "https://target.com/page.php?id=1"
python dorkeye.py -u "https://target.com/page.php?id=1" --sqli --stealth -o out.json
# ── FILE RE-PROCESSING ──────────────────────────────────────────────────
python dorkeye.py -f Dump/results.json --sqli -o retest.json
python dorkeye.py -f Dump/results.json --analyze --analyze-fetch -o reanalysis.json
python dorkeye.py -f Dump/results.json --sqli --analyze --crawl -o full.json
# ── FULL PIPELINE (generate + search + detect + analyze + crawl) ─────────
python dorkeye.py \
--dg=sqli \
--mode=aggressive \
--sqli \
--stealth \
-o full.json \
--analyze \
--analyze-fetch \
--analyze-fetch-max=100 \
--crawl \
--crawl-rounds=6 \
--crawl-stealth \
--crawl-report
# ── STANDALONE AGENTS (separate script) ──────────────────────────────────
python dorkeye_analyze.py Dump/results.json --fetch --fmt=html