How we test, mapped check by check.
Every grey-box engagement follows the Penetration Testing Execution Standard (PTES), OWASP WSTG v4.2, and OWASP ASVS Level 2. Below is the canonical reference our lead testers work from — the same coverage you'll see in your final report.
Every engagement walks through the same sequence. We never skip a phase; we may, with your written agreement, shorten one — e.g. when a production-equivalent staging environment is available, intelligence gathering becomes lighter than it would be for a black-box test.
Every row is a single check we run.
Each row shows the check, the PTES phase it lives in, the WSTG section it implements, and the ASVS L2 control it verifies. Your engagement brief drives which categories are included; we never quietly drop coverage you ticked.
Authentication
WSTG-ATHNValidates every credential-entry path — password, magic link, WebAuthn, MFA, SSO — for byp passes, replay, fixation, and credential-stuffing resistance.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
Password & credential-stuffing resistance Rate-limit verification, breach-list checks, account-lockout / unlock semantics, generic error messaging. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-ATHN-01WSTG-ATHN-02WSTG-ATHN-03 | V2.1.1V2.1.2V2.2.1 |
Magic-link / passwordless flows Token entropy, single-use enforcement, expiry, scoping, replay via cached link. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-ATHN-04 | V2.2.2V2.2.4 |
WebAuthn / passkey flows Registration ceremony, attestation handling, RP-ID binding, authenticator selection, downgrade attacks. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-ATHN-04 | V2.2.5 |
TOTP MFA enrol + verify Secret generation, QR-leak risks, rate-limited verification, recovery-code reuse. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-ATHN-09 | V2.8.1V2.8.2 |
Session JWT issuance / rotation / fixation Token signing, kid pinning, rotation on privilege change, sign-out-everywhere semantics. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-SESS-01WSTG-SESS-07 | V3.2.1V3.3.1V3.5.3 |
Input Validation
WSTG-INPVClassic injection family — exercised on every named user-influenced parameter, JSON body, query string, header, and uploaded file.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
XSS (reflected, stored, DOM) Entry-title XSS, schema-field-name XSS, visual-edit overlay attribute interpolation. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-INPV-01WSTG-INPV-02 | V5.3.3V5.3.4 |
SQLi / NoSQLi Parameterised query coverage, ORM bypass via raw fragments, search-builder boundaries. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-INPV-05WSTG-INPV-06 | V5.3.4V5.3.5 |
XXE / SSTI / command injection Template engines (Mustache, Handlebars, Liquid), shell-out paths, XML parsers. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-INPV-07WSTG-INPV-12 | V5.3.6V5.5.1 |
Path traversal File-serving routes, archive-extraction surfaces, blob URL builders. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-INPV-11 | V5.1.4V12.3.1 |
Cryptography
WSTG-CRYPValidates TLS, password hashing, JWT signing keys, and stored-secret crypto against current OWASP / NIST guidance.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
TLS configuration Cipher suites, downgrade resistance, HSTS, OCSP stapling, certificate chain. | P2 · Int. GatheringP4 · Vuln. Analysis | WSTG-CRYP-01 | V9.1.1V9.1.2V9.2.1 |
Password hashing / KDF Algorithm choice, parameterisation, pepper handling, upgrade path on hashing-algorithm change. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-CRYP-03 | V2.4.1V2.4.3 |
Key management / rotation KMS scoping, secret rotation cadence, in-application caching, expired-key handling. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-CRYP-04 | V6.4.1V6.4.2 |
Business Logic
WSTG-BUSLNon-injection bypasses — workflow skipping, race conditions, IDOR through legitimate business operations, free-trial abuse, coupon stacking.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
Workflow bypass Skipping required steps via direct API calls; revisiting completed workflows. | P3 · Threat ModellingP4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-03 | V11.1.1V11.1.2 |
Race conditions / TOCTOU Double-spend, double-invite, balance-deduct race, instalment-paid race. | P3 · Threat ModellingP4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-04 | V11.1.7 |
IDOR via business operations Object ownership bypass via accept-invite, share-link, export, or webhook payload. | P3 · Threat ModellingP4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-08 | V4.1.1 |
File Handling & SSRF
WSTG-INPVValidates the image-proxy, file-upload endpoints, archive extraction, and any fetcher that touches a remote URL.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
File upload validation Content-type sniffing, polyglot files, ZIP slip, oversize, name-collision. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-09 | V12.1.1V12.2.1 |
SSRF via image proxy / fetcher Cloud metadata, internal address space, DNS rebinding, redirect chains, URL signing bypass. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-INPV-19 | V12.6.1 |
API Surface
WSTG-APITREST and GraphQL surfaces under /v1, including webhook delivery and signature verification.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
REST endpoints OWASP API Top-10 sweep on every documented endpoint — BOLA, BFLA, broken auth, mass assignment. | P2 · Int. GatheringP4 · Vuln. AnalysisP5 · Exploitation | WSTG-APIT-01 | V13.1.1V13.2.1 |
GraphQL endpoints Introspection exposure, query depth/complexity, batched-query attacks, alias-based bypass. | P2 · Int. GatheringP4 · Vuln. AnalysisP5 · Exploitation | WSTG-APIT-01 | V13.3.1 |
WebSocket / SSE Origin checks, authentication on upgrade, per-message authorization. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-CLNT-10 | V13.4.1 |
Infrastructure
WSTG-CONFExternal-only review of the deployed surface: DNS, TLS, security headers, CSP, CORS, subdomain takeover risks.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
Security headers & CSP HSTS, X-Content-Type-Options, frame-ancestors, CSP including report-only mode strictness. | P2 · Int. GatheringP4 · Vuln. Analysis | WSTG-CONF-07 | V14.4.1V14.4.2 |
DNS / subdomain takeover Dangling CNAMEs to deprovisioned vendors, dangling A records, MX consistency. | P2 · Int. GatheringP4 · Vuln. Analysis | WSTG-CONF-10 | V14.1.1 |
Cloud IAM (read-only review) Over-broad role bindings, public buckets, exposed metadata endpoints, secret-in-env detection. | P2 · Int. GatheringP4 · Vuln. Analysis | WSTG-CONF-11 | V14.2.1 |
Webhook Security
WSTG-APITBidirectional signature integrity — inbound provider webhooks (Stripe, etc.) and outbound delivery to customer endpoints.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
Outbound signature integrity Replay-window enforcement, key rotation, signature algorithm strength. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-APIT-01 | V13.2.5 |
Inbound signature verification Stripe-style HMAC validation, timing-safe comparison, raw-body capture timing. | P4 · Vuln. AnalysisP5 · Exploitation | WSTG-APIT-01 | V13.2.5 |
Billing & Entitlements
WSTG-BUSLCoupon stacking, free-trial loops, subscription-bypass via race, invoice or receipt tampering.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
Checkout / coupon abuse Stacking, expiry bypass, first-time-only enforcement, currency-swap arbitrage. | P3 · Threat ModellingP4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-06 | V11.1.4 |
Subscription / entitlement bypass Downgrade-on-renew, gift code redemption races, lifetime tier promotion. | P3 · Threat ModellingP4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-04 | V11.1.5 |
Invoice / receipt tampering PDF signature integrity, server-side total recomputation, immutable line items. | P3 · Threat ModellingP4 · Vuln. AnalysisP5 · Exploitation | WSTG-BUSL-09 | V11.1.6 |
Audit Trail Integrity
WSTG-ERRHLog integrity, audit-chain tamper-evidence (e.g. hash-chained event streams), retention enforcement.
| Check | PTES | WSTG | ASVS L2 |
|---|---|---|---|
Log / event-stream integrity Privileged-write paths, no-log holes, structured event coverage. | P4 · Vuln. AnalysisP6 · Post-Exp. | WSTG-ERRH-02 | V7.1.1V7.1.3 |
Audit-chain tampering Hash-chained rows, replay/insert/delete detection, signed snapshots. | P4 · Vuln. AnalysisP5 · ExploitationP6 · Post-Exp. | WSTG-ERRH-02 | V7.3.1 |
Every engagement produces an executive summary (board-ready), a technical findings document with replayable proof-of-concept per finding, and a remediation roadmap with effort estimates. On request we also produce a framework-mapping deliverable (SOC 2 / ISO 27001 / PCI DSS / DORA / NIS2) and a letter of attestation. One re-test of remediated findings within 90 days is included by default.
Scope an engagement.
The intake form takes about 10 minutes and produces an indicative tester-day and price range you can take to procurement.