Skip to content

Katana

Purpose

Katana crawls WebApp assets and enriches WebApp metadata with discovered paths and parameters.

Plugin Information

Plugin ID: katana

Category: Web Discovery

Plugin Type: crawler

Execution: active CLI crawler

Default State: enabled

Default Profiles:

  • deep
  • web_discovery

Input Scope

Accepted asset types:

  • webapp

Required metadata:

  • None

Produces targets:

  • A temporary URL list derived from WebApp values and passed with -list.

Output

Creates assets:

  • webapp

Creates vulnerabilities:

  • None

May enrich:

  • WebApp assets keyed by origin, with parent URL, scheme, host, port, and path/parameter data in metadata.web.

Metadata:

  • parent_url: source URL from Katana output.
  • paths: discovered path values stored on the WebApp.
  • parameters: discovered query parameter names stored on the WebApp.
  • scheme: parsed URL scheme.
  • host: parsed hostname.
  • port: parsed or inferred port.
  • source: katana.

Canonical observed state:

  • WebApp asset metadata.asset_info.paths.

Paths are normalized, deduplicated, and capped. Phase 4C keeps path observations merge-only because a crawl can be incomplete due to depth, duration, scope, and filtering settings. Katana does not remove previously observed paths unless a future producer explicitly emits authoritative replacement semantics. Path observations do not require HTTPX output.

Graph Relations

The worker may derive a related_to relationship when parent_url matches an existing WebApp and Katana discovers a distinct WebApp origin:

webapp -> related_to -> webapp

Files / Artifacts

Produces:

  • None

Dependencies

Required binary: katana

Required installer entry: tools.katana

Command model:

katana -jsonl -silent -list <target-file>

Example Flow

webapp
  -> katana
webapp metadata

Notes

The parser accepts JSONL and plain URL lines. Discovered URLs normalize to WebApp origins; paths and query parameters are deduplicated into metadata.web rather than created as Assets.