Web Application Penetration Testing Checklist | Vooki Pro

Web application penetration testing checklist

Web Application Penetration Testing Checklist

A penetration test is a controlled, authorised attack on your own application, carried out to find out what a real attacker could do. This checklist follows a web application penetration test from start to finish: 14 phases and 91 checks, from the rules of engagement to the retest.

Only test systems you own or have written permission to test.

Each check shows how it is usually carried out:

  • Automated: Vooki Pro does this step for you.
  • Automated + manual review: Vooki Pro finds the issue and gives the evidence; a tester confirms it and shows the impact.
  • Manual: a person has to do this.

58 of the 91 checks can be automated in full or in part. The rest, including the rules of engagement, chaining findings and business logic, need a skilled tester.

1. Pre-engagement and rules of engagement

Nothing is tested until these are agreed in writing.

CheckHow
Signed authorisation from the system owner, naming targets and datesManual
Scope: applications, APIs, environments, IP ranges and subdomains that are in and outManual
Test type agreed: black box (no knowledge), grey box (accounts and documentation) or white box (source code)Manual
Techniques that are not allowed, such as denial of service or social engineeringManual
Test accounts for every role, and at least two accounts at the same levelManual
Testing windows, request-rate limits and an emergency contact on both sidesManual
How sensitive data found during the test will be handled and reportedManual
Backups confirmed; third-party providers (hosting, cloud, WAF) notified where their terms require itManual
What counts as success, and whether a retest is includedManual

2. Reconnaissance

Learn what an outside attacker could learn, without touching the target more than needed.

CheckHow
Enumerate domains and subdomains belonging to the targetManual
Check DNS records for entries that point to services no longer in useAutomated
Search public code repositories and paste sites for leaked credentials and keysManual
Review archived and cached versions of the site for old endpointsManual
Identify the technology stack: server, framework, CMS, libraries and versionsAutomated
Identify cloud assets such as storage buckets linked to the applicationAutomated + manual review
Note the presence of a WAF or CDN in front of the applicationAutomated

3. Map the application

CheckHow
Crawl the whole application while logged in as each roleAutomated
Capture background API calls (XHR/fetch) and import API definitionsAutomated
Record multi-step journeys: registration, checkout, approvalsAutomated
List every entry point: parameters, headers, cookies, file uploadsAutomated
Find hidden content: robots.txt, sitemap.xml, backups, admin paths, exposed API docsAutomated
Build a matrix of roles against functions, to drive the authorization testsManual
Identify high-value targets: payment, personal data, admin functionsManual

4. Automated vulnerability scanning

Cover the breadth quickly, so manual time goes on depth.

CheckHow
Run an authenticated scan of the web applicationAutomated
Run a scan of every API, using its definition or captured requestsAutomated
Check all detected software versions against known CVEsAutomated
Confirm the scan stayed logged in and was not blocked by the WAFAutomated
Review coverage: which discovered URLs were and were not scannedAutomated + manual review
Triage the results; discard false positives before going deeperManual

5. Attack authentication and sessions

CheckHow
Default and weak credentialsAutomated
Username enumeration through login, registration and password resetAutomated
Brute-force and lockout controls, within the agreed limitsAutomated + manual review
Password reset: token strength, reuse, expiry, and host-header poisoning of reset linksAutomated + manual review
Multi-factor authentication: can a step be skipped, replayed or brute-forced?Manual
JWT handling: alg none, algorithm confusion, weak keys, kid and jku abuseAutomated
Session fixation, predictable session IDs and sessions that never expireAutomated
Session still valid after logout or password changeManual
OAuth, OpenID Connect and SAML flows: state, redirect URI, signature checksAutomated

6. Attack authorization

Use the role matrix from step 3 and swap between accounts.

CheckHow
Read or change another user's objects by changing an ID (IDOR / BOLA)Automated + manual review
Reach admin functions as a normal user (vertical escalation)Automated + manual review
Open protected pages directly without the right role (forced browsing)Automated
Bypass access rules by changing the HTTP method or path encodingAutomated
Add fields such as role or price to requests (mass assignment)Automated
Cross tenant boundaries in multi-tenant applicationsManual
Use a lower-privilege token on higher-privilege API endpointsAutomated + manual review

7. Attack the server side

The scanner finds and evidences these; the tester shows what they allow.

CheckHow
SQL and NoSQL injection: prove data access with a harmless queryAutomated + manual review
OS command and code injectionAutomated + manual review
Server-side template injectionAutomated + manual review
XML external entities (XXE)Automated + manual review
SSRF: can internal services or cloud metadata be reached?Automated + manual review
Insecure deserializationAutomated + manual review
File upload: can an uploaded file be executed or used for stored XSS?Automated + manual review
Path traversal, local and remote file inclusionAutomated + manual review
HTTP request smuggling and cache poisoningAutomated + manual review
Known CVEs in the detected components: is a public exploit applicable?Automated + manual review

