Home / Documentation

Command reference

SauronSec’s options, profiles and recipes. Syntax generated from --help — no invented option. For the per-vulnerability module list, see the coverage.

Basic syntax

Every command follows this template. -y confirms you are authorized to test the target (mandatory), -o names the report files.

$ python main.py -t <URL> [options] -y -o <report>

General options

OptionRoleExample
-t, --target URLSingle target-t https://target.com/
--targets FILE|listMultiple targets (1 report/target + summary)--targets targets.txt
-p, --profile NAMEScan profile (see profiles)-p ultra
-m, --modules k1,k2Specific modules (overrides the profile)-m sqli,xss
--threads NWorker threads--threads 40
--rps NMax rate (requests/second)--rps 40
--risk 0-100Aggressiveness (wordlists + probes)--risk 100
--max-time MINTime budget (0 = unlimited)--max-time 0
--depth quick|normal|deep|maxCrawl depth--depth max
--no-crawlTest only the target URL--no-crawl
--param-fuzzForce hidden-parameter fuzzing--param-fuzz
--waf-checkOnly detect a WAF then quit--waf-check
--resume [FILE]Resume a scan after interruption--resume scan.ckpt
--stealthStealth mode (low rate + jitter)--stealth
--proxy URLProxy (requests + browser)--proxy http://127.0.0.1:8080
--browserRuntime browser analysis (real DOM-XSS, SPA)--browser
-y, --yesConfirm authorization (mandatory)-y

Profiles -p

A profile = a set of modules + default settings. From the stealthiest to the most aggressive.

ProfileUse
passiveStealthiest: recon + headers, no aggressive injection.
defaultBalanced (standard detection).
deepThorough: deep crawl + parameter fuzzing.
reconReconnaissance/mapping (subdomains, DNS, ports, WAF, tech…).
defaceDefacement-focused (WebDAV, upload, exposed files, webshell…).
apiAPI-oriented (specs, GraphQL, JSON, endpoints).
maxAlmost everything, 150-page crawl.
ultraEverything, full power: risk 100, max rate, all probes.

Authentication (logged-in scan)

Essential for the private area (IDOR, access control). Easiest: paste a “Copy as cURL” of a logged-in request from your DevTools. The session is monitored and reconnected automatically.

$ python main.py -t https://target.com/ -p ultra \ --auth-curl "curl 'https://target.com/app' -H 'Cookie: sid=ABC'" -y -o report

To confirm cross-account IDOR, provide a second account via --idor-cookie / --idor-bearer.

Verification & exploitation

Anti-false-positive verification is on by default: every flaw is safely and boundedly replayed. --sqlmap confirms a SQLi with an independent tool (no extraction). --exploit extracts bounded, masked proof — written authorization required.

--verify--no-verify--sqlmap--nuclei--exploit

Reports & output

Available formats: HTML (readable), PDF (to hand over), JSON (tools/diff), SARIF (CI, GitHub, DefectDojo).

$ python main.py -t https://target.com/ -p ultra --format all -y -o client_report

Ready-to-use recipes

Check for a WAF first (without scanning)

$ python main.py -t https://target.com/ --waf-check -y

Quick scan (surface only)

$ python main.py -t https://target.com/ --depth quick -y -o report

Balanced standard scan

$ python main.py -t https://target.com/ -p default -y -o report

Authenticated scan by cookie

$ python main.py -t https://target.com/ -p ultra --cookie "sid=ABC; csrf=XYZ" -y -o report

The most powerful (authorized target)

$ python main.py -t https://target.com/ -p ultra --browser --param-fuzz --max-time 0 --verify --nuclei --format all -y -o report

Stealth mode (low-and-slow)

$ python main.py -t https://target.com/ --stealth -y -o report

Through a proxy (Burp)

$ python main.py -t https://target.com/ -p deep --proxy http://127.0.0.1:8080 -y -o report
-y declares you are authorized to test the target. Only scan what you are allowed to test. --exploit = real exploitation → written authorization required. The scanner is detection-only by default: it proves the flaw without extracting anything.
Ready to scan without a shadow of doubt? Request an audit