Runbook 03 — Web Application Security Assessment
Purpose
Section titled “Purpose”Use this runbook after completing:
Runbook 02 — Reconnaissance and Attack Surface Discovery
At this stage, you should already know:
Which Applications Are In Scope
Which Assets Are High Priority
Which APIs Support the Application
Which Authentication Services Exist
Which Third Parties Must Be AvoidedThe objective of this runbook is to move from:
Known Applicationto:
Understood ↓Mapped ↓Tested ↓ValidatedWeb ApplicationThe operating principle is:
Understand First ↓Model Security Boundaries ↓Create Hypotheses ↓Test Methodically ↓Validate Minimally ↓Document ClearlyWhen to Use This Runbook
Section titled “When to Use This Runbook”Use this runbook:
-
when beginning assessment of a newly discovered web application.
-
when a high-priority web target is selected.
-
after significant application changes.
-
when new authenticated features are released.
-
when new roles or business workflows appear.
-
before deep authorization or business-logic testing.
-
when comparing current and legacy versions of an application.
-
when retesting a previously assessed web application.
Runbook Outcome
Section titled “Runbook Outcome”At completion, you should have:
Application Map
User Journey Map
Feature Inventory
Research Account Model
Role Matrix
Object Register
Request Register
API Feature Map
Security Boundary Map
Authorization Matrix
Workflow State Map
Testing Hypotheses
Vulnerability Candidates
Evidence Package
Assessment SummaryRequired Inputs
Section titled “Required Inputs”Before starting, obtain the current:
Scope Register
Attack Surface Map
Asset Prioritization
Recon Hypotheses
Testing Restrictions
Third-Party RegisterYou should also have:
Dedicated Research Browser
Intercepting Proxy
Researcher-Controlled AccountsRequired Records
Section titled “Required Records”Create or update:
01 Application_Map.md
02 User_Journey.md
03 Feature_Inventory.csv
04 Research_Accounts.csv
05 Role_Matrix.csv
06 Object_Register.csv
07 Request_Register.csv
08 API_Feature_Map.csv
09 Security_Boundaries.md
10 Authorization_Matrix.csv
11 Workflow_State_Map.md
12 Security_Hypotheses.csv
13 Testing_Log.csv
14 Vulnerability_Candidates.csv
15 Evidence_Register.csv
16 Assessment_Summary.mdPhase 1 — Assessment Authorization Gate
Section titled “Phase 1 — Assessment Authorization Gate”Step 1 — Confirm Target Scope
Section titled “Step 1 — Confirm Target Scope”Before opening the application for active testing, confirm:
Hostname Is In Scope
Application Is Not Excluded
Testing Method Is Allowed
Automation Limits Are Known
Third Parties Are ExcludedIf any status is:
Unknownstop and resolve it before proceeding.
Step 2 — Configure Proxy Scope
Section titled “Step 2 — Configure Proxy Scope”Include only:
Authorized Application
Authorized API
Authorized Authentication ServicesExclude:
Analytics
Payment Providers
Support Platforms
Advertising
Other Third PartiesStep 3 — Define Assessment Objective
Section titled “Step 3 — Define Assessment Objective”Do not begin with:
Find VulnerabilitiesUse something specific, such as:
Understand and assessthe application'sauthentication,authorization,file-sharing andorganization workflows.Phase 2 — Prepare Research Identities
Section titled “Phase 2 — Prepare Research Identities”Step 4 — Create Controlled Accounts
Section titled “Step 4 — Create Controlled Accounts”Where supported, prepare:
Account A
Account BFor multi-tenant applications:
Tenant A└── Account A
Tenant B└── Account BIf role testing is required:
Tenant A├── Standard Member└── Organization AdminStep 5 — Record Account Model
Section titled “Step 5 — Record Account Model”Create:
04 Research_Accounts.csvwith:
| Account | Role | Tenant | Purpose | Status |
|---|---|---|---|---|
| Account A | Standard User | Tenant A | Owner testing | Active |
| Account B | Standard User | Tenant B | Cross-user testing | Active |
| Admin A | Org Admin | Tenant A | Role testing | Optional |
Do not store passwords or live authentication tokens.
Phase 3 — Use the Application Normally
Section titled “Phase 3 — Use the Application Normally”Step 6 — Establish Legitimate Usage
Section titled “Step 6 — Establish Legitimate Usage”Before modifying requests, perform normal activities such as:
Register
Login
View Dashboard
Edit Profile
Create Resource
Upload File
Share Resource
Invite User
Change Settings
LogoutThe objective is:
UnderstandApplication BehaviorStep 7 — Keep Proxy as Recorder
Section titled “Step 7 — Keep Proxy as Recorder”Initially use the proxy primarily to capture:
Requests
Responses
API Calls
Cookies
Object IDs
State ChangesAvoid unnecessary request manipulation during this phase.
Phase 4 — Build User Journey
Section titled “Phase 4 — Build User Journey”Step 8 — Create User Journey Map
Section titled “Step 8 — Create User Journey Map”Create:
02 User_Journey.mdExample:
Visitor ↓Registration ↓Verification ↓Login ↓Dashboard ↓Create Organization ↓Create Project ↓Upload File ↓Share File ↓Invite Member ↓Account Management ↓LogoutStep 9 — Identify Security-Critical Transitions
Section titled “Step 9 — Identify Security-Critical Transitions”Highlight transitions such as:
Guest ↓Authenticated
Member ↓Admin
Private ↓Shared
Active ↓Revoked
Tenant A ↓Tenant BPhase 5 — Build Application Map
Section titled “Phase 5 — Build Application Map”Step 10 — Inventory Application Areas
Section titled “Step 10 — Inventory Application Areas”Create:
01 Application_Map.mdExample:
Application│├── Authentication│ ├── Register│ ├── Login│ ├── Password Reset│ └── Logout│├── Profile│├── Organizations│ ├── Members│ ├── Invitations│ └── Roles│├── Projects│├── Files│ ├── Upload│ ├── Download│ ├── Preview│ └── Share│├── Developer│ ├── API Keys│ └── Integrations│└── AdministrationStep 11 — Build Feature Inventory
Section titled “Step 11 — Build Feature Inventory”Create:
03 Feature_Inventory.csvwith:
| Feature | Area | Auth Required | Role | Object | Priority |
|---|
Increase priority for:
Authentication
Private Data
Files
Sharing
Organizations
Administrative Functions
API Keys
Payments
Account RecoveryPhase 6 — Map Objects
Section titled “Phase 6 — Map Objects”Step 12 — Identify Application Objects
Section titled “Step 12 — Identify Application Objects”Examples:
User
Organization
Membership
Project
File
Message
Invitation
Share Link
API Key
SessionStep 13 — Create Object Register
Section titled “Step 13 — Create Object Register”Create:
06 Object_Register.csvwith:
| Object | Identifier | Owner/Parent | Sensitivity | Operations |
|---|
Step 14 — Map Object Relationships
Section titled “Step 14 — Map Object Relationships”Example:
User ↓ belongs toOrganization ↓ containsProject ↓ containsFileAnother:
Organization ↓ createsInvitation ↓ createsMembershipStep 15 — Identify Nested Authorization
Section titled “Step 15 — Identify Nested Authorization”Ask:
Does the ProjectBelong to theSpecified Organization?
Does the FileBelong to theSpecified Project?
Does the MemberBelong to theSpecified Tenant?Many authorization weaknesses occur because one object is validated while its parent relationship is not.
Phase 7 — Map Roles
Section titled “Phase 7 — Map Roles”Step 16 — Identify Confirmed Roles
Section titled “Step 16 — Identify Confirmed Roles”Examples:
Guest
Standard User
Member
Manager
Organization Admin
Platform AdminDo not invent roles that are not observed.
Step 17 — Create Role Matrix
Section titled “Step 17 — Create Role Matrix”Create:
05 Role_Matrix.csvExample:
| Feature | Guest | User | Member | Admin |
|---|---|---|---|---|
| View Own Profile | No | Yes | Yes | Yes |
| Create Project | No | Yes | Yes | Yes |
| Invite Member | No | No | No | Yes |
| Change Role | No | No | No | Yes |
Step 18 — Separate UI and Backend Authorization
Section titled “Step 18 — Separate UI and Backend Authorization”Remember:
Hidden Button ≠Protected ActionRecord any privileged UI action for later backend validation.
Phase 8 — Map Requests
Section titled “Phase 8 — Map Requests”Step 19 — Map UI Actions to Backend Requests
Section titled “Step 19 — Map UI Actions to Backend Requests”For each important feature, identify:
UI Action ↓HTTP Request ↓Endpoint ↓Object ↓Security DecisionExample:
Download File ↓GET /api/v2/files/{file_id} ↓Can This UserAccess This File?Step 20 — Create Request Register
Section titled “Step 20 — Create Request Register”Create:
07 Request_Register.csvwith:
| Feature | Method | Endpoint | Object | Role | Security Decision |
|---|
Step 21 — Save Baselines
Section titled “Step 21 — Save Baselines”For important operations save known-good requests:
Authentication/
Authorization/
Projects/
Files/
Organizations/
Developer/Redact authentication material.
Phase 9 — Map API Features
Section titled “Phase 9 — Map API Features”Step 22 — Create API Feature Map
Section titled “Step 22 — Create API Feature Map”Create:
08 API_Feature_Map.csvwith:
| UI Feature | API Endpoint | Method | Object | Expected Control |
|---|
Example:
| View Project | /projects/{id} | GET | Project | Object authorization |
| Change Role | /members/{id} | PATCH | Membership | Role authorization |
| Download File | /files/{id} | GET | File | Ownership/access check |
Step 23 — Identify Object Identifiers
Section titled “Step 23 — Identify Object Identifiers”Look for:
user_id
organization_id
project_id
file_id
member_id
invite_id
tokenRecord where each identifier appears.
Phase 10 — Identify Client-Controlled Values
Section titled “Phase 10 — Identify Client-Controlled Values”Step 24 — Record Client-Supplied Security-Relevant Fields
Section titled “Step 24 — Record Client-Supplied Security-Relevant Fields”Examples:
owner_id
organization_id
role
status
permissions
price
user_idAsk:
Should the ClientBe Allowed toControl This?Step 25 — Identify Expected Server-Controlled Fields
Section titled “Step 25 — Identify Expected Server-Controlled Fields”Typical server-controlled values include:
Owner
Tenant
Role
Privilege
Account Status
Created ByThese observations become later hypotheses.
Phase 11 — Map Security Boundaries
Section titled “Phase 11 — Map Security Boundaries”Step 26 — Create Security Boundary Map
Section titled “Step 26 — Create Security Boundary Map”Create:
09 Security_Boundaries.mdInclude at least:
Guest ↓Authenticated User
User A ↓User B
Tenant A ↓Tenant B
Member ↓Admin
Browser ↓Backend
Application ↓File StorageStep 27 — Horizontal Boundary
Section titled “Step 27 — Horizontal Boundary”Expected:
User ACan AccessUser A Resourcesbut:
User AShould Not AccessUser B Resourcesunless explicitly shared.
Step 28 — Vertical Boundary
Section titled “Step 28 — Vertical Boundary”Expected:
Member ≠AdministratorPrivileged actions must be enforced server-side.
Step 29 — Tenant Boundary
Section titled “Step 29 — Tenant Boundary”For SaaS:
Tenant A ≠Tenant Beven when user roles are identical.
Phase 12 — Build Authorization Matrix
Section titled “Phase 12 — Build Authorization Matrix”Step 30 — Create Expected Authorization Decisions
Section titled “Step 30 — Create Expected Authorization Decisions”Create:
10 Authorization_Matrix.csvExample:
| Action | Own Object | Other User | Other Tenant | Member | Admin |
|---|---|---|---|---|---|
| View Project | Allow | Deny | Deny | Depends | Allow |
| Edit Project | Allow | Deny | Deny | Depends | Allow |
| Download File | Allow | Deny | Deny | Depends | Allow |
| Change Role | N/A | N/A | N/A | Deny | Allow |
The matrix documents:
ExpectedSecurity Behaviorbefore testing begins.
Phase 13 — Map Authentication Surface
Section titled “Phase 13 — Map Authentication Surface”Step 31 — Identify Authentication Workflows
Section titled “Step 31 — Identify Authentication Workflows”Map:
Registration
Login
Logout
Password Change
Password Reset
MFA
Recovery
Session CreationStep 32 — Record Authentication State
Section titled “Step 32 — Record Authentication State”Identify whether the application uses:
Session Cookie
Bearer Token
JWT
Refresh TokenRecord only enough for mapping.
Detailed authentication testing should follow the dedicated authentication runbook when needed.
Phase 14 — Map File Workflows
Section titled “Phase 14 — Map File Workflows”Step 33 — Map Upload
Section titled “Step 33 — Map Upload”Document:
Select File ↓Upload ↓File Object ↓StorageRecord:
Upload Endpoint
File Identifier
Owner
Project/Tenant Relationship
ProcessingStep 34 — Map Download
Section titled “Step 34 — Map Download”Document:
User ↓Application ↓Authorization ↓File AccessStep 35 — Map Sharing
Section titled “Step 35 — Map Sharing”Document:
Owner ↓Create Share ↓Token / Link ↓Recipient Access ↓RevokeCreate future questions around:
Ownership
Expiration
Revocation
Token BindingPhase 15 — Map Invitation and Membership Workflows
Section titled “Phase 15 — Map Invitation and Membership Workflows”Step 36 — Map Invitations
Section titled “Step 36 — Map Invitations”Example:
Admin ↓Create Invitation ↓Invitation Token ↓Recipient Accepts ↓Membership CreatedRecord:
Assigned Role
Tenant
Recipient
Expiry
RevocationStep 37 — Map Role Changes
Section titled “Step 37 — Map Role Changes”Document:
Actor
Target Member
Old Role
New Role
Endpoint
Expected PermissionPhase 16 — Map Application States
Section titled “Phase 16 — Map Application States”Step 38 — Identify State Machines
Section titled “Step 38 — Identify State Machines”Examples:
Invitation:PendingAcceptedRevokedExpiredProject:ActiveArchivedDeletedShare Link:ActiveRevokedExpiredStep 39 — Create State Map
Section titled “Step 39 — Create State Map”Create:
11 Workflow_State_Map.mdStep 40 — Create State Security Questions
Section titled “Step 40 — Create State Security Questions”Examples:
Can Revoked LinkStill Work?
Can Expired InvitationStill Be Accepted?
Can Removed MemberStill Access Resources?
Can Archived ObjectStill Be Modified?Phase 17 — Build Security Hypotheses
Section titled “Phase 17 — Build Security Hypotheses”Step 41 — Create Hypothesis Register
Section titled “Step 41 — Create Hypothesis Register”Create:
12 Security_Hypotheses.csvwith:
| ID | Feature | Observation | Hypothesis | Priority | Status |
|---|
Step 42 — Use Hypothesis Formula
Section titled “Step 42 — Use Hypothesis Formula”Use:
Because[Observation]
I Believe[Control Failure]
May Allow[Capability]Step 43 — Example: Object Authorization
Section titled “Step 43 — Example: Object Authorization”Because project_idis supplied by the client,
I believe object ownershipmay not be enforcedserver-side,
which may allow anotherauthenticated user toaccess the project.Step 44 — Example: Vertical Authorization
Section titled “Step 44 — Example: Vertical Authorization”Because role changesare performed througha normal API request,
I believe a standard membermay be able to invokethe endpoint directly
if role authorizationis enforced only by the UI.Step 45 — Example: File Sharing
Section titled “Step 45 — Example: File Sharing”Because file accesscan occur throughshare links,
I believe revoked linksmay remain usable
if revocation stateis not checked ataccess time.Phase 18 — Begin Controlled Testing
Section titled “Phase 18 — Begin Controlled Testing”Step 46 — Follow Baseline-Driven Testing
Section titled “Step 46 — Follow Baseline-Driven Testing”Use:
Known-Good Baseline ↓Change One Variable ↓Repeat Request ↓CompareStep 47 — Record Every Test
Section titled “Step 47 — Record Every Test”Create:
13 Testing_Log.csvwith:
| Date | Hypothesis | Test | Expected | Observed | Result |
|---|
Record both:
Positive Results
Negative ResultsPhase 19 — Authorization Testing
Section titled “Phase 19 — Authorization Testing”Step 48 — Horizontal Authorization
Section titled “Step 48 — Horizontal Authorization”Use:
Account A ↓Create Object A
Account B ↓Request Object AExpected:
Deniedunless explicitly shared.
Step 49 — Cross-Tenant Authorization
Section titled “Step 49 — Cross-Tenant Authorization”Use:
Tenant A Resource ↓Tenant B AccountExpected:
DeniedStep 50 — Vertical Authorization
Section titled “Step 50 — Vertical Authorization”Use controlled low-privilege and admin accounts where available.
Compare:
Admin Requestagainst:
Member RequestChange only the authentication context where possible.
Step 51 — Stop Condition
Section titled “Step 51 — Stop Condition”If one controlled unauthorized request proves the boundary failure:
Capture Evidence ↓StopDo not enumerate additional unrelated resources.
Phase 20 — Input Validation Assessment
Section titled “Phase 20 — Input Validation Assessment”Step 52 — Identify Input Context
Section titled “Step 52 — Identify Input Context”Before testing an input, determine whether it is used as:
Text
Number
Object ID
URL
File Name
Path
Search Query
Structured JSONStep 53 — Test Contextually
Section titled “Step 53 — Test Contextually”Do not run random payload lists.
Use:
Input Context ↓Security Hypothesis ↓Minimal TestStep 54 — Prefer Non-Destructive Validation
Section titled “Step 54 — Prefer Non-Destructive Validation”For suspicious interpreter behavior, prefer:
Controlled Errors
Harmless Response Differences
Researcher-Controlled Callbacks
Test ObjectsAvoid:
Data Destruction
Bulk Data Extraction
System DisruptionPhase 21 — File Security Assessment
Section titled “Phase 21 — File Security Assessment”Step 55 — Validate Ownership
Section titled “Step 55 — Validate Ownership”Using controlled files:
Account A ↓File A
Account B ↓Request File AExpected:
Deniedunless sharing is intended.
Step 56 — Validate Share State
Section titled “Step 56 — Validate Share State”For controlled share links:
Create ↓Access ↓Revoke ↓Access AgainExpected after revoke:
DeniedStep 57 — Avoid Sensitive Files
Section titled “Step 57 — Avoid Sensitive Files”Never use:
Customer Files
Production Secrets
System Filesto prove access control.
Phase 22 — Business Logic Assessment
Section titled “Phase 22 — Business Logic Assessment”Step 58 — Understand Expected Workflow
Section titled “Step 58 — Understand Expected Workflow”Example:
Invite Member ↓Accept Invitation ↓Membership Createdor:
Create Order ↓Pay ↓CompleteStep 59 — Identify Rules
Section titled “Step 59 — Identify Rules”Examples:
Only Admin Can Change Roles
Revoked Invitation Cannot Be Accepted
User Cannot Approve Own Restricted Action
Price Must Be Server-ControlledStep 60 — Test One Rule at a Time
Section titled “Step 60 — Test One Rule at a Time”Ask:
Can Step Be Skipped?
Can State Be Reordered?
Can Restricted ValueBe Changed?
Can Old StateBe Reused?Use controlled objects and accounts.
Phase 23 — Candidate Management
Section titled “Phase 23 — Candidate Management”Step 61 — Create Candidate Register
Section titled “Step 61 — Create Candidate Register”Create:
14 Vulnerability_Candidates.csvwith:
| ID | Hypothesis | Observation | Evidence | Status |
|---|
Use:
Needs Validation
False Positive
Confirmed
ReportedStep 62 — Do Not Promote Too Early
Section titled “Step 62 — Do Not Promote Too Early”Remember:
Unexpected Behavior ↓Candidate ↓Validation ↓FindingPhase 24 — Vulnerability Validation
Section titled “Phase 24 — Vulnerability Validation”Step 63 — Validate Reproducibility
Section titled “Step 63 — Validate Reproducibility”Ask:
Can It Be Repeated?
Under Which Account?
Under Which Role?
Against Which Object?
Under Which State?Step 64 — Identify Broken Boundary
Section titled “Step 64 — Identify Broken Boundary”Possible boundaries:
Authentication
Object Authorization
Tenant Isolation
Role Authorization
Workflow State
File Ownership
Client/Server TrustStep 65 — Identify Capability
Section titled “Step 65 — Identify Capability”Determine what the attacker gains:
Read
Modify
Delete
Share
Assume Role
Perform Restricted ActionStep 66 — Separate Observed and Potential Impact
Section titled “Step 66 — Separate Observed and Potential Impact”Observed:
Account B accessedAccount A's controlled file.Potential:
The same missingownership control may exposeother user files.Do not present potential impact as proven.
Phase 25 — Evidence Collection
Section titled “Phase 25 — Evidence Collection”Step 67 — Create Evidence Folder
Section titled “Step 67 — Create Evidence Folder”For each confirmed issue:
Evidence/└── FIND-001/ ├── 01-baseline-request.txt ├── 02-baseline-response.txt ├── 03-test-request.txt ├── 04-test-response.txt ├── 05-screenshot.png └── 06-timeline.mdStep 68 — Create Evidence Register
Section titled “Step 68 — Create Evidence Register”Create:
15 Evidence_Register.csvwith:
| Evidence | Finding | Purpose | Redacted |
|---|
Step 69 — Redact Sensitive Information
Section titled “Step 69 — Redact Sensitive Information”Remove:
Passwords
Session Cookies
Bearer Tokens
API Keys
Private DataPhase 26 — Stop Conditions
Section titled “Phase 26 — Stop Conditions”Stop immediately if:
Real Customer Data Appears
Unexpected AdministrativeAccess Is Obtained
Production Secrets Appear
Out-of-Scope Systems Are Reached
Operational Impact OccursAlso stop once:
Minimum EvidenceRequired to Provethe VulnerabilityHas Been CollectedPhase 27 — Assessment Summary
Section titled “Phase 27 — Assessment Summary”Step 70 — Create Assessment Summary
Section titled “Step 70 — Create Assessment Summary”Create:
16 Assessment_Summary.mdInclude:
Target
Assessment Objective
Accounts Used
Application Areas Mapped
Objects
Roles
Security Boundaries
Workflows Tested
Hypotheses Tested
Secure Behaviors
Candidates
Confirmed Findings
Evidence
Recommended Next ActionsOperational Decision Tree
Section titled “Operational Decision Tree”Use:
Application Selected ↓Scope Check ↓Normal Usage ↓Map Features ↓Map Roles ↓Map Objects ↓Capture Requests ↓Map Boundaries ↓Create Hypotheses ↓Test Baseline ↓Modify One Variable ↓Unexpected? / \ No Yes ↓ ↓Record Candidate ↓ Reproduce ↓ Boundary Broken? / \ No Yes ↓ ↓ Reject Validate Impact ↓ Evidence ↓ StopHigh-Priority Web Security Questions
Section titled “High-Priority Web Security Questions”During assessment, repeatedly ask:
Can User AAccess User B?
Can Tenant AAccess Tenant B?
Can MemberAct as Admin?
Can Client-ControlledValues Affect Ownershipor Privilege?
Can RevokedAccess Still Work?
Can RestrictedWorkflow StatesBe Reused?
Does the BackendRevalidate EverySensitive Action?Common Failure 1 — Testing Before Understanding
Section titled “Common Failure 1 — Testing Before Understanding”Avoid:
Find Parameter ↓Send Payloadbefore understanding:
Purpose
Owner
Role
State
Expected BehaviorCommon Failure 2 — Treating Pages as the Security Model
Section titled “Common Failure 2 — Treating Pages as the Security Model”Security decisions usually occur around:
Objects
APIs
Roles
States
Relationshipsnot simply pages.
Common Failure 3 — Trusting the UI
Section titled “Common Failure 3 — Trusting the UI”Remember:
Disabled Field ≠Server-Side ValidationHidden Button ≠Server-Side AuthorizationCommon Failure 4 — No Object Ownership Model
Section titled “Common Failure 4 — No Object Ownership Model”Testing file_id without knowing:
Owner
Tenant
Parent Project
Sharing Statecan produce incorrect conclusions.
Common Failure 5 — No Baseline
Section titled “Common Failure 5 — No Baseline”Always preserve:
LegitimateExpected Behaviorbefore manipulating requests.
Common Failure 6 — Random Payload Testing
Section titled “Common Failure 6 — Random Payload Testing”Avoid:
500 Payloads ↓No ContextUse:
Security Question ↓Relevant TestCommon Failure 7 — Using Real Customer Resources
Section titled “Common Failure 7 — Using Real Customer Resources”Authorization testing should use:
Account A
Account B
Controlled ObjectsCommon Failure 8 — Over-Testing Confirmed Findings
Section titled “Common Failure 8 — Over-Testing Confirmed Findings”Once a controlled test proves:
Security Boundary Faileddo not continue simply to increase the amount of exposed data.
Common Failure 9 — Ignoring Negative Results
Section titled “Common Failure 9 — Ignoring Negative Results”Secure behavior is useful information.
Record:
Hypothesis Rejectedso it is not repeatedly tested.
Common Failure 10 — Overstating Impact
Section titled “Common Failure 10 — Overstating Impact”If you prove:
Read One Test Filedo not claim:
Full Platform Compromisewithout a connected, demonstrated attack path.
Assessment Quality Checklist
Section titled “Assessment Quality Checklist”Before closing this runbook, confirm:
[ ] Scope validated
[ ] Proxy scope configured
[ ] Research accounts prepared
[ ] User journey mapped
[ ] Features inventoried
[ ] Roles documented
[ ] Objects documented
[ ] Object relationships mapped
[ ] Baseline requests saved
[ ] API features mapped
[ ] Security boundaries defined
[ ] Authorization matrix created
[ ] Application states mapped
[ ] File workflows mapped
[ ] Invitation workflows mapped
[ ] Business rules documented
[ ] Security hypotheses created
[ ] Tests logged
[ ] Negative results recorded
[ ] Vulnerability candidates tracked
[ ] Confirmed findings reproduced
[ ] Evidence redacted
[ ] Stop conditions followed
[ ] Assessment summary completedRunbook Success Criteria
Section titled “Runbook Success Criteria”This runbook is complete when you can clearly explain:
How the Application Works
Which Roles Exist
Which Objects Exist
Who Owns Them
How Objects Relate
Which API RequestsPerform Important Actions
Which Security BoundariesMust Be Enforced
Which HypothesesWere Tested
Which BehaviorsWere Secure
Which FindingsWere Confirmed
and
What EvidenceSupports Each FindingProfessional Web Assessment Workflow
Section titled “Professional Web Assessment Workflow”Use:
Scope ↓Normal Usage ↓User Journey ↓Features ↓Roles ↓Objects ↓Relationships ↓Requests ↓Security Boundaries ↓Expected Controls ↓Hypotheses ↓Controlled Testing ↓Validation ↓Evidence ↓ReportingKey Takeaways
Section titled “Key Takeaways”Remember:
Page ≠Security BoundaryHidden Button ≠AuthorizationObject ID ≠Object OwnershipClient Validation ≠Server ValidationUnexpected Response ≠Confirmed VulnerabilityPotential Impact ≠Observed ImpactMore Exploitation ≠Better EvidenceA professional web application assessment is built around:
Architecture
+
Users
+
Roles
+
Objects
+
Relationships
+
States
+
Security Boundaries
+
EvidenceThe goal is not:
Try Every PayloadThe goal is:
UnderstandWhich SecurityDecision Should Occur
and
Verify Whetherthe BackendEnforces ItRunbook Output
Section titled “Runbook Output”At completion, update or archive:
01 Application_Map.md
02 User_Journey.md
03 Feature_Inventory.csv
04 Research_Accounts.csv
05 Role_Matrix.csv
06 Object_Register.csv
07 Request_Register.csv
08 API_Feature_Map.csv
09 Security_Boundaries.md
10 Authorization_Matrix.csv
11 Workflow_State_Map.md
12 Security_Hypotheses.csv
13 Testing_Log.csv
14 Vulnerability_Candidates.csv
15 Evidence_Register.csv
16 Assessment_Summary.mdRunbooks Complete
Section titled “Runbooks Complete”You now have the planned core operational runbooks for the Bug Bounty Hunter Learning Path:
Runbook 01Bug Bounty Program Intakeand Scope Validation
↓
Runbook 02Reconnaissance andAttack Surface Discovery
↓
Runbook 03Web ApplicationSecurity AssessmentTogether they create a practical end-to-end operating model:
Program Intake ↓Authorization ↓Scope ↓Reconnaissance ↓Attack Surface ↓Application Mapping ↓Security Boundaries ↓Hypothesis-Driven Testing ↓Validation ↓Evidence ↓ReportingLearning Path Operational Completion
Section titled “Learning Path Operational Completion”The complete progression is now:
Bug Bounty HunterLearning Modules ↓5 Hands-On Labs ↓3 Core Operational Runbooks ↓Portfolio Projects ↓Independent Security ResearchThe final professional principle for this learning path is:
Know Your Scope
Understand the Target
Map the Security Model
Test with Purpose
Validate Minimally
Preserve Evidence
Communicate Clearly➡️ Bug Bounty Hunter Learning Path — Labs and Core Runbooks Complete