Use when reviewing code that runs external programs — image or document conversion, PDF generation, archive handling, network diagnostics such as ping or nslookup, backup and maintenance scripts, virus scanning, git or cloud CLI wrappers — or when a request value reaches a shell string, or when asked to find command…
Use when request data becomes part of a filesystem path — a filename, document key, template name, download or attachment parameter, archive entry, log or export destination — or when reviewing hand-rolled file serving, and when asked to find path traversal, directory traversal, arbitrary file read or write, local…
Use when JavaScript or Node.js code recursively merges, clones, extends, or path-sets user-controllable objects — query and body parsers with nested key syntax, config merging, deep-copy helpers, option objects with optional fields — or when asked to find prototype pollution, proto injection, polluted inherited…
Use when reviewing code that checks a condition and then changes state in a separate step — redeeming coupons or gift cards, decrementing stock, transferring funds, enforcing per-user caps or rate limits, creating an object across several statements, or writing session, cache, and database state one field at a time …
Use when one or more websec detection skills have produced results files and a single consolidated, severity-ranked security report is needed, or when asked to summarise or prioritise security findings across classes.
Use when a repository ships reverse-proxy, load-balancer, CDN, gateway, or ingress configuration in front of an application, when a front hop terminates HTTP/2 and speaks HTTP/1 upstream, when handlers respond without reading the request body, or when asked whether front-end security controls, forwarded identity…
Use when a full security review of a web application codebase is wanted in one step, when asked to "scan", "audit", or "check everything" for vulnerabilities, or when a first pass over an unfamiliar codebase is needed before deciding where to look closer.
Use when reviewing a repository for credentials in source, configuration, environment files, infrastructure manifests or pipeline definitions, for keys and tokens shipped in front-end bundles, mobile builds, source maps, templates or served assets, or for values deleted from the working tree but still present in an…
Use when reviewing an application that talks to a relational database — raw SQL strings, concatenation or interpolation into query text, ORM raw escape hatches, dynamic ORDER BY or table names, search filters, report builders, login lookups — or when asked to find SQL injection, unsafe query construction, or "can this…
Use when the application fetches a URL, host, or address that came from a request — link previews, webhooks, avatar or image import, "import from URL", PDF or thumbnail rendering, feed readers, proxy endpoints, health checks — or when asked to find SSRF, server-side request forgery, cloud metadata credential theft, or…
Use when reviewing code that renders server-side templates from dynamic strings — a value concatenated into the template text, a template body or name taken from a request, a database column, or a CMS record, custom email and notification templates, user-editable themes — or when asked to find server-side template…
Use when a site sits behind a CDN, reverse proxy, or shared cache and serves authenticated pages — account, profile, settings, tokens, API keys — or when routing tolerates trailing path segments, matrix parameters, or encoded traversal, or when asked whether a victim's private page could end up in a shared cache and…
Use when a site sits behind a CDN, reverse proxy, or shared cache and its responses reflect request-derived values — forwarded host or scheme headers, cookies, query parameters — into HTML, script or stylesheet URLs, or redirects, or when cache-key configuration drops or rewrites parts of the request, or when asked…
Use when a codebase opens or serves WebSocket connections — an upgrade handler, a socket.io, ws, SignalR, Django Channels, Phoenix or STOMP endpoint, server message handlers, or client-side connection and onmessage code — or when asked about cross-site WebSocket hijacking, origin checks on the handshake, or…
Use when reviewing a web application that echoes request data or stored user data into HTML, templates or inline scripts — raw/unescaped interpolation, dangerouslySetInnerHTML, v-html, |raw, .htmlsafe, string-built markup, client code writing URL data into innerHTML/document.write/eval — or when asked to find XSS…
Use when an application parses XML from untrusted sources — XML or SOAP request bodies, SAML assertions, RSS or sitemap imports, SVG and Office documents accepted as uploads, configuration or feed ingestion — or when XML parser factories appear without hardening options, or when asked to find XXE, external entity…