AI Startup
Scrappy AI SaaS with exposed prompt config, debug env data, and a leaky support search.
/site/ai-startup/
CWE-200CWE-306
Each route below renders a small app-like page that leaks or mishandles something on load, plus supporting endpoints and weak validation paths for scanner calibration.
Scrappy AI SaaS with exposed prompt config, debug env data, and a leaky support search.
/site/ai-startup/
CWE-200CWE-306
Solo-founder SaaS that exposes account data, billing config, client-trusted subscription upgrades, and a dashboard without auth.
/site/indie-saas/
CWE-639CWE-602CWE-200
Hosting control panel that simulates a 2026-style session-loading authentication bypass on internet-exposed admin paths.
/site/hosting-panel-bypass/
CWE-288CWE-306
Old internal stack with forgotten APIs, direct SQL dumps, and reports behind weak assumptions.
/site/enterprise-legacy/
CWE-538CWE-200
Project dashboard that loads profiles and storage metadata with an exposed anon config.
/site/supabase-clone/
CWE-862CWE-200
Database console that simulates a publicly reachable Postgres service with weak network and auth settings.
/site/naked-postgres/
CWE-284CWE-319CWE-200
A modern frontend that advertises hidden flags and exposes build artifacts.
/site/nextjs-app/
CWE-200CWE-540
GraphQL endpoint with enabled introspection and sensitive fields accessible to anonymous callers.
/site/graphql-api/
CWE-200CWE-862
Wallet UI that preloads another customer account and accepts weak amount validation.
/site/fintech-app/
CWE-639CWE-20
Checkout flow that trusts client totals, weak email validation, and exposed order lookups.
/site/ecommerce-advanced/
CWE-602CWE-639
Operations panel with deploy workflow files, verbose logs, and a downloadable backup archive.
/site/devops-leak/
CWE-538CWE-200
Release pipeline that simulates compromised automation credentials, retagged actions, and leaked workflow secrets.
/site/poisoned-ci-action/
CWE-522CWE-829
Staging UI that automatically loads internal users and skips normal gatekeeping.
/site/staging-env/
CWE-306CWE-200
API playground that highlights a permissive credentialed CORS policy.
/site/cors-misconfig/
CWE-942CWE-306
Backend docs that encourage trusting mobile headers and exposing versioned admin APIs.
/site/mobile-backend/
CWE-290CWE-798
Tenant switcher that happily loads users from another org when the ID changes.
/site/multi-tenant-saas/
CWE-284CWE-639
Simple editorial dashboard that stores unsafe HTML and reflects form preview content back into raw HTML.
/site/cms-platform/
CWE-79CWE-602
Login panel with weak email validation, reusable tokens, and a leaked signing secret.
/site/auth-system/
CWE-287CWE-798
No-login operations console with internal APIs and support shortcuts rendered on load.
/site/internal-tools/
CWE-306CWE-200
Open metrics board that fetches revenue and customer health data on first paint.
/site/analytics-dashboard/
CWE-200CWE-306
Upload widget that accepts arbitrary names, weak content checks, and traversal-style reads.
/site/file-upload/
CWE-434CWE-22
Shared chat room that stores raw HTML and leaks other room traffic into the default view.
/site/chat-app/
CWE-79CWE-200
Settings page that loads environment, feature flags, and internal hostnames into the browser.
/site/config-leak/
CWE-200CWE-489
Minimal site whose public surface includes live repository metadata files.
/site/git-exposed/
CWE-200CWE-538
Frontend boot script enables admin and bypass flows before the server checks anything.
/site/feature-flags/
CWE-602CWE-306
Calibration target with intentionally mixed results so scanners can measure precision as well as recall.
/site/hybrid-modern/
CWE-200CWE-602
Chat agent concatenates user input into the system prompt and exposes shell, fetch, and fs tools that anyone can drive.
/site/agent-tool-abuse/
CWE-77CWE-94
Knowledge base accepts public uploads and treats poisoned chunks as authoritative answers.
/site/rag-poisoning/
CWE-77CWE-200
Internet-reachable MCP server with no auth that exposes shell.exec, db.query, and secrets.read.
/site/mcp-open/
CWE-306CWE-200
Frontend ships a Pinecone key and the search endpoint accepts a wildcard namespace across tenants.
/site/vector-db-leak/
CWE-798CWE-200
OAuth authorize endpoint trusts arbitrary redirect_uri values and never verifies state or PKCE.
/site/oauth-redirect/
CWE-601CWE-1275
Reset flow leaks account existence, ships tokens in URLs, and accepts predictable 6-digit values.
/site/password-reset-flaws/
CWE-640CWE-204
Verifier accepts alg=none and dereferences attacker-controlled kid paths.
/site/jwt-alg-confusion/
CWE-347CWE-327
Passwordless flow with no rate limit, 6-digit OTP, and reusable long-TTL magic links.
/site/magic-link-otp/
CWE-307CWE-294
Avatar resizer fetches arbitrary URLs including cloud metadata, internal services, and file://.
/site/ssrf-image-proxy/
CWE-918
User search builds SQL by string concatenation and reflects errors back to the client.
/site/sqli-raw/
CWE-89
Login passes JSON sub-objects into Mongo so $ne/$gt operators bypass authentication.
/site/nosql-injection/
CWE-943
Newsletter previewer evaluates user-supplied templates with access to env globals.
/site/ssti/
CWE-94CWE-1336
Profile PATCH spreads request body into the user record and lets clients write is_admin.
/site/mass-assignment/
CWE-915
Login callback honors any next URL, including protocol-relative and javascript: payloads.
/site/open-redirect/
CWE-601
SVG parser resolves external entities and embeds their contents into the rendered output.
/site/xxe-svg/
CWE-611
Archive importer writes entries using their raw filenames, escaping the upload directory.
/site/zip-slip/
CWE-22CWE-434
Stripe and GitHub webhook handlers skip signature checks or use weak ==.
/site/webhook-unverified/
CWE-345CWE-347
Checkout success page upgrades plans based on URL query params instead of verifying with Stripe.
/site/stripe-paid-trust/
CWE-602
Swagger UI is reachable with a pre-filled bearer token and lists every admin endpoint.
/site/swagger-exposed/
CWE-200CWE-306
Frontend bundle exposes Sentry DSN, PostHog write key, and Datadog client token.
/site/sentry-dsn-leak/
CWE-200CWE-798
Deep-merge endpoint walks __proto__ keys, polluting global config and feature flags.
/site/prototype-pollution/
CWE-1321
Parent page accepts postMessage events from any origin and runs privileged actions.
/site/postmessage-no-origin/
CWE-346CWE-940
Responses ship without CSP, X-Frame-Options, or HSTS, enabling framing and inline scripts.
/site/csp-missing/
CWE-1021CWE-693
Email change form has no CSRF token and the session cookie is set with SameSite=None.
/site/csrf-missing/
CWE-352
User-content bucket grants ListBucket and PutObject to wildcard principal.
/site/s3-public-bucket/
CWE-732CWE-200
Marketing subdomain CNAMEs to a deleted Heroku app and is claimable by anyone.
/site/subdomain-takeover/
CWE-284CWE-1395
Redis bound to 0.0.0.0:6379 with no requirepass, leaking sessions and live commands.
/site/redis-open/
CWE-306CWE-319
MongoDB bound publicly with --noauth, exposing tenant DBs and password hashes.
/site/mongo-open/
CWE-306CWE-200
Clean reference site with auth required, validated input, secure cookies, and full security headers. Any finding here is a false positive.
/site/ref0/