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
Intro
Web Application Penetration Testing
A web application penetration test is an authorized, time-boxed assessment that probes a web application for exploitable weaknesses. The tester attacks the application the way an attacker would, while staying inside rules that define the targets, the allowed techniques, and the stopping conditions. The deliverable is a report: each confirmed finding with the reproduction steps, the impact, and a remediation suggestion.
The attack surface
A web application's attack surface is the set of paths a request can travel. It includes HTTP endpoints, query and body parameters, headers, cookies, file uploads, and API routes. A parameter is a piece of user input the application reads; a cookie is input the browser sends back on every request; an endpoint is a URL that performs an action. Anything the application accepts from the client is a potential input to attack.
Penetration testing organizes this surface into categories. The OWASP Web Security Testing Guide (WSTG) defines the standard set: information gathering, configuration and deployment, identity management, authentication, session management, authorization, input validation, business logic, client-side testing, and cryptography. Each category is a collection of checks, not a pass or fail score.
The assessment flow
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
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
