Part II · Using URLInsane
The working manual. Every command in this part was run against the binary that built this book; where output is trimmed for width it says so, and where behaviour is designed but not yet wired up it is marked with a red callout.
The shape of a scan never changes, whatever the target:
target string
│
├─ decompose ──▶ the entities the target is made of
│ (an email is a local part, a domain, and an address)
│
├─ vary ───────▶ plausible neighbours of each of those names
│ (27 algorithms, keyboard- and language-aware)
│
├─ observe ────▶ what actually exists out there
│ (DNS, WHOIS, registries, reverse lookups)
│
└─ analyse ────▶ which findings are worth your attention
(risk, campaign clustering, dependency confusion)
Chapters:
- Installing — binaries,
go install, building from source. - Your first scan — reading the default table, and the three flags that matter on day one.
- Targets and scope — how a target string is classified, and how to narrow what gets varied without changing how the target is read.
- Algorithms — all 27, what each one models, and how to pick a useful subset.
- Observation and depth — operators, what
--depthactually counts, and why “absent” and “unknown” are different answers. - Reading the report — filters, formats, risk levels,
--save. - Automation — exit codes,
--fail-on, JSON and Graphviz pipelines, running it in CI. - Datasets and languages — where the vocabulary and keyboard data come from, and how to add a language.