Runbook 04 — Web Application Pentest
Modern organizations depend heavily on web applications.
These applications frequently control:
CUSTOMER ACCOUNTS
EMPLOYEE ACCESS
BUSINESS WORKFLOWS
PAYMENTS
DOCUMENTS
REPORTING
ADMINISTRATION
APIs
CLOUD SERVICES
SENSITIVE DATAA web application penetration test should therefore evaluate much more than individual technical vulnerabilities.
The tester must understand:
WHO USES THE APPLICATION?
WHAT ROLES EXIST?
WHAT DATA EXISTS?
WHAT FUNCTIONS EXIST?
WHERE ARE THE TRUST BOUNDARIES?
HOW IS ACCESS CONTROLLED?
WHAT BUSINESS PROCESSESDEPEND ON THE APPLICATION?The purpose of this runbook is to provide a repeatable methodology for conducting an authorized web application penetration test.
Use this runbook only against GoHackersCloud training applications, applications you own, intentionally vulnerable labs, or systems for which you have explicit authorization.
Runbook Information
Section titled “Runbook Information”Runbook: 04 — Web Application Pentest
Track: OffSec
Category: Web Application Security Runbook
Difficulty: Intermediate → Advanced
Primary Role: Web Application Penetration Tester / Security Consultant
Environment: Web Applications and APIs
Primary Goal: Identify application security weaknesses and authorization failures
Primary Deliverable: Web Application Penetration Testing Report
When to Use This Runbook
Section titled “When to Use This Runbook”Use this runbook for:
Web Application Penetration Tests
Authenticated Application Assessments
Customer Portal Assessments
Administrative Portal Assessments
Internal Web Application Tests
API-Backed Application Assessments
Pre-Production Security Reviews
Application Security Validation
Purple Team ExercisesWeb Application Pentest Workflow
Section titled “Web Application Pentest Workflow”Use:
AUTHORIZE ↓UNDERSTAND BUSINESS PURPOSE ↓MAP APPLICATION ↓IDENTIFY USERS AND ROLES ↓MAP ENDPOINTS ↓REVIEW AUTHENTICATION ↓REVIEW SESSION MANAGEMENT ↓REVIEW AUTHORIZATION ↓REVIEW INPUT HANDLING ↓REVIEW BUSINESS LOGIC ↓REVIEW APIs ↓REVIEW FILE HANDLING ↓REVIEW SECURITY CONFIGURATION ↓CONTROLLED VALIDATION ↓EVIDENCE ↓BUSINESS IMPACT ↓REMEDIATION ↓RETEST01 — Confirm Authorization
Section titled “01 — Confirm Authorization”Before testing, document:
Application Name
Application URL
Environment
Application Owner
Authorized Domains
Authorized APIs
Authorized Accounts
Authorized Roles
Testing Window
Excluded Functions
Restricted Actions
Emergency ContactScope Template
Section titled “Scope Template”Assessment:
Application:
Primary URL:
Additional URLs:
API Base URL:
Environment:
Authorized Accounts:
Authorized Roles:
Authorized Test Data:
Out-of-Scope Functions:
Third-Party Integrations:
Allowed Techniques:
Restricted Techniques:
Testing Window:
Emergency Contact:02 — Establish Rules of Engagement
Section titled “02 — Establish Rules of Engagement”Typical allowed activities may include:
Application Mapping
Request Inspection
Authentication Review
Session Review
Authorization Testing
Input Validation Testing
API Testing
Business Logic Assessment
File Upload Assessment
Security Configuration Review
Controlled Vulnerability ValidationRestrict unless explicitly permitted:
Denial of Service
Large Automated Request Volumes
Production Data Modification
Mass Account Creation
Account Lockout Testing
Destructive File Uploads
Real Payment Transactions
Uncontrolled Data Extraction
Third-Party Testing03 — Define Test Accounts
Section titled “03 — Define Test Accounts”Ideally obtain several lab identities:
Anonymous
Standard User
User 2
Manager
Support User
AdministratorExample:
| Account | Role | Purpose |
|---|---|---|
| user01 | User | Standard user testing |
| user02 | User | Ownership testing |
| manager01 | Manager | Role comparison |
| admin01 | Administrator | Administrative baseline |
04 — Prepare the Workspace
Section titled “04 — Prepare the Workspace”Create:
Web-Pentest/|+-- 01-Scope/|+-- 02-Mapping/|+-- 03-Authentication/|+-- 04-Sessions/|+-- 05-Authorization/|+-- 06-Input-Validation/|+-- 07-Business-Logic/|+-- 08-API/|+-- 09-File-Handling/|+-- 10-Configuration/|+-- 11-Evidence/|+-- 12-Findings/|+-- 13-Report/|+-- 14-Retest/Evidence Standard
Section titled “Evidence Standard”For every important test record:
Timestamp
Application
User
Role
Endpoint
Method
Request
Expected Result
Observed Result
Evidence
Security Impact
Finding IDRedact:
Session Tokens
Passwords
API Secrets
Real Customer Data
Personal Information05 — Understand the Application
Section titled “05 — Understand the Application”Before testing vulnerabilities, understand the application’s purpose.
Ask:
What Does the Application Do?
Who Uses It?
What Data Does It Process?
What Business Workflows Exist?
What Are the Most Sensitive Functions?
Which Systems Does It Integrate With?06 — Build the Application Architecture
Section titled “06 — Build the Application Architecture”Conceptually map:
USER ↓BROWSER ↓WEB APPLICATION ↓API ↓APPLICATION SERVICES ↓DATABASE ↓EXTERNAL SERVICESIdentify:
Frontend
Backend
API
Database
Identity Provider
Object Storage
Email Services
Payment Services
Third-Party Integrations07 — Establish Technology Context
Section titled “07 — Establish Technology Context”Identify technologies where possible:
Web Server
Application Framework
Frontend Framework
API Style
Authentication Mechanism
Session Mechanism
Database Type
Cloud Platform
CDN / WAFDo not treat technology identification itself as a vulnerability.
08 — Map the Application
Section titled “08 — Map the Application”Use the application normally.
Document:
Pages
Navigation
Forms
Search
Uploads
Downloads
Profile Functions
Account Functions
Reports
Administrative Functions
API Calls09 — Create the Endpoint Inventory
Section titled “09 — Create the Endpoint Inventory”Example:
| Endpoint | Method | Authentication | Role | Purpose |
|---|---|---|---|---|
/login |
POST | No | Public | Login |
/profile |
GET | Yes | User | Profile |
/api/orders |
GET | Yes | User | Orders |
/admin/users |
GET | Yes | Admin | User management |
10 — Capture Normal Requests
Section titled “10 — Capture Normal Requests”Use:
Browser Developer Tools
Approved Web Proxy
Application LogsCapture representative legitimate requests.
Understand:
URL
Method
Headers
Cookies
Parameters
Body
Response
Status Code11 — Identify Input Locations
Section titled “11 — Identify Input Locations”Inputs may appear in:
Query Parameters
Path Parameters
POST Bodies
JSON
Headers
Cookies
File Uploads
Search Fields
Form FieldsBuild an input inventory.
12 — Identify Application Objects
Section titled “12 — Identify Application Objects”Objects can include:
User
Profile
Order
Invoice
Ticket
Document
Project
Report
Account
RequestCreate:
| Object | Identifier | Owner | Sensitivity |
|---|---|---|---|
| Profile | 1001 | user01 | Medium |
| Invoice | INV-100 | user01 | High |
| Document | DOC-20 | user02 | High |
13 — Identify Roles and Permissions
Section titled “13 — Identify Roles and Permissions”Build a role matrix.
| Function | User | Manager | Admin |
|---|---|---|---|
| Own profile | Yes | Yes | Yes |
| Team reports | No | Yes | Yes |
| User management | No | No | Yes |
| System settings | No | No | Yes |
This becomes your expected access-control baseline.
14 — Authentication Assessment
Section titled “14 — Authentication Assessment”Authentication answers:
WHO ARE YOU?Review:
Login
Password Policy
Account Lockout
MFA
Password Reset
Account Recovery
Logout
Remember Me
Federated Login15 — Review Login Behavior
Section titled “15 — Review Login Behavior”Document:
Login Endpoint
Request Method
Session Creation
Failure Messages
Lockout Behavior
MFA FlowAvoid mass password attempts.
16 — Review Authentication Errors
Section titled “16 — Review Authentication Errors”Compare responses for:
Invalid User
Invalid Password
Disabled AccountThe application should avoid unnecessary account information disclosure.
17 — Review Password Policy
Section titled “17 — Review Password Policy”Assess:
Minimum Length
Complexity Requirements
Reuse
Change Process
Compromised Password ProtectionPassword security should be evaluated together with:
MFA
Rate Limiting
Risk-Based Authentication
Account Lockout18 — Review Account Lockout
Section titled “18 — Review Account Lockout”Determine:
Threshold
Duration
Unlock Process
Administrative OverrideDo not intentionally lock accounts unless specifically authorized.
19 — Review MFA
Section titled “19 — Review MFA”Assess:
Which Roles Require MFA?
Does MFA Protect Admins?
Does Password Reset Affect MFA?
Does Recovery Bypass MFA?
Are Sensitive Functions Reauthenticated?20 — Review Password Reset
Section titled “20 — Review Password Reset”Map:
RESET REQUEST ↓IDENTITY VERIFICATION ↓RESET TOKEN ↓PASSWORD CHANGE ↓SESSION HANDLINGCheck whether the process securely binds the reset to the correct user.
21 — Session Management Assessment
Section titled “21 — Session Management Assessment”After login, determine how sessions are managed.
Review:
Session Cookie
Token Lifetime
Logout
Idle Timeout
Absolute Timeout
Concurrent Sessions
Session Rotation22 — Review Cookie Security
Section titled “22 — Review Cookie Security”Check:
Secure
HttpOnly
SameSite
Domain
Path
ExpirationA typical secure session cookie should be protected appropriately for its use.
23 — Redact Session Tokens
Section titled “23 — Redact Session Tokens”Evidence should show:
session=ABCD********XYZnot the complete active token.
24 — Review Session Rotation
Section titled “24 — Review Session Rotation”Check whether important events rotate or invalidate sessions.
Examples:
Login
Password Change
Privilege Change
MFA Enrollment
Account Recovery25 — Review Logout
Section titled “25 — Review Logout”After logout:
Does the Session Stop Working?
Can Old Pages Still Perform Actions?
Are Server-Side Sessions Invalidated?26 — Review Session Timeout
Section titled “26 — Review Session Timeout”Evaluate:
Idle Timeout
Absolute Timeout
High-Privilege Session DurationAdministrative sessions often warrant stricter controls.
27 — Authorization Assessment
Section titled “27 — Authorization Assessment”Authorization asks:
WHAT ARE YOU ALLOWED TO DO?Review:
Object-Level Authorization
Function-Level Authorization
Role-Based Access
Tenant Boundaries
Workflow Authorization28 — Horizontal Authorization
Section titled “28 — Horizontal Authorization”Test whether:
USER Acan access:
USER B'SSYNTHETIC LAB RESOURCEExample baseline:
GET /api/profile/1001where:
1001 = user01Then assess a designated test object belonging to user02.
Expected:
DENIED29 — Document Ownership Tests
Section titled “29 — Document Ownership Tests”Record:
Current User:
Current Role:
Object:
Object Owner:
Requested Action:
Expected:
Observed:30 — Vertical Authorization
Section titled “30 — Vertical Authorization”Test whether:
STANDARD USERcan access:
MANAGER / ADMINFUNCTIONSExamples may include:
/admin
/admin/users
/admin/settings
/api/admin/users31 — Hidden Functions Are Not Security Controls
Section titled “31 — Hidden Functions Are Not Security Controls”This:
ADMIN BUTTON HIDDENdoes not mean:
ADMIN FUNCTION SECUREDAuthorization must occur:
REQUEST ↓SERVER ↓CHECK PERMISSION ↓ALLOW / DENY32 — Review API Authorization Separately
Section titled “32 — Review API Authorization Separately”An application page may be protected while its underlying API is not.
Test:
PAGE AUTHORIZATIONand:
API AUTHORIZATIONindependently.
33 — Review HTTP Method Authorization
Section titled “33 — Review HTTP Method Authorization”Check expected permissions for:
GET
POST
PUT
PATCH
DELETERead access does not automatically imply write access.
34 — Build the Authorization Matrix
Section titled “34 — Build the Authorization Matrix”| User | Endpoint | Method | Object | Expected | Observed |
|---|---|---|---|---|---|
| user01 | /profile/1001 |
GET | Own | Allow | |
| user01 | /profile/1002 |
GET | Other | Deny | |
| user01 | /admin/users |
GET | Admin | Deny |
35 — Review Multi-Tenant Isolation
Section titled “35 — Review Multi-Tenant Isolation”If the application supports:
Tenant A
Tenant Bverify that:
Tenant A Usercannot access:
Tenant B ResourceUse only synthetic test tenants.
36 — Review Object Ownership
Section titled “36 — Review Object Ownership”Server-side access should consider:
Authenticated User
Tenant
Object
Object Owner
Requested Action
Permission37 — Input Validation Assessment
Section titled “37 — Input Validation Assessment”Input handling should be reviewed across:
Search
Forms
URLs
JSON
Headers
Uploads
APIsYour objective is to determine whether untrusted input can alter application behavior beyond what is intended.
38 — Build the Input Matrix
Section titled “38 — Build the Input Matrix”| Input | Endpoint | Type | Server Use | Validation |
|---|---|---|---|---|
search |
/search |
Text | Query | Review |
id |
/profile/{id} |
Integer | Object lookup | Review |
filename |
/upload |
File | Storage | Review |
39 — Review Input Validation
Section titled “39 — Review Input Validation”Assess:
Expected Type
Maximum Length
Allowed Characters
Server-Side Validation
Error Handling
Output Encoding40 — Injection Risk Assessment
Section titled “40 — Injection Risk Assessment”Injection weaknesses can occur when untrusted input is interpreted as:
Database Query
Operating System Command
Directory Query
Template Expression
Application ExpressionA secure architecture uses:
Parameterized Queries
Safe APIs
Context-Specific Encoding
Input Validation
Least Privilege41 — SQL Injection Assessment
Section titled “41 — SQL Injection Assessment”In an intentionally vulnerable training application, identify fields that interact with database-backed features such as:
Login
Search
Filters
Reports
Object LookupsUse minimal validation techniques sufficient to determine whether the application safely separates input from query structure.
Do not dump unnecessary data.
42 — Command Injection Assessment
Section titled “42 — Command Injection Assessment”Potentially risky features include:
Network Diagnostic Tools
File Conversion
Administrative Utilities
Media Processing
Automation FunctionsThe security question is:
Can User-Controlled InputInfluence an Operating-SystemCommand Structure?Controlled lab validation should use harmless actions only.
43 — Cross-Site Scripting Assessment
Section titled “43 — Cross-Site Scripting Assessment”Review input that is later rendered into:
HTML
JavaScript
DOM
TemplatesConsider:
Reflected Input
Stored Input
DOM-Based ProcessingThe correct remediation depends on output context.
44 — XSS Security Model
Section titled “44 — XSS Security Model”A vulnerable relationship may look like:
UNTRUSTED INPUT ↓APPLICATION ↓HTML / SCRIPT CONTEXT ↓BROWSER EXECUTIONPrimary defenses include:
Context-Specific Output Encoding
Safe Templating
Input Constraints
Content Security Policy45 — Review Server-Side Request Functionality
Section titled “45 — Review Server-Side Request Functionality”Features that retrieve remote resources may include:
URL Preview
Webhook Validation
Image Import
Document Fetching
Integration TestingAssess whether server-side requests are constrained to intended destinations.
Keep validation entirely within designated lab systems.
46 — Review File Path Handling
Section titled “46 — Review File Path Handling”Applications may accept:
Filename
Document ID
Export Path
Template NameCheck whether the application securely maps these values to intended resources.
47 — Business Logic Assessment
Section titled “47 — Business Logic Assessment”Business logic testing asks:
CAN I USE VALID FEATURESIN AN INVALID SEQUENCE?Examples:
Skip Approval
Repeat Transaction
Change Restricted State
Apply Benefit Twice
Bypass Required Step
Perform Action as Wrong Role48 — Map Business Workflows
Section titled “48 — Map Business Workflows”Example:
CREATE REQUEST ↓SUBMIT ↓MANAGER APPROVAL ↓FINANCE REVIEW ↓COMPLETE49 — Build the State Matrix
Section titled “49 — Build the State Matrix”| Current State | Action | Allowed Role | Next State |
|---|---|---|---|
| Draft | Submit | User | Pending |
| Pending | Approve | Manager | Approved |
| Approved | Process | Finance | Complete |
50 — Test Workflow Boundaries
Section titled “50 — Test Workflow Boundaries”Ask:
Can a Step Be Skipped?
Can a User ApproveTheir Own Request?
Can a Completed TransactionBe Repeated?
Can the Process BeExecuted Out of Order?Use only synthetic lab records.
51 — Test Quantity and Value Boundaries
Section titled “51 — Test Quantity and Value Boundaries”Where relevant, assess validation around:
Quantity
Price
Discount
Credit
Limits
BalancesDo not perform real financial transactions.
Use designated training data.
52 — Review Race and Replay Logic Conceptually
Section titled “52 — Review Race and Replay Logic Conceptually”Some workflows may rely on:
One-Time Actions
Unique Requests
Idempotency
Single ApprovalEvaluate whether repeated legitimate requests could create unintended state.
Keep request volumes low and controlled.
53 — API Assessment
Section titled “53 — API Assessment”Modern web applications often use APIs extensively.
Map:
REST
GraphQL
Internal APIs
Public APIs
Mobile APIs54 — Build the API Inventory
Section titled “54 — Build the API Inventory”| Endpoint | Method | Auth | Role | Object |
|---|---|---|---|---|
/api/profile |
GET | Yes | User | Profile |
/api/orders |
GET | Yes | User | Orders |
/api/admin/users |
GET | Yes | Admin | Users |
55 — Review API Authentication
Section titled “55 — Review API Authentication”Determine whether APIs use:
Session Cookies
Bearer Tokens
API Keys
OAuth
OIDCCheck:
Token Lifetime
Scope
Audience
Expiration
Revocation56 — Review API Authorization
Section titled “56 — Review API Authorization”For every API request ask:
WHO IS CALLING?
WHICH ROLE?
WHICH OBJECT?
WHICH TENANT?
WHICH ACTION?57 — Review Excessive Data Exposure
Section titled “57 — Review Excessive Data Exposure”A response may contain more data than the interface actually displays.
Compare:
VISIBLE UI DATAwith:
FULL API RESPONSELook for unnecessary sensitive fields.
58 — Review Mass Assignment Risk
Section titled “58 — Review Mass Assignment Risk”Applications that accept structured objects should not blindly trust every client-provided field.
Conceptually:
CLIENT OBJECT ↓SERVER ↓ONLY APPROVED FIELDSSHOULD BE MODIFIABLEFields such as:
Role
Privilege
Owner
Tenant
Statusshould receive particular scrutiny.
59 — Review API Rate Controls
Section titled “59 — Review API Rate Controls”Assess whether sensitive operations have appropriate limits.
Examples:
Login
Password Reset
OTP Verification
Search
Expensive ReportsAvoid high-volume testing unless specifically authorized.
60 — Review GraphQL Security Conceptually
Section titled “60 — Review GraphQL Security Conceptually”If GraphQL exists, evaluate:
Authentication
Object Authorization
Field Authorization
Mutation Authorization
Sensitive Metadata Exposure
Complexity Controls61 — File Upload Assessment
Section titled “61 — File Upload Assessment”File upload functionality can create significant risk.
Map:
Upload Location
Allowed Types
File Size
Filename Handling
Storage Location
Processing
Download Behavior62 — Use Harmless Test Files
Section titled “62 — Use Harmless Test Files”Use:
Text Files
Benign Images
Synthetic DocumentsDo not upload malware or destructive content.
63 — Review File Type Validation
Section titled “63 — Review File Type Validation”Check whether the application validates:
Extension
Content Type
File Signature
Business RequirementNo single check should be blindly trusted.
64 — Review Filename Handling
Section titled “64 — Review Filename Handling”Assess whether filenames can affect:
Storage Paths
Existing Files
Downloads
Application RenderingServers should generate safe storage identifiers where appropriate.
65 — Review Uploaded File Access
Section titled “65 — Review Uploaded File Access”Determine:
Who Can Read the File?
Who Owns It?
Can Another User Access It?
Is It Public?
Is Authorization Enforced?66 — Review File Download Functions
Section titled “66 — Review File Download Functions”Map:
DOCUMENT ID ↓SERVER LOOKUP ↓AUTHORIZATION ↓FILE RESPONSEDo not rely on unpredictable filenames as the only protection.
67 — Security Header Review
Section titled “67 — Security Header Review”Inspect HTTP response headers.
For example:
curl -I https://<LAB_APPLICATION>Review applicable controls such as:
Content-Security-Policy
Strict-Transport-Security
X-Content-Type-Options
Referrer-Policy
Cache-ControlRecommendations should match application architecture.
68 — Review HTTPS
Section titled “68 — Review HTTPS”Assess:
HTTP to HTTPS Redirection
Certificate Validity
Secure Cookies
Mixed Content
Sensitive HTTP Endpoints69 — Review CORS
Section titled “69 — Review CORS”Cross-Origin Resource Sharing should allow only required origins and methods.
Map:
Origin
Allowed Origin
Methods
Credentials
Business RequirementDo not assume permissive CORS alone automatically leads to compromise.
70 — Review Error Handling
Section titled “70 — Review Error Handling”Applications should avoid exposing:
Stack Traces
Filesystem Paths
Database Errors
Internal Hostnames
Secrets
Debug Information71 — Review Debug Features
Section titled “71 — Review Debug Features”Look for authorized exposure of:
Debug Mode
Development Pages
API Documentation
Profilers
DiagnosticsThe issue is whether sensitive development functionality is exposed where it should not be.
72 — Review Sensitive Information in Client Code
Section titled “72 — Review Sensitive Information in Client Code”Inspect application-delivered:
JavaScript
Configuration
Source Maps
Frontend VariablesDo not assume every API endpoint or identifier found in JavaScript is confidential.
Focus on actual sensitive data or privileged functionality.
73 — Review Secrets Management
Section titled “73 — Review Secrets Management”Applications should not expose:
Database Passwords
Private API Keys
Administrative Tokens
Cloud Secrets
Signing Secretsto browser clients or broadly accessible files.
74 — Review Caching
Section titled “74 — Review Caching”Sensitive responses should be evaluated for inappropriate browser or intermediary caching.
Examples:
Account Data
Financial Data
Administrative Reports
Personal Information75 — Review CSRF Protection Where Relevant
Section titled “75 — Review CSRF Protection Where Relevant”For cookie-authenticated state-changing functions, determine whether the application appropriately protects requests from unintended cross-site initiation.
Consider:
SameSite
Anti-CSRF Tokens
Origin Validation
ReauthenticationArchitecture matters.
76 — Review Clickjacking Protection
Section titled “76 — Review Clickjacking Protection”Sensitive interfaces may require framing restrictions.
Consider:
Content-Security-Policy frame-ancestorsor equivalent protections.
77 — Review Sensitive Administrative Functions
Section titled “77 — Review Sensitive Administrative Functions”Prioritize:
User Creation
Role Assignment
Password Reset
Account Unlock
API Key Management
Configuration
Audit Access
Integration ManagementThese require strong server-side authorization.
78 — Review Reauthentication
Section titled “78 — Review Reauthentication”Sensitive actions may require fresh authentication.
Examples:
Password Change
MFA Change
Payment Change
API Key Creation
Administrative Role Change79 — Review Logging
Section titled “79 — Review Logging”Application logs should support detection of:
Authentication Failures
Authorization Failures
Administrative Changes
Sensitive Data Access
Workflow Abuse
Configuration Changes80 — Avoid Sensitive Logging
Section titled “80 — Avoid Sensitive Logging”Applications should avoid logging:
Passwords
Full Session Tokens
Private Keys
Payment Data
Secret Values81 — Build the Findings Register
Section titled “81 — Build the Findings Register”Example:
| ID | Finding | Area | Severity |
|---|---|---|---|
| WEB-001 | Missing object authorization | Access Control | High |
| WEB-002 | Admin API authorization failure | Access Control | Critical |
| WEB-003 | Weak workflow enforcement | Business Logic | High |
| WEB-004 | Sensitive API data exposure | API | Medium |
| WEB-005 | Weak file access control | File Handling | High |
82 — Finding WEB-001
Section titled “82 — Finding WEB-001”Title:Missing Object-Level Authorization
Starting Role:Standard User
Observation:A standard user can access a syntheticobject owned by another test user.
Impact:Authenticated users may access informationoutside their authorized ownership scope.
Root Cause:The server performs object lookup withoutverifying ownership.
Recommendation:Enforce authorization using authenticatedidentity, tenant, object ownership, andrequested action.83 — Finding WEB-002
Section titled “83 — Finding WEB-002”Title:Missing Administrative API Authorization
Observation:A standard authenticated user can reachan API operation intended only foradministrators.
Impact:A lower-privileged application accountcould access privileged functionality.
Root Cause:Authorization is enforced in the userinterface but not consistently on theserver endpoint.
Recommendation:Apply centralized server-side permissionchecks to every administrative operation.84 — Finding WEB-003
Section titled “84 — Finding WEB-003”Title:Business Workflow Authorization Bypass
Observation:A standard user can trigger a workflowtransition intended for a manager role.
Impact:The user may bypass required approvalcontrols.
Recommendation:Validate both workflow state and actorpermission before every transition.85 — Finding WEB-004
Section titled “85 — Finding WEB-004”Title:Excessive Data Exposure Through API
Observation:An API response includes sensitive fieldsnot required by the requesting user orapplication interface.
Impact:Compromise of a standard session couldexpose unnecessary information.
Recommendation:Return only fields required for thespecific operation and role.86 — Finding WEB-005
Section titled “86 — Finding WEB-005”Title:Missing Authorization on Uploaded Files
Observation:A file uploaded by one synthetic user canbe accessed by another user without theexpected ownership check.
Impact:Private documents may be exposed acrossuser boundaries.
Recommendation:Require server-side authorization forevery file access request.87 — Build the Attack Path
Section titled “87 — Build the Attack Path”Do not treat findings independently.
Example:
STANDARD USER ↓OBJECT AUTHORIZATION FAILURE ↓SENSITIVE APPLICATION DATA ↓EXPOSED INTERNAL INFORMATION ↓ADMINISTRATIVE FUNCTION ↓HIGHER BUSINESS IMPACT88 — Attack Path Worksheet
Section titled “88 — Attack Path Worksheet”Attack Path ID:
Starting User:
Starting Role:
Initial Endpoint:
Weakness:
Object:
Intermediate Function:
Required Conditions:
Target Function:
Target Data:
Potential Business Impact:
Evidence:
Recommended Path Break:89 — Controlled Validation
Section titled “89 — Controlled Validation”Use:
HYPOTHESIS ↓EXPECTED BEHAVIOR ↓MINIMUM REQUEST CHANGE ↓OBSERVED BEHAVIOR ↓EVIDENCE ↓STOP90 — Minimum Proof Principle
Section titled “90 — Minimum Proof Principle”Do not:
Delete Real Data
Create Real Admin Accounts
Download Large Data Sets
Modify Real Payments
Disrupt the Applicationif a harmless synthetic test sufficiently proves the problem.
91 — Risk Assessment
Section titled “91 — Risk Assessment”Consider:
Authentication Required
Required Role
User Interaction
Affected Users
Data Sensitivity
Administrative Capability
Cross-Tenant Impact
Business Process Impact
Ease of Abuse
Existing Controls92 — Root Cause Analysis
Section titled “92 — Root Cause Analysis”Common causes include:
Missing Server Authorization
Frontend-Only Security
Weak Object Ownership Checks
Weak Tenant Isolation
Unsafe Input Handling
Insecure Workflow Design
Excessive API Responses
Weak File Controls
Insecure Configuration93 — Authorization Remediation
Section titled “93 — Authorization Remediation”Use:
DENY BY DEFAULT
SERVER-SIDE CHECKS
CENTRALIZED AUTHORIZATION
OBJECT OWNERSHIP
TENANT VALIDATION
ROLE / PERMISSION CHECKS94 — Input Handling Remediation
Section titled “94 — Input Handling Remediation”Prefer:
Parameterized Queries
Safe Framework APIs
Context-Specific Output Encoding
Server-Side Validation
Safe File APIs
Least-Privilege Service Accounts95 — Authentication Remediation
Section titled “95 — Authentication Remediation”Consider:
MFA
Strong Password Controls
Rate Limiting
Secure Recovery
Session Rotation
Secure Logout
Risk-Based Authentication96 — API Remediation
Section titled “96 — API Remediation”Apply:
Strong Authentication
Explicit Authorization
Minimal Responses
Schema Validation
Rate Controls
Secure Error Handling
Central Logging97 — File Handling Remediation
Section titled “97 — File Handling Remediation”Apply:
Allowlisted Types
Generated Filenames
Controlled Storage
Authorization
Safe Rendering
Size Limits
Scanning Where Appropriate98 — Business Logic Remediation
Section titled “98 — Business Logic Remediation”For every sensitive transition verify:
WHO IS ACTING?
WHAT ROLE?
WHAT STATE?
WHAT ACTION?
IS THIS TRANSITION VALID?
IS THIS USER ALLOWED?99 — Detection Opportunities
Section titled “99 — Detection Opportunities”Monitor:
Repeated Authorization Failures
Admin API Access by Normal Users
Cross-Tenant Access Attempts
High-Volume Object Requests
Unexpected Workflow Actions
Sensitive File Access
Role Changes100 — Build Security Regression Tests
Section titled “100 — Build Security Regression Tests”Every confirmed finding should become a regression test.
Example:
Given:user01
When:GET /api/profile/1002
Then:403 Forbidden101 — Positive Authorization Tests
Section titled “101 — Positive Authorization Tests”Example:
Given:user01
When:GET /api/profile/1001
Then:200 OK102 — Negative Authorization Tests
Section titled “102 — Negative Authorization Tests”Example:
Given:user01
When:GET /api/profile/1002
Then:Access DeniedBoth are important.
103 — Cleanup
Section titled “103 — Cleanup”At assessment completion:
Restore Synthetic Records
Delete Temporary Test Objects
Remove Uploaded Test Files
Restore Workflow States
Terminate Sessions
Log Out Test Accounts
Remove Temporary Notes
Secure Evidence104 — Retesting
Section titled “104 — Retesting”Use:
ORIGINAL FINDING ↓REPRODUCE BASELINE ↓VERIFY FIX ↓REPEAT ORIGINAL TEST ↓VERIFY DENIAL / SAFE HANDLING ↓CLOSE OR REOPENRetest Example
Section titled “Retest Example”Before:
user01 ↓GET /api/profile/1002 ↓200 OKAfter:
user01 ↓GET /api/profile/1002 ↓403 Forbidden105 — Final Report Structure
Section titled “105 — Final Report Structure”Use:
01 Executive Summary
02 Scope
03 Rules of Engagement
04 Application Architecture
05 Test Accounts and Roles
06 Application Mapping
07 Authentication
08 Session Management
09 Authorization
10 Input Handling
11 Business Logic
12 API Security
13 File Handling
14 Security Configuration
15 Findings
16 Attack Paths
17 Risk Prioritization
18 Remediation
19 Detection Opportunities
20 Retesting
21 Technical AppendixExecutive Summary Example
Section titled “Executive Summary Example”The web application penetration testidentified weaknesses across authorization,business logic, API security, andapplication configuration.
The most significant risks involvedinconsistent server-side authorizationand insufficient enforcement of user,role, object, and workflow boundaries.
Priority remediation should focus oncentralizing server-side authorization,strengthening object ownership controls,enforcing workflow permissions, minimizingAPI data exposure, and creating regressiontests for all confirmed findings.Web Application Finding Template
Section titled “Web Application Finding Template”Finding ID:
Title:
Application:
Affected Endpoint:
HTTP Method:
Starting User:
Starting Role:
Affected Object:
Expected Result:
Observed Result:
Description:
Evidence:
Attack Path:
Technical Impact:
Business Impact:
Likelihood:
Severity:
Root Cause:
Recommendation:
Detection Opportunity:
Retest Procedure:Web Application Test Checklist
Section titled “Web Application Test Checklist”- Application authorized
- URLs documented
- APIs documented
- Accounts documented
- Roles documented
- Test data documented
- Exclusions documented
Mapping
Section titled “Mapping”- Pages mapped
- Functions mapped
- Endpoints mapped
- APIs mapped
- Inputs mapped
- Objects mapped
- Workflows mapped
- Roles mapped
Authentication
Section titled “Authentication”- Login reviewed
- Error handling reviewed
- Password policy reviewed
- Lockout reviewed
- MFA reviewed
- Recovery reviewed
- Logout reviewed
Session Management
Section titled “Session Management”- Cookies reviewed
- Secure flag reviewed
- HttpOnly reviewed
- SameSite reviewed
- Timeout reviewed
- Session rotation reviewed
- Logout invalidation reviewed
Authorization
Section titled “Authorization”- Horizontal authorization tested
- Vertical authorization tested
- Object ownership tested
- Role boundaries tested
- HTTP methods tested
- Admin APIs tested
- Tenant isolation tested
Input Handling
Section titled “Input Handling”- Query parameters reviewed
- Path parameters reviewed
- POST data reviewed
- JSON reviewed
- Headers reviewed
- Output handling reviewed
- Injection risks assessed
Business Logic
Section titled “Business Logic”- Workflow mapped
- States mapped
- Role transitions reviewed
- Step skipping reviewed
- Duplicate operations reviewed
- Boundary conditions reviewed
- Authentication reviewed
- Authorization reviewed
- Object authorization reviewed
- Response data reviewed
- Field modification reviewed
- Rate controls reviewed
- Upload types reviewed
- Filename handling reviewed
- Storage reviewed
- File authorization reviewed
- Download controls reviewed
- Synthetic files used
Configuration
Section titled “Configuration”- HTTPS reviewed
- Security headers reviewed
- CORS reviewed
- Errors reviewed
- Debug functionality reviewed
- Sensitive client data reviewed
- Secret exposure reviewed
Validation
Section titled “Validation”- Hypothesis documented
- Expected behavior documented
- Minimum-impact test used
- Synthetic data used
- Evidence captured
- Testing stopped after sufficient proof
Reporting
Section titled “Reporting”- Findings reproducible
- Business impact documented
- Root causes documented
- Recommendations actionable
- Detection guidance included
- Retest procedure included
40 Web Application Pentest Review Questions
Section titled “40 Web Application Pentest Review Questions”- What is web application penetration testing?
- Why should you understand business purpose before testing?
- Why is scope important?
- What is application mapping?
- What is an endpoint inventory?
- What is the difference between authentication and authorization?
- What is MFA?
- Why should password recovery be tested?
- What is session management?
- Why should session tokens be redacted?
- What does the Secure cookie flag do?
- What does HttpOnly help protect?
- What is SameSite?
- What is horizontal authorization failure?
- What is vertical authorization failure?
- What is object-level authorization?
- Why is hiding an admin button insufficient?
- Why must APIs enforce authorization independently?
- What is multi-tenant isolation?
- Why should object ownership be verified server-side?
- What is input validation?
- Why are parameterized database queries important?
- What is cross-site scripting?
- Why does output context matter?
- What is business logic testing?
- What is workflow authorization?
- Why should server-side workflow state be validated?
- What is excessive API data exposure?
- What is mass assignment?
- Why are file uploads security-sensitive?
- Why should uploaded files have authorization controls?
- What is CORS?
- What is a Content Security Policy?
- Why should debug functionality be restricted?
- Why are hard-coded secrets dangerous?
- What is controlled validation?
- What is the minimum proof principle?
- Why should findings become regression tests?
- Why should positive and negative authorization tests both exist?
- How do you prove a web application finding has been remediated?
Final Web Application Pentest Mental Model
Section titled “Final Web Application Pentest Mental Model”Remember:
BUSINESS FUNCTION ↓APPLICATION ↓IDENTITY ↓ROLE ↓SESSION ↓ENDPOINT ↓OBJECT ↓INPUT ↓AUTHORIZATION ↓BUSINESS LOGIC ↓DATA ↓IMPACTFrom the tester’s perspective:
UNDERSTAND ↓MAP ↓BASELINE ↓FORM HYPOTHESIS ↓ALTER ONE CONTROLLED VARIABLE ↓OBSERVE SERVER BEHAVIOR ↓VALIDATE ↓CAPTURE EVIDENCE ↓MEASURE BUSINESS IMPACT ↓REMEDIATE ↓RETESTDo not think:
Which PayloadShould I Try?Think:
WHAT SECURITY ASSUMPTIONIS THE APPLICATION MAKING?
CAN MY CURRENT USERVIOLATE THAT ASSUMPTION?
DOES THE SERVERENFORCE THE BOUNDARY?
WHAT WOULD FAILUREMEAN TO THE BUSINESS?A strong web application penetration tester moves from:
REQUESTto:
IDENTITYto:
ROLEto:
OBJECTto:
PERMISSIONto:
WORKFLOWto:
BUSINESS IMPACTThat is the foundation of professional web application penetration testing.
Runbook Track Complete
Section titled “Runbook Track Complete”You have now completed the core OffSec runbook sequence:
RUNBOOK 01ACTIVE DIRECTORY PENTEST ↓RUNBOOK 02ENTERPRISE PENTEST ↓RUNBOOK 03PENETRATION TESTING METHODOLOGY ↓RUNBOOK 04WEB APPLICATION PENTESTTogether, these runbooks provide a reusable operating model for:
ACTIVE DIRECTORY +WINDOWS / LINUX +NETWORKS +ENTERPRISE INFRASTRUCTURE +WEB APPLICATIONS ↓PROFESSIONAL PENETRATION TESTINGWhat’s Next?
Section titled “What’s Next?”➡️ OffSec Learning Path Complete
You have completed the certification guidance, practical labs, and professional runbooks for this learning path.
Your next objective is to repeatedly apply the methodology across new authorized training environments until you can move naturally through:
SCOPE ↓DISCOVERY ↓ENUMERATION ↓HYPOTHESIS ↓VALIDATION ↓ATTACK PATH ↓EVIDENCE ↓BUSINESS IMPACT ↓REMEDIATION ↓RETESTThe final goal is not memorizing tools or payloads.
It is developing the ability to enter an unfamiliar authorized environment, understand how it works, identify where security boundaries fail, explain the resulting risk, and show the organization how to fix it.