Web Application Penetration Testing
Web application penetration testing is an authorized assessment that probes a web application's authentication, sessions, access controls, and input handling to find weaknesses an attacker could exploit. It validates each finding against the live application, then reports the evidence and the fixes that matter most.
itOffensive security and application security | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Web Application Penetration Testing
Web application penetration testing is the disciplined version of asking an application what happens when somebody sends it requests the browser was never asked to make. It is not magic, not a bag of browser extensions, and certainly not permission to prod the internet until it makes a noise. It is an authorized assessment whose useful product is evidence: a confirmed condition, the request that proves it, its impact, and a route to fix it.
The first piece of equipment is rules of engagement, which is less dramatic than a proxy and considerably more useful. They name the targets, permitted techniques, contacts, and stopping conditions before traffic begins. That paperwork is the difference between an assessment and a very awkward incident report. It also tells you when to stop, which is a security skill with surprisingly little glamour and a great deal of value.
Next comes the attack surface: endpoints, parameters, headers, cookies, uploads, and API routes. The point is not to admire the collection. It is to make a map that answers where input crosses a trust boundary and which paths deserve attention. An application can contain far more routes than a test window can hold, so the map is how you choose rather than hope.
An intercepting proxy sits between browser and target and turns ordinary browsing into material you can inspect, replay, and modify. Replaying one request with one changed value is wonderfully unexciting. That is why it works: a difference has a baseline instead of a dramatic gesture attached to it. The proxy sees requests; it does not confer judgement by osmosis.
A scanner alert is useful because it creates hypotheses quickly. It is not a finding, because pattern matches can be wrong, incomplete, or aimed at the wrong code path. Manual testing supplies the missing depth for access-control and logic flaws, while automated checks supply breadth. Neither wins the argument; they perform different jobs in the same evidence chain.
The awkward surprise is that a friendly browser flow is not the same thing as server enforcement. The application may guide a person through one sequence while a crafted request reaches another. Keep scope, baseline, replay, and response together, then decide what actually happened. For the structure, read the intro and slides. For test categories and signs, use the cheatsheet. The Reference tab is where the long apprenticeship begins, with fewer mysteries and better notes.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://owasp.org/www-project-web-security-testing-guide/
Supports
- WSTG test categories and structured methodology for web application testing
- Stable WSTG identifier format (WSTG-<category>-<number>)
- Release history of the guide, including v1.0 (2004), v2.0 (2007-02-10), v4.0 (2014-09-17), and v4.2 (2020-12-03)
- Information gathering preceding active scanning
- The distinction between scanner alerts and validated findings
- https://owasp.org/www-project-top-ten/
Supports
- OWASP Top Ten as a consensus awareness document
- First OWASP Top Ten published in 2003
- The 2021 edition as the current released version
- https://owasp.org/Top10/A01_2021-Broken_Access_Control/
Supports
- Broken Access Control ranked A01 in the OWASP Top Ten 2021
- Quiz answer on the 2021 top position
- https://www.owasptopten.org/copy-of-the-owasp-top-ten-2021
Supports
- Release of the OWASP Top Ten 2021 on 2021-09-24
- Timeline description of the 2021 edition changes
- https://en.wikipedia.org/wiki/OWASP
Supports
- OWASP founded by Mark Curphey on 2001-09-09
- OWASP Top Ten first published in 2003
- Timeline descriptions of the founding and the first Top Ten
- https://owasp.org/www-event-2020-NewZealandDay/assets/presentations/Manico--Keynote-Abridged_History_of_AppSec--20200221.pdf
Supports
- SATAN tool released in 1995
- Early SQL injection writing by Jeff Forristal in 1998
- Microsoft engineers coining the term cross-site scripting in 1999
- OWASP WebGoat released in 2001
- Timeline events across the manual-testing era
- https://www.pentest-standard.org/index.php/Main_Page
Supports
- Seven PTES sections from pre-engagement interactions through reporting
- Rules of engagement, scope, and stopping conditions
- Evidence-based, minimum-data validation practice in the hero quiz answer
- Reference-path rationale for engagement-level structure
- https://owasp.org/www-project-application-security-verification-standard/
Supports
- ASVS as a requirements and verification standard mapped to test levels
- Reference-path rationale for requirements-driven coverage
- https://portswigger.net/web-security
Supports
- Free training material and interactive labs for web security bug classes
- Reference-path rationale for hands-on practice
- https://www.hacker101.com/
Supports
- Free video classes and capture-the-flag-style labs
- Reference-path rationale for bug-bounty-framed practice
- https://www.zaproxy.org/docs/
Supports
- ZAP spidering, passive and active scanning, and authentication handling
- The intercepting proxy role in the manual workflow
- Quiz answers about the proxy's purpose
- https://portswigger.net/burp/documentation
Supports
- Burp Suite proxy, repeater, intruder, and scanner documentation
- Reference-path rationale for the commercial proxy
- https://github.com/sqlmapproject/sqlmap/wiki
Supports
- sqlmap target selection, detection techniques, and enumeration
- Reference-path rationale for SQL injection automation
- https://github.com/sqlmapproject/sqlmap/wiki/History
Supports
- sqlmap project registered on SourceForge in 2006
- Timeline description of the project's start
- https://www.zaproxy.org/blog/2020-09-06-zap-is-ten-years-old/
Supports
- ZAP 1.0.0 first released on 2010-09-06
- Timeline description of ZAP's release
- https://github.com/qazbnm456/awesome-web-security
Supports
- Discovery of PayloadsAllTheThings, XSStrike, commix, wfuzz, CyberChef, WPScan, and BeEF for Awesome Links
- Placement of those projects in testing, fuzzing, and exploitation categories
- https://github.com/swisskyrepo/PayloadsAllTheThings/
Supports
- Payloads and techniques organized by vulnerability class
- Awesome Links rationale
- https://github.com/s0md3v/XSStrike
Supports
- Parameter fuzzing, context analysis, and WAF bypass for XSS detection
- Awesome Links rationale
- https://github.com/commixproject/commix
Supports
- Automated OS command injection detection and exploitation
- Awesome Links rationale
- https://github.com/xmendez/wfuzz
Supports
- Web application bruteforcing and fuzzing of parameters, paths, headers, and cookies
- Awesome Links rationale
- https://github.com/gchq/CyberChef
Supports
- Browser-based encoding, decoding, hashing, and format conversion
- Awesome Links rationale for payload crafting and response decoding
- https://github.com/wpscanteam/wpscan
Supports
- Black-box WordPress vulnerability scanning
- Awesome Links rationale
- https://beefproject.com
Supports
- Browser exploitation framework for demonstrating XSS impact
- Awesome Links rationale
- https://portswigger.net/burp
Supports
- Burp Suite Landscape placement as the manual intercepting proxy
- https://www.zaproxy.org/
Supports
- OWASP ZAP Landscape placement as the open-source intercepting proxy and scanner
- https://mitmproxy.org/
Supports
- mitmproxy Landscape placement as the scriptable command-line proxy
- https://sqlmap.org/
Supports
- sqlmap Landscape placement for SQL injection automation
- https://nuclei.projectdiscovery.io/
Supports
- Nuclei Landscape placement for template-driven scanning
- https://www.acunetix.com/
Supports
- Acunetix Landscape placement for commercial crawl-and-probe scanning
- https://www.invicti.com/
Supports
- Invicti Landscape placement for proof-based dynamic scanning
- https://www.qualys.com/apps/web-app-scanning/
Supports
- Qualys Web Application Scanning Landscape placement
- https://www.rapid7.com/products/insightappsec/
Supports
- Rapid7 InsightAppSec Landscape placement for cloud DAST
- https://www.tenable.com/products/tenable-io/web-application-scanning
Supports
- Tenable Web App Scanning Landscape placement
- https://www.hcltechsw.com/appscan
Supports
- HCL AppScan Landscape placement for enterprise DAST
- https://github.com/juice-shop/juice-shop
Supports
- OWASP Juice Shop as a deliberately vulnerable training application
- Landscape placement and reference-path rationale
- https://github.com/digininja/DVWA
Supports
- DVWA as a deliberately vulnerable PHP training application
- Landscape placement
- https://owasp.org/www-project-webgoat/
Supports
- OWASP WebGoat as a deliberately vulnerable training application
- Landscape placement
- https://pwning.owasp-juice.shop/companion-guide/local/part1/running.html
Supports
- OWASP Juice Shop local single-user Docker deployment bound to 127.0.0.1:3000
- Practice-reference and exercise setup for a deliberately vulnerable local target
- https://portswigger.net/burp/documentation/desktop/testing-workflow
Supports
- Workflow order: map the target, analyze its attack surface, then test for vulnerabilities
- Use of deliberately vulnerable training targets for controlled workflow practice
- https://portswigger.net/web-security/logic-flaws
Supports
- Business-logic flaws arise from unsafe assumptions about user behavior and application state
- Manual testing requires understanding application rules that automated scanners do not encode
- https://portswigger.net/research/backslash-powered-scanning-hunting-unknown-vulnerability-classes
Supports
- Black-box scanners have server-side context limits and manual probe iteration distinguishes promising behavior from a dead lead
- Field Note on budgeting human validation alongside automated scanning
