TLS / Certificate
Versions (TLS 1.0/1.1 deprecated, TLS 1.3 missing), ciphers, expiry, hostname, signature, OCSP.
HTTP headers
HSTS (preload, includeSubDomains), CSP (unsafe-inline, wildcards, Trusted Types), COOP/COEP/CORP, HTTPS redirect, version disclosure.
Cookies
Secure, HttpOnly, SameSite, __Host-/__Secure- prefixes on session cookies.
Path exposure
.env, .git, dumps, logs, dependency lockfiles (composer.lock, package-lock.json, yarn.lock, pnpm-lock.yaml — exact pinned versions enable precise CVE targeting), OIDC discovery (/.well-known/openid-configuration), healthchecks (/actuator/health, /readyz), security.txt presence.
Sensitive file discovery
Catches leaks the ExposureProbe misses because they use unpredictable names (dump_2026_xyz.sql, instance_db_hash.sql.gz). Detects open directory listing (Apache/nginx/IIS/Caddy autoindex) on 18 common backup paths and cross-references HTML/robots.txt/sitemap.xml for links with sensitive extensions. Validates via fingerprint (SQL keywords, gzip/zip/SQLite magic bytes, KEY=value format in .env).
JS Bundle
Secrets in bundle, public source maps, vulnerable libs (jQuery, Bootstrap, Vue 2, Moment.js), missing SRI, mixed content, CSRF in POST forms.
Source Leak
PEM keys in HTML (CRITICAL), connection strings with credentials (CRITICAL), credentials in HTML comments (HIGH), RFC 1918 IPs in inline scripts (MEDIUM). Filters placeholders.
Error page
Stack trace exposed on 404/500: Laravel/Whoops, Symfony, Django, Rails, ASP.NET, Express.
WordPress
Version, plugins (wordlist 250+, 100/scan), themes, XML-RPC, user enum, debug.log. CVE matching via Wordfence Intelligence — 100k+ vulns with CVSS, daily sync. Automatic EPSS + CISA KEV enrichment.
Multi-CMS
Drupal (exposed CHANGELOG, settings.php), Joomla! (XML manifest, /administrator/), Magento (/magento_version, default admin path). CMS-specific checks.
Malware Scan
Crawl of up to 10 pages. Detects obfuscated JS (eval/atob, Dean Edwards packer), hidden spam content, external iframes, forms with action hijacking, User-Agent cloaking. Cross-references URLs against URLhaus + OpenPhish (~300k entries, daily sync).
API Surface
Exposed OpenAPI/Swagger, enabled GraphQL introspection, field suggestions.
GraphQL / JWT
Exposed GraphQL Playground, JWTs in body/cookie with alg:none (CRITICAL), long expiry, sensitive claims.
Cloud Storage
Detects S3, GCS and Azure Blob buckets referenced in the HTML. Tests public listing (CRITICAL) or records as INFO if private.
CORS
Wildcard with credentials, Origin reflection, null origin.
HTTP methods
TRACE enabled, sensitive verbs (PUT/DELETE without authentication).
Active XST confirmation
ACTIVE check behind the authorization gate: sends TRACE/TRACK with a unique token in a header and confirms Cross-Site Tracing when the server echoes the token back (MEDIUM — proof, not just "declared"). Non-destructive, narrow scope.
Open redirect
next, redirect, return parameters — confirmed by the parsed host in the response.
Robots / Sitemap
Sensitive paths declared (admin, internal, backup) in /robots.txt and /sitemap.xml.
WAF Detection
WAF/CDN fingerprint via headers, cookies and body (Cloudflare, Sucuri, Imperva, Akamai, CloudFront, Fastly, Vercel, Azure, F5, Wordfence, ModSecurity). Shows the scanner IP for allowlisting.
Directory Discovery
Parallel sweep of ~40 common paths (admin panels, phpMyAdmin, debug panels — Horizon, Telescope, Pulse, Debugbar, Clockwork —, backups, uploads, config, logs). An OPEN debug panel (HTTP 200) escalates to CRITICAL: queue dashboards render queued job payloads — channel tokens, webhooks, recipient PII; present but protected (403) stays HIGH. Soft-404 detection via canary. Gated by authorization.
Tech Disclosure
Software versions exposed in HTTP headers (Server, X-Powered-By, X-AspNet-Version) and meta generator, enabling targeting by a specific CVE.
Host Header Injection
Reflection of X-Forwarded-Host and X-Original-Host in the body or Location. Detects the password-reset poisoning and cache-poisoning vector (HIGH).
Internal Network Leak
Private RFC 1918 IPs (10.x, 172.16–31.x, 192.168.x, 127.x) and internal hostnames (.internal, .corp, .lan) in HTTP headers — reveals infra topology to the attacker.
Form Password
Forms with input[type=password] submitted over HTTP (CRITICAL — cleartext password) or to an external domain (HIGH — credential harvesting).
Caching Security
Responses with Set-Cookie without Cache-Control: no-store/private (MEDIUM) and evidence of a session served from a shared cache via the Age header (HIGH). RFC 7234.
Security.txt Quality
Validates security.txt per RFC 9116: mandatory Contact (HIGH), mandatory Expires (MEDIUM), expired record (MEDIUM) or valid for more than 1 year (LOW).