8. Attack the client side

CheckHow
Cross-site scripting: show impact using a test account, such as reading the sessionAutomated + manual review
CSRF on state-changing actions: build a proof of conceptAutomated + manual review
Clickjacking on sensitive actionsAutomated + manual review
CORS misconfiguration: can another origin read authenticated data?Automated + manual review
Open redirects, alone and chained with OAuth or SSRFAutomated + manual review
Sensitive data in browser storage, JavaScript or source mapsAutomated
Prototype pollution and unsafe postMessage handlingAutomated

9. Attack the business logic

This is where a human tester adds the most.

CheckHow
Change prices, quantities, discounts or currency in requestsAutomated + manual review
Skip, repeat or reorder steps in a workflowAutomated + manual review
Send the same request many times in parallel (race conditions)Automated + manual review
Abuse limits: trials, referrals, vouchers, rate-limited actionsManual
Use a feature for something it was not designed forManual

10. Attack the APIs

CheckHow
Object-level and function-level authorization on every endpointAutomated + manual review
Excessive data in responsesAutomated + manual review
Missing rate limits and resource limitsAutomated
GraphQL: introspection, deep or batched queriesAutomated
Old or undocumented API versions with weaker controlsAutomated + manual review

11. Chain findings and show impact

CheckHow
Combine lower-severity findings into a realistic attack pathManual
Demonstrate impact without damaging data or affecting real usersManual
Stop and report immediately if a critical issue or real customer data is foundManual
Stay inside the agreed scope, even when a finding leads outside it; record the lead insteadManual

12. Clean up

CheckHow
Remove test accounts, uploaded files and test dataManual
Restore any settings changed during the testManual
Remove temporary WAF allow-list entriesManual
Keep a log of every action taken, with timesManual

13. Report

CheckHow
Executive summary: overall risk in plain languageManual
Each finding with severity (CVSS), evidence and steps to reproduceAutomated + manual review
Attack narratives for the chained findingsManual
Remediation guidance for each findingAutomated + manual review
Mapping to the frameworks the client reports against (OWASP Top 10, PCI DSS, ISO 27001, SOC 2)Automated
Debrief with developers and stakeholdersManual

14. Fix, retest and keep testing

CheckHow
Fix Critical and High findings firstManual
Retest each fix against the live applicationAutomated
Run a full rescan to catch regressionsAutomated
Scan continuously between penetration tests: on releases and on a scheduleAutomated
Plan the next penetration test, usually once or twice a year and after major changesManual

Penetration test or vulnerability assessment?

A vulnerability assessment is about breadth: find and rate every weakness you can. A penetration test is about depth: exploit the weaknesses that matter and show what they lead to. If you need the breadth-first version, use the web application vulnerability assessment checklist.

How Vooki Pro helps

  • Covers the broad, repeatable part of a penetration test (mapping, scanning, version and CVE checks) in a single authenticated scan, so testers can spend their time on exploitation and business logic.
  • Finds and evidences the issues in sections 5 to 10: each finding shows the request, the response and the injected payload, which gives a tester a head start on proving impact.
  • Tells you when a scan was logged out or blocked by a WAF, so gaps in coverage are visible.
  • Exports standard and compliance reports, and a .vpscan archive that carries the whole scan to another tester's machine.
  • Retests fixes and runs scheduled scans between penetration tests, so new releases are not left untested for months.

Frequently asked questions

What is the difference between a vulnerability assessment and a penetration test?

A vulnerability assessment finds and rates as many weaknesses as possible. A penetration test goes further: it exploits weaknesses, chains them together and shows the real impact on the business.

How often should a web application be penetration tested?

Usually once or twice a year, and after major changes. Many compliance frameworks, including PCI DSS, expect regular testing. Automated scanning should run between tests.

Can a scanner replace a penetration test?

No. A scanner covers known vulnerability classes quickly and consistently. A penetration tester finds business-logic flaws and chains issues in ways a tool cannot. They work best together.

Is penetration testing legal?

Only with written permission from the system owner. Testing systems you do not own or are not authorised to test is illegal in most countries.

Try Vooki Pro free for 7 days

Cover the automated part of your next penetration test with Vooki Pro. The trial unlocks every feature for 7 days, and scanning runs on your own machine.

Get Vooki Pro →  ·  How to perform security testing (DAST)

Related: Web application vulnerability assessment checklist · DAST vs SAST vs penetration testing: which do you need? · Penetration testing tools: what they are and why they matter