02 Web Security
Welcome to:
Module 02 — Web Security
In the previous module, you learned how professional bug bounty research begins with:
Authorization ↓Scope ↓Rules ↓Methodology ↓Evidence ↓ReportingNow you will build the technical foundation required to assess:
Web ApplicationsWeb applications are one of the most important attack surfaces in bug bounty hunting.
They expose:
Pages
Forms
APIs
Authentication
Sessions
User Roles
Files
Payments
Business Workflows
IntegrationsThe objective of this module is not to memorize vulnerability names.
The objective is to understand:
How theApplication Works
↓
Where TrustBoundaries Exist
↓
What UsersCan Control
↓
Where SecurityAssumptions May FailModule Objectives
Section titled “Module Objectives”By the end of this module, you will understand how to:
-
explain basic web application architecture.
-
understand clients, servers and back-end services.
-
understand HTTP and HTTPS.
-
analyze HTTP requests.
-
analyze HTTP responses.
-
understand HTTP methods.
-
analyze headers.
-
understand cookies.
-
understand sessions.
-
understand authentication workflows.
-
investigate password reset flows.
-
understand MFA-related web flows.
-
analyze authorization.
-
test horizontal access control.
-
test vertical access control.
-
understand IDOR and BOLA concepts.
-
analyze user-controlled input.
-
understand reflected XSS.
-
understand stored XSS.
-
understand DOM-based XSS.
-
understand SQL injection.
-
understand command injection.
-
understand path traversal.
-
understand file inclusion concepts.
-
analyze file upload functionality.
-
understand CSRF.
-
understand SSRF.
-
understand open redirects.
-
identify information disclosure.
-
analyze CORS.
-
understand clickjacking.
-
understand host-header issues.
-
identify security misconfiguration.
-
test business logic.
-
test workflow controls.
-
analyze race-condition concepts.
-
validate findings safely.
-
build evidence.
-
create professional reports.
1 — How a Web Application Works
Section titled “1 — How a Web Application Works”A simplified web application looks like:
Browser ↓HTTP Request ↓Web Server ↓Application ↓Database / Services ↓HTTP Response ↓BrowserAs a security researcher, you need to understand what happens at each layer.
2 — The Client
Section titled “2 — The Client”The client is commonly:
Web BrowserIt handles:
HTML
CSS
JavaScript
Cookies
Local Storage
User InteractionBut remember:
Client-Side Logic ≠Security BoundaryAnything controlled by the browser may potentially be modified by the user.
3 — The Server
Section titled “3 — The Server”The server processes:
Requests
Authentication
Authorization
Business Logic
Database OperationsSecurity-sensitive decisions should generally be enforced:
Server-Side4 — HTTP
Section titled “4 — HTTP”HTTP is the protocol used for communication between:
Client ↔ServerA typical request contains:
Method
Path
Headers
Cookies
Parameters
Body5 — Example HTTP Request
Section titled “5 — Example HTTP Request”GET /account/profile HTTP/1.1Host: app.example.comCookie: session=abc123User-Agent: Browser6 — HTTP Response
Section titled “6 — HTTP Response”Example:
HTTP/1.1 200 OKContent-Type: text/htmlSet-Cookie: session=abc123The response may contain:
HTML
JSON
Redirect
Error
File7 — HTTP Methods
Section titled “7 — HTTP Methods”Common methods include:
GET
POST
PUT
PATCH
DELETE
OPTIONSDo not assume:
GET = Read
POST = SecureSecurity depends on application behavior.
8 — Method Testing
Section titled “8 — Method Testing”Suppose:
POST /api/user/deleteis protected.
Ask whether:
DELETE /api/user/123or another method behaves differently.
Method changes can reveal inconsistent controls.
9 — HTTP Headers
Section titled “9 — HTTP Headers”Headers may include:
Authorization
Cookie
Content-Type
Origin
Referer
Host
User-AgentHeaders may influence:
Authentication
Routing
CORS
Caching
Application Logic10 — Parameters
Section titled “10 — Parameters”Parameters can appear in:
URL
Query String
POST Body
JSON
Headers
CookiesExample:
/user?id=1001Ask:
Can IModify id?11 — Baseline Requests
Section titled “11 — Baseline Requests”Before changing anything:
CaptureNormal RequestUnderstand:
Expected Input
Expected Response
Required Session
Required RoleThen modify one element at a time.
12 — HTTP Status Codes
Section titled “12 — HTTP Status Codes”Common status codes:
200Success
301 / 302Redirect
400Bad Request
401Unauthenticated
403Forbidden
404Not Found
500Server ErrorDo not rely only on status codes.
Example:
403could still return sensitive data in the response body.
13 — Authentication
Section titled “13 — Authentication”Authentication answers:
Who Are You?Common methods:
Username / Password
MFA
SSO
OAuth
Magic Link
API Token14 — Authentication Attack Surface
Section titled “14 — Authentication Attack Surface”Map:
Registration
Login
Logout
Password Reset
MFA
Remember Me
Email Verification
Account Recovery
SSO15 — Login Testing
Section titled “15 — Login Testing”Ask:
Can UsersBe Enumerated?
Is Rate LimitingPresent?
Are ErrorsDifferent?
Are SessionsCreated Securely?16 — Username Enumeration
Section titled “16 — Username Enumeration”Example:
Unknown User:Account does not existversus:
Valid User:Incorrect passwordThis may reveal:
Valid AccountsImpact depends on context.
17 — Password Policies
Section titled “17 — Password Policies”Review:
Minimum Length
Complexity
Reuse
Reset
Lockout
Rate LimitingDo not test in a way that disrupts legitimate users.
18 — Rate Limiting
Section titled “18 — Rate Limiting”Rate limits may apply to:
Login
Password Reset
OTP
API Requests
Coupon UseTest only within program rules.
19 — Account Lockout
Section titled “19 — Account Lockout”Account lockout can reduce brute-force risk.
But overly aggressive lockout may create:
Denial of Serviceagainst users.
Understand the tradeoff.
20 — MFA
Section titled “20 — MFA”Multi-factor authentication may use:
Authenticator App
SMS
Email OTP
Hardware KeyTesting questions include:
Can MFABe Skipped?
Can StateBe Reused?
Can Backup FlowsBypass MFA?21 — Password Reset
Section titled “21 — Password Reset”Password-reset functionality is high-value.
Map:
Request Reset ↓Token Created ↓Link Sent ↓Token Validated ↓Password Changed22 — Password Reset Questions
Section titled “22 — Password Reset Questions”Ask:
Is Token Predictable?
Does Token Expire?
Is Token Single Use?
Can User Be Changed?
Does Old SessionRemain Active?23 — Session Management
Section titled “23 — Session Management”After authentication, applications often create:
Sessionrepresented by:
Cookie
Token
JWT24 — Session Cookie
Section titled “24 — Session Cookie”Example:
Cookie: session=abc123That value may represent:
AuthenticatedUser StateProtect it.
25 — Cookie Security Attributes
Section titled “25 — Cookie Security Attributes”Important attributes include:
Secure
HttpOnly
SameSiteThey can reduce certain attack risks.
26 — Session Fixation
Section titled “26 — Session Fixation”Session fixation occurs when an attacker can influence or preserve a session identifier across authentication.
The important question:
Does Session IDChange After Login?27 — Logout Testing
Section titled “27 — Logout Testing”Ask:
Does LogoutInvalidate Session?
Does Old TokenStill Work?28 — Multiple Sessions
Section titled “28 — Multiple Sessions”Check how applications handle:
Multiple Devices
Password Change
MFA Reset
Account RecoveryDo existing sessions remain valid?
29 — Authorization
Section titled “29 — Authorization”Authorization answers:
What Are YouAllowed to Do?This is one of the most important bug bounty areas.
30 — Authentication vs Authorization
Section titled “30 — Authentication vs Authorization”Authentication:
I Am User AAuthorization:
Can User AAccess Resource B?31 — Horizontal Access Control
Section titled “31 — Horizontal Access Control”Horizontal authorization controls access between users at the same privilege level.
Example:
User A ↓User A's InvoiceShould User B access it?
No32 — Vertical Access Control
Section titled “32 — Vertical Access Control”Vertical access control separates:
Normal User
AdministratorAsk:
Can Normal UserReach Admin Function?33 — IDOR
Section titled “33 — IDOR”IDOR stands for:
Insecure DirectObject ReferenceExample:
GET /invoice/1001Modify:
1001 ↓1002If another user’s data becomes accessible without proper authorization, you may have an access-control vulnerability.
34 — Two-Account Testing
Section titled “34 — Two-Account Testing”Use:
Account A
Account Bto validate authorization safely.
Example:
Account ACreates File
↓
Account BAttempts Access35 — BOLA
Section titled “35 — BOLA”In API environments, similar object-level authorization failures are often referred to as:
BOLAor:
Broken ObjectLevel Authorization36 — Function-Level Authorization
Section titled “36 — Function-Level Authorization”Ask whether users can access restricted functions such as:
/admin/delete-user
/api/admin/export
/management/settingseven if the UI hides them.
37 — Hidden UI Does Not Equal Authorization
Section titled “37 — Hidden UI Does Not Equal Authorization”A button hidden with JavaScript does not prove:
Server-SideAuthorizationAlways test the request itself.
38 — Parameter-Based Authorization
Section titled “38 — Parameter-Based Authorization”Example:
{ "user_id": 1001, "role": "user"}Ask:
Can roleBe Changed?But do not assume the server trusts it.
Validate.
39 — Input Handling
Section titled “39 — Input Handling”User input may reach:
HTML
Database
Operating System
File System
Backend ServicesVulnerabilities can occur when input crosses trust boundaries unsafely.
40 — Injection
Section titled “40 — Injection”Injection occurs when user input is interpreted as:
Code
Query
Command
Structurerather than only:
Data41 — Cross-Site Scripting
Section titled “41 — Cross-Site Scripting”XSS occurs when attacker-controlled input executes as:
JavaScriptin another user’s browser.
Major categories:
Reflected
Stored
DOM-Based42 — Reflected XSS
Section titled “42 — Reflected XSS”Input appears immediately in the response.
Conceptually:
Input ↓Response ↓Browser Execution43 — Stored XSS
Section titled “43 — Stored XSS”Payload is stored server-side and later shown to users.
Example areas:
Comments
Profiles
Support Tickets
Messages44 — DOM-Based XSS
Section titled “44 — DOM-Based XSS”The vulnerability exists primarily in client-side JavaScript.
Flow:
User-Controlled Source ↓JavaScript ↓Unsafe Sink45 — XSS Testing Mindset
Section titled “45 — XSS Testing Mindset”Do not only ask:
Does <script>Execute?Ask:
Where Is InputInserted?
HTML?
Attribute?
JavaScript?
URL?
DOM?Context matters.
46 — XSS Impact
Section titled “46 — XSS Impact”Potential impact may include:
Action as Victim
Sensitive Data Access
UI Manipulation
Session Impactdepending on application protections and context.
47 — SQL Injection
Section titled “47 — SQL Injection”SQL injection occurs when user input affects database query structure.
Conceptually:
Input ↓SQL Query ↓UnexpectedDatabase Behavior48 — SQL Injection Impact
Section titled “48 — SQL Injection Impact”Potential impact:
Read Data
Modify Data
Authentication Bypass
Database Controldepending on permissions and architecture.
49 — Error-Based Signals
Section titled “49 — Error-Based Signals”Database errors may reveal:
SQL Syntax
Database Type
Query StructureBut absence of error does not mean:
No SQL Injection50 — Blind Injection
Section titled “50 — Blind Injection”Some injection vulnerabilities do not return direct results.
Researchers may observe differences through:
True / FalseBehavior
Timing
Application ResponseTesting must remain safe and within scope.
51 — Command Injection
Section titled “51 — Command Injection”Command injection occurs when application input reaches:
Operating SystemCommand ExecutionPotential impact can be severe.
Use only safe validation in authorized environments.
52 — Path Traversal
Section titled “52 — Path Traversal”Path traversal may allow access outside an intended directory.
Conceptually:
Requested File ↓Path Manipulation ↓Unexpected File53 — File Inclusion
Section titled “53 — File Inclusion”File inclusion issues may allow unintended local or remote content to be loaded.
Impact varies significantly based on implementation.
54 — File Upload Security
Section titled “54 — File Upload Security”Upload functionality creates significant attack surface.
Test:
Extension
Content Type
File Content
File Name
Storage Path
Access Control
Execution55 — File Type Validation
Section titled “55 — File Type Validation”Ask whether validation occurs using:
Extension
MIME Type
Magic Bytes
Content InspectionClient-side validation alone is insufficient.
56 — Uploaded File Access
Section titled “56 — Uploaded File Access”Determine:
Where Is File Stored?
Is It Public?
Can Another UserAccess It?
Can It Execute?
Can It OverwriteExisting Files?57 — File Name Manipulation
Section titled “57 — File Name Manipulation”File names may create risks involving:
Path Traversal
Overwrite
Special Charactersdepending on implementation.
58 — CSRF
Section titled “58 — CSRF”Cross-Site Request Forgery can cause a victim’s browser to submit an unwanted request using their authenticated session.
Typical target actions include:
Change Email
Change Password
Transfer Funds
Modify Settings59 — CSRF Requirements
Section titled “59 — CSRF Requirements”A CSRF scenario often depends on:
Authenticated Session
Predictable Request
Missing Request ValidationModern cookie controls can affect exploitability.
60 — SameSite Cookies
Section titled “60 — SameSite Cookies”SameSite controls can reduce some cross-site request behavior.
Understand whether cookies use:
Strict
Lax
None61 — SSRF
Section titled “61 — SSRF”Server-Side Request Forgery occurs when an application makes requests based on attacker-controlled input.
Conceptually:
Attacker ↓Application Server ↓Another Resource62 — SSRF Attack Surface
Section titled “62 — SSRF Attack Surface”Interesting features may include:
URL Preview
Webhooks
Image Fetch
PDF Generator
Import by URL
Cloud Integrations63 — SSRF Impact
Section titled “63 — SSRF Impact”Depending on environment, SSRF might access:
Internal Services
Cloud Metadata
Management InterfacesTesting must remain carefully controlled.
64 — Open Redirect
Section titled “64 — Open Redirect”An open redirect allows attacker-controlled redirection.
Example:
/login?next=https://example.netPotential impact may involve:
Phishing
OAuth Abuse
Trust ExploitationSeverity depends on context.
65 — Information Disclosure
Section titled “65 — Information Disclosure”Applications may reveal:
Stack Traces
Internal Paths
API Keys
Tokens
Configuration
Source Code
Internal HostnamesDetermine whether the information creates meaningful risk.
66 — Error Messages
Section titled “66 — Error Messages”Example:
Database connection failedat /var/www/app/config.phpThis may disclose:
InternalImplementation DetailsBut impact must be evaluated realistically.
67 — Source Maps
Section titled “67 — Source Maps”JavaScript source maps can sometimes expose:
Readable Source Code
Internal Routes
Developer CommentsThey may provide useful reconnaissance.
68 — JavaScript Analysis
Section titled “68 — JavaScript Analysis”JavaScript can reveal:
API Endpoints
Hidden Features
Parameters
Feature Flags
Client LogicDo not assume hidden endpoint means unauthorized access.
Validate server controls.
69 — CORS
Section titled “69 — CORS”Cross-Origin Resource Sharing controls whether browsers allow another origin to access responses.
Review:
Access-Control-Allow-Origin
Access-Control-Allow-Credentials70 — CORS Misconfiguration
Section titled “70 — CORS Misconfiguration”Risk may exist if:
Untrusted Origincan read sensitive authenticated responses.
Not every wildcard configuration is exploitable.
Context matters.
71 — Clickjacking
Section titled “71 — Clickjacking”Clickjacking tricks users into interacting with a hidden or disguised interface.
Important protections include:
X-Frame-Options
Content-Security-Policyframe-ancestors72 — Clickjacking Impact
Section titled “72 — Clickjacking Impact”Impact depends on whether framed pages expose:
SensitiveState-Changing Actions73 — Host Header
Section titled “73 — Host Header”Applications may trust:
Hostto generate:
Reset URLs
Links
RoutingImproper handling can create security issues.
74 — Password Reset Host Issues
Section titled “74 — Password Reset Host Issues”Example:
Reset EmailContains URLBuilt from Host HeaderIf attacker controls the host value, a victim could potentially receive a malicious reset link.
Validate safely.
75 — Security Headers
Section titled “75 — Security Headers”Useful headers include:
Content-Security-Policy
Strict-Transport-Security
X-Content-Type-Options
Referrer-Policy
Permissions-PolicyMissing headers may not always represent a standalone bounty-worthy issue.
76 — HTTPS
Section titled “76 — HTTPS”HTTPS protects data:
In Transitbetween client and server.
Always inspect whether applications:
Redirect HTTP to HTTPS
Use Secure Cookies
Avoid Mixed Content77 — Business Logic
Section titled “77 — Business Logic”Business logic vulnerabilities occur when attackers exploit:
How the ApplicationIs Designed to Workrather than a traditional technical flaw.
78 — Business Workflow
Section titled “78 — Business Workflow”Example:
Select Product ↓Apply Coupon ↓Pay ↓Ship ↓RefundAsk whether:
Steps CanBe Skipped
Repeated
Reordered
Manipulated79 — Price Manipulation
Section titled “79 — Price Manipulation”Suppose request contains:
{ "product": "premium", "price": 100}Ask:
Does ServerTrust Client Price?Never assume.
Validate with controlled test values.
80 — Quantity Manipulation
Section titled “80 — Quantity Manipulation”Potential tests:
0
Negative Number
Very Large Number
Decimal
Unexpected Typewithin safe limits.
81 — Coupon Abuse
Section titled “81 — Coupon Abuse”Ask:
Can CouponBe Reused?
Can MultipleCoupons Stack?
Can Same UserReuse One-Time Offer?82 — Refund Logic
Section titled “82 — Refund Logic”Test:
Can RefundOccur Twice?
Can Refund ExceedOriginal Payment?
Can RefundBe RequestedBefore Payment?83 — Workflow Bypass
Section titled “83 — Workflow Bypass”Example:
Identity Verification ↓Approval ↓Account ActivationAsk:
Can ActivationEndpoint Be CalledBefore Approval?84 — Race Conditions
Section titled “84 — Race Conditions”Race conditions occur when multiple requests interact with shared state in unexpected ways.
Potential areas:
Coupon Redemption
Withdrawal
Inventory
Invite Acceptance
Rate LimitsOnly test safely and within program rules.
85 — State Manipulation
Section titled “85 — State Manipulation”Applications may represent states such as:
Pending
Approved
Cancelled
CompletedAsk:
Can UserMove DirectlyBetween States?86 — Hidden Parameters
Section titled “86 — Hidden Parameters”Requests may contain:
is_admin=false
discount=0
verified=falseDo not assume modifying them works.
Test whether:
Server TrustsClient-Controlled State87 — Mass Assignment
Section titled “87 — Mass Assignment”Some frameworks automatically bind user-supplied fields to server-side objects.
Potential issue:
{ "name": "Alice", "role": "admin"}if sensitive attributes are unintentionally accepted.
88 — Security Misconfiguration
Section titled “88 — Security Misconfiguration”Examples include:
Debug Mode
Default Credentials
Exposed Admin Panel
Directory Listing
Public Storage
Verbose ErrorsImpact depends on what is exposed.
89 — Default Credentials
Section titled “89 — Default Credentials”Never aggressively attempt common credentials on real targets unless explicitly allowed.
Use training environments for such testing.
90 — Debug Interfaces
Section titled “90 — Debug Interfaces”Debug pages may expose:
Environment Variables
Configuration
Secrets
Internal PathsTreat any discovered sensitive information carefully.
91 — Backup Files
Section titled “91 — Backup Files”Possible exposed files:
config.bak
database.sql
app.zip
.envIf found within scope, minimize access and report responsibly.
92 — API Endpoints Inside Web Apps
Section titled “92 — API Endpoints Inside Web Apps”Modern web applications often call APIs.
Browser UI:
Button ↓JavaScript ↓API RequestTherefore always inspect:
Underlying API93 — UI vs API Security
Section titled “93 — UI vs API Security”The UI may prevent:
User BAccessing User Abut the API may not.
Test the actual server request.
94 — Role Comparison
Section titled “94 — Role Comparison”A powerful methodology is:
User
Premium User
AdminCompare:
Requests
Endpoints
Parameters
Responses95 — Differential Testing
Section titled “95 — Differential Testing”Differential testing compares:
Authorized Behavior
vs
Unauthorized BehaviorExample:
Account AOwn Resource
Account BSame Request96 — Response Comparison
Section titled “96 — Response Comparison”Compare:
Status Code
Response Length
Fields
Timing
HeadersSmall differences may reveal hidden application behavior.
97 — Repeater Workflow
Section titled “97 — Repeater Workflow”A manual testing workflow may look like:
Capture Request ↓Send Baseline ↓Modify Input ↓Compare Response ↓Document Result98 — One Change at a Time
Section titled “98 — One Change at a Time”Changing:
Cookie
User ID
Method
Parameter
Headerall at once makes it difficult to know:
What Causedthe ResultChange one variable where practical.
99 — Build a Web Attack Surface Map
Section titled “99 — Build a Web Attack Surface Map”Create:
Web_Attack_Surface.mdwith:
# Authentication
# Authorization
# User Profile
# Files
# Payments
# Search
# Admin
# APIs
# Integrations
# Webhooks100 — Web Endpoint Register
Section titled “100 — Web Endpoint Register”Create:
Web_Endpoint_Register.csvwith:
| Endpoint | Method | Authentication | Role | Parameters | Function |
|---|
101 — Authorization Matrix
Section titled “101 — Authorization Matrix”Create:
Authorization_Matrix.csvwith:
| Function | Guest | User | Premium | Admin |
|---|
Use this to identify:
ExpectedAccess Boundaries102 — Input Register
Section titled “102 — Input Register”Create:
Input_Register.csvwith:
| Input | Endpoint | Context | Server Use | Test Status |
|---|
103 — Session Register
Section titled “103 — Session Register”Create:
Session_Test_Register.csvcovering:
Login
Logout
Password Change
MFA
Session Rotation
Session Expiry104 — Vulnerability Candidate Register
Section titled “104 — Vulnerability Candidate Register”Create:
Web_Vulnerability_Candidates.csvwith:
| Candidate | Endpoint | Evidence | Impact | Status |
|---|
105 — Evidence Collection
Section titled “105 — Evidence Collection”For each potential vulnerability collect:
Baseline Request
Modified Request
Baseline Response
Modified Response
User Role
Application State106 — Validate Before Reporting
Section titled “106 — Validate Before Reporting”Before reporting ask:
Can IReproduce It?
Is ItIn Scope?
Is ItUnauthorized?
Does ItCreate Impact?
Is My EvidenceMinimal and Clear?107 — Access-Control Validation Example
Section titled “107 — Access-Control Validation Example”Account A:
Creates:Project 5001Account B:
GET /api/projects/5001If response returns:
Account A'sPrivate Projectyou have strong evidence of broken authorization.
108 — Weak Evidence
Section titled “108 — Weak Evidence”Changing IDReturns 200is not enough.
Maybe response says:
Project not foundinside a 200 response.
Inspect actual content.
109 — XSS Validation
Section titled “109 — XSS Validation”You need to establish:
Input Controlled
↓
Unsafe Rendering
↓
Script Executionwithin the relevant context.
110 — Injection Validation
Section titled “110 — Injection Validation”Establish:
InputChangesServer Interpretationwithout causing unnecessary harm.
111 — Business Logic Validation
Section titled “111 — Business Logic Validation”Document:
Expected Workflow
Tested Variation
Observed Result
Unauthorized Impact112 — Severity Assessment
Section titled “112 — Severity Assessment”Ask:
Who Can Exploit?
Authentication Needed?
What Data?
What Action?
How Many Users?
Repeatable?113 — Impact Chains
Section titled “113 — Impact Chains”Sometimes one issue becomes more significant when chained with another.
Example:
Information Disclosure ↓Valid User ID ↓Authorization Failure ↓Sensitive Record Access114 — Vulnerability Chaining
Section titled “114 — Vulnerability Chaining”Do not exaggerate hypothetical chains.
Only report chains you can safely demonstrate or clearly support.
115 — Web Testing Notebook
Section titled “115 — Web Testing Notebook”Create:
Web_Security_Notebook.mdwith:
# Target
# Application Map
# Accounts
# Roles
# Endpoints
# Authentication
# Sessions
# Authorization
# Input Testing
# Business Logic
# Vulnerability Candidates
# Evidence
# Reports116 — Research Workflow
Section titled “116 — Research Workflow”Use:
Understand Application ↓Map Features ↓Map Roles ↓Capture Requests ↓Build Baseline ↓Create Hypotheses ↓Modify ↓Compare ↓Validate ↓Report117 — Common Beginner Mistake
Section titled “117 — Common Beginner Mistake”Avoid:
Open Scanner ↓Scan Website ↓Submit FindingsInstead:
Understand ↓Test ↓Validate118 — Another Common Mistake
Section titled “118 — Another Common Mistake”Do not test only:
Payload ListsYou may miss:
Authorization
Business Logic
State
Workflow
Role Boundarieswhich often produce high-value findings.
119 — Think Like a User
Section titled “119 — Think Like a User”Use the application normally.
Ask:
What CanThis User Do?
What DataDoes This User Own?
What ShouldThis UserNever Access?120 — Think Like Another User
Section titled “120 — Think Like Another User”Then ask:
Can User BInteract withUser A's Objects?121 — Think Like an Administrator
Section titled “121 — Think Like an Administrator”Ask:
Which FunctionsAre Admin-Only?
How Doesthe Server Knowthe User Is Admin?122 — Think Like the Developer
Section titled “122 — Think Like the Developer”Ask:
What AssumptionsMight HaveBeen Made?Examples:
UI Hides Button
IDs Are Hardto Guess
User Will FollowWorkflow
Client SendsCorrect PriceSecurity issues often live inside these assumptions.
Practical Exercise 1 — Map a Web Application
Section titled “Practical Exercise 1 — Map a Web Application”Using an authorized lab application, create:
Web_Attack_Surface.mdcovering at least:
Authentication
Profile
Files
Search
API
AdminPractical Exercise 2 — Capture HTTP Requests
Section titled “Practical Exercise 2 — Capture HTTP Requests”Capture:
5 GET Requests
5 POST RequestsDocument:
Method
Endpoint
Parameters
Cookies
ResponsePractical Exercise 3 — Build Authorization Matrix
Section titled “Practical Exercise 3 — Build Authorization Matrix”Create:
Guest
User A
User B
Adminand map expected access to:
Profile
Files
Messages
AdminPractical Exercise 4 — Two-Account Authorization Test
Section titled “Practical Exercise 4 — Two-Account Authorization Test”Using only your own training accounts:
Account ACreates Resource
Account BAttempts AccessDocument:
Expected Result
Observed ResultPractical Exercise 5 — Session Testing
Section titled “Practical Exercise 5 — Session Testing”Test in a training environment:
Login
Session Creation
Logout
Password Change
Session ReusePractical Exercise 6 — Password Reset Mapping
Section titled “Practical Exercise 6 — Password Reset Mapping”Document:
Reset Request
Token
Expiry
Reuse
Account Identification
Session BehaviorPractical Exercise 7 — Input Mapping
Section titled “Practical Exercise 7 — Input Mapping”Identify at least:
20 Inputsand classify their context:
HTML
Database
File
URL
API
Business LogicPractical Exercise 8 — File Upload Assessment
Section titled “Practical Exercise 8 — File Upload Assessment”Map:
Allowed Extensions
Content Type
Storage
Access
Authorization
Executionwithout uploading harmful content.
Practical Exercise 9 — Business Logic Review
Section titled “Practical Exercise 9 — Business Logic Review”Choose a training workflow such as:
Purchase
Coupon
Invite
Subscriptionand document:
Expected Sequence
Potential Abuse Cases
Test ResultsPractical Exercise 10 — Vulnerability Report
Section titled “Practical Exercise 10 — Vulnerability Report”Write a professional report for a fictional:
HorizontalAccess-ControlVulnerabilityincluding:
Title
Summary
Prerequisites
Reproduction
Evidence
Impact
RemediationKnowledge Check
Section titled “Knowledge Check”-
What is a web application?
-
What is the difference between client and server?
-
Why is client-side validation not a security boundary?
-
What information exists in an HTTP request?
-
What information exists in an HTTP response?
-
What are common HTTP methods?
-
Why should baseline requests be captured?
-
Why should researchers inspect response bodies, not only status codes?
-
What is authentication?
-
What is authorization?
-
What is username enumeration?
-
Why is password reset high-value attack surface?
-
What is a session?
-
Why should session IDs rotate after authentication?
-
What should happen to sessions after logout?
-
What is horizontal access control?
-
What is vertical access control?
-
What is IDOR?
-
What is BOLA?
-
Why is two-account testing useful?
-
Why does hiding an admin button not enforce authorization?
-
What is injection?
-
What is reflected XSS?
-
What is stored XSS?
-
What is DOM-based XSS?
-
Why does XSS context matter?
-
What is SQL injection?
-
What is command injection?
-
What is path traversal?
-
What should be reviewed in file-upload functionality?
-
What is CSRF?
-
What is SSRF?
-
What is an open redirect?
-
What is information disclosure?
-
What is CORS?
-
What is clickjacking?
-
What security issues can involve the Host header?
-
What is business logic testing?
-
What is workflow bypass?
-
What is a race condition?
-
What is mass assignment?
-
Why should APIs underlying web interfaces also be tested?
-
What is differential testing?
-
Why should one variable be changed at a time?
-
What makes vulnerability evidence strong?
-
Why is HTTP 200 not proof of unauthorized access?
-
Why should impact be validated before reporting?
-
What is vulnerability chaining?
-
Why are business logic and authorization often high-value areas?
-
What makes web security testing methodical?
Key Takeaways
Section titled “Key Takeaways”Web security testing starts with:
Understandthe Applicationthen:
Map ↓Capture ↓Compare ↓Modify ↓ValidateRemember:
Hidden Button ≠AuthorizationHTTP 200 ≠Successful ExploitUser-Controlled Input ≠VulnerabilityInteresting Error ≠Security ImpactTool Finding ≠Confirmed BugA strong Bug Bounty Hunter thinks in:
Users
Roles
Objects
Requests
Inputs
States
Trust Boundaries
Business WorkflowsThe professional web-testing workflow is:
Application ↓Feature ↓Request ↓Trust Boundary ↓Hypothesis ↓Test ↓Evidence ↓Impact ↓ReportCareer Connection
Section titled “Career Connection”Web security skills are fundamental for:
Bug Bounty Hunters
Application Security Analysts
Web Penetration Testers
Security Researchers
API Security Testers
AppSec EngineersDuring interviews, you should be able to explain:
How YouMap an Application
How YouAnalyze HTTP
How YouTest Sessions
How YouTest Authorization
How YouTest User Input
How YouAssess Business Logic
How YouValidate ImpactThe key professional skill is not simply:
KnowingWeb VulnerabilityPayloadsIt is:
UnderstandingHow the ApplicationTrusts Users
↓
Finding WhereThat TrustCan Be BrokenWhat’s Next?
Section titled “What’s Next?”➡️ Next: 03 — API Security
Modern web applications increasingly rely on:
APIsbehind almost every feature.
The next module will teach you how to assess:
REST APIs
GraphQL
API Authentication
Tokens
Object-Level Authorization
Function-Level Authorization
Mass Assignment
Rate Limiting
API Enumeration
Sensitive Data Exposure
Business LogicYou will move from:
TestingWeb Pagesto:
Testing theApplication Interfaces
That PowerWeb and Mobile Appsusing the methodology:
Discover Endpoint ↓Understand Method ↓Identify Parameters ↓Understand Identity ↓Test Authorization ↓Test Input ↓Test Business Logic ↓Validate Impact➡️ Next: 03 — API Security