flowpatrol_surface

Surface scan — secrets, headers, paths, RLS, and screenshots.

What it does

flowpatrol_surface runs a comprehensive set of deterministic HTTP-based checks against your target URL and returns results in 2-5 minutes. No LLM, no authentication required, no browser crawl — just a fast, attacker-style black-box assessment focused on what's observable from outside the app.

Cost: 1 credit | Time: 2-5 min

Parameters

ParameterTypeRequiredDescription
target_urlstringYesThe URL of your deployed application

Example

Dashboard: Go to Scans → New Scan, enter your URL, and select Surface.

MCP: Ask your AI assistant:

Run a Flowpatrol surface scan on https://myapp.vercel.app

Checks performed

The surface scan covers ten domains. Each check shows up as its own row on the scan-detail page and animates live as it runs.

Authentication & login

  • Login bypass — common auth-ordering flaws
  • Default passwords — tries generic admin/test credentials to gate access to probes
  • Signup loopholes — open registration, mass-assignment on signup
  • 2FA / OTP bypass — null OTP, brute-force OTP, rate-limit bypass via forwarded-for
  • JWT securityalg:none, weak HMAC, missing exp
  • Audit log bypass — WAF / auth-logging header injection
  • Login gate skipped — Next.js CVE-2025-29927 middleware bypass

Access control

  • Single-user IDOR — numeric / UUID enumeration on discovered endpoints
  • Exposed admin panels — unauthenticated /admin, /internal, /settings variants
  • Debug-header backdoorsx-forwarded-user, x-debug, x-original-url style bypasses
  • Path traversal.env, .git, backup-file, config exposure
  • Webhook signature bypass — endpoints that accept unsigned requests

BaaS & cloud

  • Supabase RLS — detects the Supabase URL + anon key, tests whether common tables are readable, tests storage rules and edge-function exposure
  • Firebase security rules — RTDB read/write, Firestore collection access, Storage bucket rules
  • Cloud storage buckets — S3 / GCS / Azure / DigitalOcean buckets derived from domain and page content
  • Service key exposure — admin-level BaaS keys leaked client-side

AI surface

  • AI prompt injection — deterministic probes for obvious prompt-injection patterns
  • Exposed LLM endpoints — Ollama, Langflow, Superset and other self-hosted stacks
  • Unauthenticated MCP endpoints — MCP servers that accept tool calls without auth
  • AI config disclosure — leaked system prompts, tool lists, model metadata
  • Missing AI rate limits — endpoints that allow cost-abuse at no limit
  • Pre-auth RCE in AI stacks — known CVEs in AI-builder infrastructure

Injection attacks

  • SQL injection — deterministic sweep of query parameters and JSON bodies
  • Template injection (SSTI) — Jinja / Handlebars / EJS payload probes
  • Command injection — shell-metachar payloads on reflected inputs

Cross-site scripting

  • Reflected XSS — deterministic payload set against query parameters

Data exposure

  • API key leaks — page source and JS bundles
  • Credential leaks — passwords, tokens, bearer keys in responses
  • Exposed .env / .git / backups — SPA-aware so SPA catch-all 200s don't false-positive
  • Source map exposure.js.map reachability and content
  • Stack-trace leakage — error-page classifier across common frameworks
  • Secrets in public repos — GitHub code search for secrets referencing the target domain
  • Data over-exposure — APIs returning admin-only fields to anonymous users

Server & infrastructure

  • Known CVEs — framework-specific plus Langflow, Ollama, Superset pre-auth RCE
  • Outdated software — version fingerprints with known CVEs
  • CORS — permissive Access-Control-Allow-Origin with credentials
  • DNS hygiene — SPF, DMARC, DKIM records
  • Subdomain takeover — CT-log enumeration plus dangling-CNAME checks

Browser security

  • Content Security Policy — presence and strength
  • Security headers — HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy
  • Cookie flags — HttpOnly, Secure, SameSite
  • CSRF — token presence and origin checks
  • SRI — subresource integrity on third-party scripts
  • Compromised CDN detection — known-bad sources (polyfill.io class)
  • File upload — accepted content-types and executable-upload checks

Surface mode is target-agnostic. The scanner never assumes anything about your app's schema, seed data, or API contracts — every check is one a security researcher would run against a random SaaS app.

Response format

The surface scan returns a structured object with:

{
  "target": "https://myapp.vercel.app",
  "checks_run": 4,
  "issues_found": 3,
  "issues": [
    {
      "check": "js_secrets",
      "severity": "critical",
      "detail": "Supabase service_role key found in main.js"
    },
    {
      "check": "headers",
      "severity": "medium",
      "detail": "Missing Content-Security-Policy header"
    }
  ],
  "clean_checks": ["exposed_paths"]
}

Your AI assistant will format this into readable findings with fix suggestions.