Web application penetration testing: the complete guide
How professional web application penetration testing works: scope, OWASP methodology, reporting, retesting, pricing and vendor selection.
- AUTHOR
- Karol Rapacz / Penetration Tester (OSCP, PNPT)
- PUBLISHED
- 12 July 2026
- READING TIME
- 25 min read
- TOPIC
- Penetration Testing
Web application penetration testing is an authorised, hands-on assessment of an application’s security, APIs and business workflows. A strong web app pentest does not end with scanner alerts. It establishes whether an attacker can bypass authorisation, take over an account, access another customer’s data, manipulate a payment or combine several low-severity weaknesses into a material attack path.
This guide is written for product owners, CTOs, software companies, IT teams and buyers of security services. It covers the complete engagement: scope, OWASP methodology, business-logic testing, safe proof, reporting, remediation and retesting.
The short answer: professional web application penetration testing combines automated reconnaissance with manual tests of access control, authentication, sessions, input handling, APIs, configuration and business logic. It requires written scope, safe rules of engagement, evidence for confirmed findings, actionable remediation and a retest.
What is web application penetration testing?
A web application pentest is an authorised simulation of attacks against a browser-based system or HTTP API. Testing may cover the frontend, backend, REST or GraphQL APIs, administration interfaces, federated identity, payment workflows, integrations and infrastructure directly supporting the application.
The word controlled matters. The objective is not to disrupt service or extract an entire customer database. It is to obtain the smallest sufficient proof, explain impact and stop before creating unnecessary risk. Those boundaries belong in the contract and rules of engagement before testing begins.
NIST SP 800-115 frames technical security assessment around planning, execution, analysis and mitigation. The OWASP Web Security Testing Guide provides a broad web-testing framework. Both are useful references, but neither removes the need to tailor coverage to the application and its business risk.
Pentest vs vulnerability scan vs code review
These methods answer different questions.
| Method | Main question | Strength | Typical limitation |
|---|---|---|---|
| Vulnerability scan | Does the target match known signatures or misconfigurations? | Fast and repeatable | False positives; weak at roles and business logic |
| Application pentest | Can a weakness be exploited, and what is the business impact? | Manual validation and attack-path analysis | A time-bound assessment of defined scope |
| Code review | Does implementation contain an unsafe pattern? | Finds hidden paths and root causes | Needs code and deployment context |
| Threat modelling | Which attack scenarios follow from the design? | Finds architecture risk early | Does not prove deployed state |
Automation is essential, but it cannot understand the complete workflow. A scanner may find a missing header or vulnerable library. It cannot reliably determine whether one department can approve another’s invoice, whether discounts can be combined in an unintended order or whether account recovery bypasses MFA.
That is why a pentest should not mean “run scanner, export PDF”. Our guide to reading security scan results explains how automated evidence should be verified and prioritised.
What belongs in web pentest scope?
“One application” is not precise enough. A modern product may contain multiple frontends, dozens of API services, an employee console, a separate identity domain and supplier integrations.
Features, roles and data boundaries
Scope should identify important workflows, roles and boundaries. A SaaS platform may require:
- anonymous, user, manager and administrator roles;
- two separate tenants for isolation testing;
- registration, login, MFA and account recovery;
- invitations, role changes and organisation management;
- payments, discounts, refunds and invoices;
- file upload, import, export and document generation;
- APIs, webhooks, integration keys and OAuth clients;
- administration and support tooling.
Without several roles, access-control coverage is necessarily shallow. One administrator account cannot establish whether a normal user can read another user’s object or call a privileged function directly.
Domains, APIs and dependencies
The scope should list domains, applications, endpoints or repositories and explicitly exclude anything not authorised. Payment providers, email, CDNs, identity providers and cloud services require careful ownership boundaries. Permission from the application owner does not automatically authorise testing a third party’s infrastructure.
If the product exposes a substantial API, plan a dedicated workstream. REST, GraphQL, webhooks and OAuth have specific cases covered in our API penetration testing checklist.
Production or staging?
Production reflects real configuration and controls but can affect customers. Staging reduces operational risk, yet may use different WAF rules, simplified roles or missing integrations. A practical model is deep testing in a representative environment plus constrained validation of configuration and selected findings in production.
Load testing, bulk messaging, payment manipulation and activity against supplier systems need separate conditions or a safe test equivalent.
Black box, grey box or white box?
These terms describe information available to the tester, not tester ability.
Black box
The tester starts as an anonymous Internet user. This is useful for public attack surface and registration, but reconnaissance can consume much of the budget. It does not guarantee deep coverage after login.
Grey box
The tester receives documentation and accounts for several roles, without full source access. For most business applications this offers the strongest value: an attacker perspective with efficient access-control, tenant-isolation and administration testing.
White box
Architecture, configuration or code is available. The tester can examine hidden paths, cryptographic use and root causes. White box does not automatically mean review of every line; code-review scope must still be defined.
Breachroad’s practical rule is to match knowledge to the objective. For maximum pre-release coverage, grey or white box is usually preferable. If the goal is to assess anonymous exposure and detection, a black-box component has greater value.
Web application penetration testing methodology
A professional process is not a mechanical walk through the OWASP Top 10. The Top 10 is an awareness document describing major risk classes, not a complete test plan. The WSTG and OWASP ASVS 5.0.0 provide better structures for coverage.
1. Planning and threat context
The tester learns the application’s purpose, data, roles, architecture and critical workflows. The team identifies the outcomes that matter most: administrator takeover, cross-tenant access, financial manipulation or server-side code execution.
Two applications on the same framework may need very different tests when one publishes a product catalogue and the other releases money.
2. Attack-surface mapping
The tester identifies domains, endpoints, parameters, roles, formats, technologies and integrations. JavaScript, API descriptions, cache behaviour, backend communication and error paths reveal more than software versions alone.
3. Authentication and recovery
Coverage includes registration, login, MFA, password reset, invitations, email change, logout and device management. Tests look for user enumeration, step bypass, token theft or replay and weak support-assisted recovery.
MFA does not help if an attacker can replace the recovery method without reauthentication. The whole identity lifecycle matters.
4. Sessions and tokens
Cookie and token lifetime, rotation, revocation, audience, scope and browser storage are assessed. Does a session survive password change? Can a token be replayed for another audience? Does logout actually remove access? Does a sensitive action require recent authentication?
5. Access control
The tester compares roles and object ownership, changes identifiers, calls APIs outside the user interface and checks tenant isolation. Horizontal, vertical and contextual authorisation all matter.
Hiding an administrator button in the frontend is not authorisation if the backend still accepts the request.
6. Input handling and injection
Tests follow user-controlled data into SQL, operating-system commands, templates, XML parsers, browsers, interpreters and external services. Relevant cases may include SQL injection, command injection, XSS, SSTI, path traversal, SSRF and unsafe deserialisation.
Proof should be minimally invasive. A destructive payload is unnecessary when a controlled response already establishes the weakness and impact.
7. Business logic and race conditions
This is where manual work most clearly exceeds scanning. The tester changes step order, repeats operations, supplies boundary values, combines discounts, sends concurrent requests and compares behaviour across channels.
Examples include reusing a one-time voucher, approving one’s own request, reserving the same asset twice or changing a price after payment authorisation. Business-logic flaws have no universal payload; the tester must understand the process.
8. Files, imports and integrations
File testing covers type, content, name, storage, processing and later access. A document may pass through parsers, thumbnail generators, malware scanning and privileged workers. Webhooks need sender verification, replay resistance and safe retry handling.
9. Configuration, cryptography and components
TLS, headers, CORS, caching, error messages, debug modes, client-side secrets and dependencies are reviewed. A CVE alone does not prove exposure: version, configuration, reachability and impact must be established. CSP can limit some XSS consequences but cannot replace correct output handling; see our CSP implementation guide.
10. Logging and detection
Where scope permits, tests determine whether critical events become visible: role changes, MFA reset, bulk export, authorisation failures or API-key creation. A pentest is not a full purple-team exercise, but it can reveal missing application telemetry.
Vulnerabilities a web pentest can uncover
The most valuable finding may not have a dramatic name. Information disclosure combined with weak recovery can enable takeover; two modest authorisation defects can expose every tenant.
Common categories include:
- object- and function-level authorisation failures;
- takeover through flawed recovery;
- session and token weaknesses;
- server- and client-side injection;
- SSRF into internal services;
- unsafe file processing;
- secrets or personal data exposed through cache and logs;
- incorrect CORS, CSP or proxy configuration;
- payment, discount and workflow abuse;
- race conditions and missing idempotency;
- cross-tenant data access;
- vulnerable components in reachable paths.
OWASP Top 10 labels some classes, but a useful report describes the exact condition, proof, impact and remediation. Read our OWASP Top 10 web application guide for the category view.
Safe testing and rules of engagement
Testing creates operational risk. Agree in advance:
- written authorisation from the system owner;
- exact scope and exclusions;
- testing windows and time zone;
- permitted and prohibited techniques;
- password and messaging limits;
- personal-data handling;
- encrypted credential and report exchange;
- emergency contacts;
- stop conditions;
- immediate critical-finding notification.
Denial of service, data deletion, production-payment changes and social engineering should not be included by default. They require separate scenarios and safeguards. Data collection should be minimised; a few controlled records normally prove an authorisation failure.
What the client should prepare
Preparation is not a pre-test clean-up. It removes blockers that waste assessment time.
Prepare:
- objectives and critical workflows;
- domains, APIs and environments;
- accounts for multiple users and roles;
- test data and two tenants where relevant;
- API documentation, architecture and identity flow;
- WAF, rate-limit and integration context;
- authorisation from dependent-system owners;
- technical and emergency contacts;
- a secure method for secret exchange;
- backup and monitoring confirmation for production.
Use the complete organisational guide on preparing for a penetration test.
What a penetration test report should contain
The report serves leadership, product owners, developers and administrators, so it needs more than one layer.
Executive view
This explains scope, overall risk, key attack paths and priorities without requiring payload knowledge. It answers what can happen, which process is exposed, what comes first and what was not tested.
Technical findings
Every confirmed finding should include:
- title and classification;
- affected component and preconditions;
- reproduction steps;
- redacted requests, responses and screenshots;
- minimum proof;
- technical and business impact;
- likelihood and risk rating;
- specific remediation;
- CWE, ASVS or vendor references where useful.
CVSS can support consistency but does not replace context. The same defect in a demo panel and payment system has a different priority. Confirmed vulnerabilities, hardening observations and untested areas should be clearly separated.
Coverage appendix
Longer engagements benefit from a map of tested areas, roles and limitations. No finding does not mean no test. WSTG or ASVS mappings can show coverage, but should not inflate the count with irrelevant cases.
Retesting: when is a vulnerability closed?
A ticket marked done is not evidence. A fix may block one payload, leave another endpoint open or introduce a regression. Retesting reproduces the vulnerable condition, reviews the change and explores reasonable bypass variants.
Retest status should distinguish:
- fixed and verified;
- partially fixed;
- still vulnerable;
- risk accepted;
- not verifiable because scope or environment changed.
A retest is not automatically a new full assessment. It validates named fixes. Major architecture or feature changes require fresh coverage.
When should web applications be penetration tested?
Timing depends on risk and change rate. Common triggers are:
- before initial production launch;
- after major identity, payment or architecture changes;
- before opening an API to partners;
- after cloud or identity-provider migration;
- after an incident, to validate systemic remediation;
- periodically for critical Internet-facing systems;
- when customers, regulators or contracts require evidence.
A pentest is a point-in-time assessment. Code review, dependency scanning, monitoring and SAST, DAST and IAST operate between tests. The controls complement one another.
Penetration testing and GDPR, NIS2, DORA and PCI DSS
Requirements must be interpreted for the organisation. Buying a pentest does not itself establish compliance.
- GDPR Article 32(1)(d) includes a process for regularly testing, assessing and evaluating the effectiveness of technical and organisational measures.
- NIS2 Article 21(2)(f) covers policies and procedures to assess the effectiveness of cybersecurity risk-management measures.
- DORA creates a digital operational resilience testing programme for covered financial entities and, for identified entities, advanced TLPT requirements. A normal application pentest is not the same as TLPT.
- PCI DSS includes security-testing requirements for in-scope cardholder-data environments; the exact obligation depends on role, scope and the current standard.
Translate obligations into scope, evidence and frequency with specialists familiar with the organisation. This article is not legal advice.
Primary texts: GDPR, NIS2 and DORA.
How much does web application penetration testing cost?
Price follows effort and risk, not URL count. Key drivers include:
- unique features and workflows;
- roles and tenants;
- API size and type;
- payment and identity integrations;
- black-, grey- or white-box model;
- production versus staging;
- required verification coverage;
- time restrictions;
- code, cloud or mobile components;
- retest rounds and reporting format.
A defensible estimate needs a short scoping call or technical questionnaire. A fixed price can work when feature, role and API limits are explicit. See our guide to penetration testing costs and quotes.
How to select a penetration testing company
Certifications support competence claims but do not replace process quality. Ask for:
- a redacted sample report;
- the role of manual testing and scanner validation;
- methodology tailored to product logic;
- experience with the stack and business model;
- protection of data, notes and credentials;
- immediate critical-finding communication;
- who will actually perform the work;
- retesting and developer support;
- insurance, NDA and liability terms;
- explicit assumptions and exclusions.
Red flags include guaranteed “no vulnerabilities”, no questions about roles or business logic, a complete test promised in hours and reports without reproduction. A professional provider states limitations: a pentest reduces uncertainty in defined scope; it does not certify an application as safe forever.
How Breachroad approaches web application pentesting
Breachroad starts with business objectives and a scoping call. We agree applications, roles, critical workflows, environment and safe proof boundaries. OWASP WSTG and ASVS support coverage, while tests are adapted to the architecture — access control, business logic, APIs, sessions, integrations and configuration receive explicit attention.
Confirmed weaknesses are documented so the team can reproduce and remediate them. Critical findings are communicated without waiting for the final PDF. Reporting includes executive and technical views, followed by retesting of agreed findings.
If the scope is not ready, we will help define it. Review Breachroad penetration testing and security audit services or book a short application scoping call.
Buyer checklist
- The objective is stated as business risk.
- Scope lists domains, APIs, roles, tenants and environment.
- Exclusions are explicit.
- Written authorisation and rules of engagement exist.
- Production has an emergency contact and stop conditions.
- Manual testing is included.
- Business logic and authorisation are explicitly covered.
- Reporting includes proof, impact and specific remediation.
- Critical findings are communicated immediately.
- Retest rounds are defined.
- Credentials and reports use encrypted exchange.
- Test data and credentials are deleted after the project.
Frequently asked questions
How long does a web application pentest take?
A small application with a few roles may require several working days; a large SaaS platform may need weeks. Screens alone do not determine effort. Workflows, roles, APIs and integrations do. Schedule planning, testing, reporting, debrief and retesting.
Can production be tested?
Yes, when risk is consciously managed. Backups, monitoring, emergency contacts, limits and prohibited destructive techniques are essential. Deep scenarios can move to representative staging while production validates configuration and selected findings.
Is a DAST scanner enough?
Not where risk depends on roles, customer data or business logic. DAST is valuable continuous coverage but does not replace human reasoning and safe impact validation. Mature programmes use both.
Does a web pentest include APIs?
Only when APIs are explicitly in scope. Frontend testing should not be assumed to cover every endpoint, method and integration. The quote should identify specifications, client types, roles and OAuth flows.
Can the report be shared with customers or auditors?
The full report contains sensitive detail and should be need-to-know. An executive summary or attestation can state scope and result without publishing exploitation material. Distribution belongs in the contract.
Does every fix require another full pentest?
No. A retest validates specific findings and reasonable bypasses. A new full test is appropriate after architecture or major feature changes, or when enough time has passed that the application is materially different.
Does a pentest guarantee there will be no breach?
No credible provider should promise that. Testing assesses defined scope at a point in time under stated constraints. Its value lies in finding real weaknesses, supplying evidence and improving the system — not issuing a permanent security certificate.
Conclusion
A strong web application penetration test begins with one question: which business outcome must the application prevent? Scope, roles, environment and test cases follow from that answer. OWASP WSTG and ASVS provide a solid baseline, while manual understanding of authorisation, business logic and complete attack paths creates the greatest value.
Evaluate providers by planning, safe validation, reporting and retesting — not the number of tools they list. To assess an application or estimate its scope, contact Breachroad. We will propose a test aligned with the architecture, risk and product stage.
Primary sources: OWASP Web Security Testing Guide, OWASP ASVS 5.0.0, NIST SP 800-115, GDPR, NIS2, DORA.


