03 — OSWE
The Offensive Security Web Expert (OSWE) path represents a significant step beyond foundational web application testing.
At this level, you are expected to move from:
Testing the Applicationfrom the Outsidetoward:
Understanding the Applicationfrom the InsideThe central skill becomes:
SOURCE CODE ↓DATA FLOW ↓TRUST BOUNDARY ↓SECURITY CONTROL ↓APPLICATION LOGIC ↓WEAKNESS ↓IMPACTOSWE-oriented preparation is especially valuable for professionals targeting:
Advanced Web Penetration Tester
Application Security Engineer
Product Security Engineer
Security Researcher
Secure Code Reviewer
Application Security ConsultantPerform testing only against applications you own, dedicated training environments, or systems where you have explicit authorization.
Certification Information
Section titled “Certification Information”Certification: OSWE
Primary Domain: Advanced Web Application Security
Skill Level: Advanced
Career Direction: Application Security, Advanced Web Pentesting, Product Security
Core Transition: Black-box testing → White-box analysis
Recommended Approach: Strong programming fundamentals combined with source-code review and hands-on web security practice
What OSWE Should Build
Section titled “What OSWE Should Build”Your preparation should develop the ability to:
Read Application Code
Understand Data Flow
Trace User Input
Understand Framework Behavior
Identify Security Controls
Analyze Authentication Logic
Analyze Authorization Logic
Review API Implementations
Identify Complex Vulnerabilities
Understand Vulnerability Chains
Create Reproducible Evidence
Recommend Secure FixesOSWE Career Position
Section titled “OSWE Career Position”A practical progression is:
WEB FUNDAMENTALS ↓HTTP ↓WEB SECURITY ↓OSWA-LEVEL SKILLS ↓PROGRAMMING ↓SOURCE-CODE REVIEW ↓ADVANCED WEB SECURITY ↓OSWE ↓APPSEC / PRODUCT SECURITY ↓SENIOR APPLICATION SECURITY01 — Understand the OSWE Mindset
Section titled “01 — Understand the OSWE Mindset”At a foundational level, testing may look like:
REQUEST ↓MODIFY INPUT ↓RESPONSE ↓OBSERVEAt an advanced level, your thought process becomes:
REQUEST ↓ROUTE ↓CONTROLLER ↓VALIDATION ↓BUSINESS LOGIC ↓DATABASE / SERVICE ↓OUTPUTThe key question is no longer only:
Can I Trigger a Vulnerability?It becomes:
Why Does the Vulnerability Existin the Code?02 — Learn to Read Code Before Writing Exploits
Section titled “02 — Learn to Read Code Before Writing Exploits”OSWE preparation requires comfort reading source code.
You should be able to examine code and answer:
Where Does Input Enter?
Which Function Handles It?
Which Security Check Runs?
Where Does the Data Go?
Which User Controls the Value?
What Is Trusted?
What Is Not Trusted?
Where Could the Assumption Fail?03 — Build Programming Foundations
Section titled “03 — Build Programming Foundations”You do not need mastery of every programming language.
You do need to understand common programming concepts.
Focus on:
Variables
Functions
Objects
Classes
Methods
Conditionals
Loops
Exceptions
Data Structures
Libraries
Modules
HTTP Handling
Database Access
Serialization04 — Learn Multiple Language Families
Section titled “04 — Learn Multiple Language Families”Modern web applications may be written in:
Python
Java
C#
PHP
JavaScript / Node.js
Ruby
GoYour goal is not:
Become Expert in Every LanguageYour goal is:
Recognize Common Application PatternsAcross Languages05 — Learn to Follow Application Entry Points
Section titled “05 — Learn to Follow Application Entry Points”Every application request enters through some route or handler.
Typical flow:
HTTP REQUEST ↓ROUTE ↓HANDLER ↓APPLICATION LOGIC ↓DATA SOURCE ↓RESPONSEIdentify:
Route Definitions
Controllers
Handlers
Middleware
Filters
Services06 — Build a Route Map
Section titled “06 — Build a Route Map”Create a simple matrix:
| Route | Method | Auth | Role | Handler |
|---|---|---|---|---|
| /login | POST | No | Public | LoginController |
| /profile | GET | Yes | User | ProfileController |
| /admin | GET | Yes | Admin | AdminController |
| /api/orders | GET | Yes | User | OrderAPI |
This helps connect:
HTTPto:
SOURCE CODE07 — Trace User Input
Section titled “07 — Trace User Input”For each input, identify:
SOURCE ↓TRANSFORMATION ↓VALIDATION ↓SECURITY CHECK ↓SINKThis is one of the most important application-security skills.
Source-to-Sink Mental Model
Section titled “Source-to-Sink Mental Model”SOURCE=User-Controlled InputSINK=Sensitive OperationExamples of sinks may include:
Database Query
File Access
Template Rendering
Command Execution
HTTP Request
Deserializer
Sensitive Business Operation08 — Learn Data-Flow Analysis
Section titled “08 — Learn Data-Flow Analysis”Data-flow analysis means following a value through the application.
Ask:
Where Was the Value Created?
Who Controls It?
Was It Modified?
Was It Validated?
Was It Encoded?
Where Is It Used?Data Flow Example
Section titled “Data Flow Example”HTTP PARAMETER ↓CONTROLLER ↓SERVICE ↓DATABASE QUERYIf you stop at the controller, you may miss the real security decision.
09 — Understand Trust Boundaries
Section titled “09 — Understand Trust Boundaries”A trust boundary exists where data or control crosses between security contexts.
Examples:
Browser → Server
User → Admin Function
Public API → Internal Service
Application → Database
Tenant A → Tenant B
External Service → Internal ApplicationTrust Boundary Questions
Section titled “Trust Boundary Questions”Ask:
What Is Trusted Here?
Why Is It Trusted?
Who Can Control the Input?
Is the Trust Assumption Valid?10 — Learn Authentication Code Review
Section titled “10 — Learn Authentication Code Review”Authentication logic may involve:
Login
Password Verification
MFA
Session Creation
Token Validation
Password Reset
Account RecoveryDuring review, follow:
CREDENTIAL INPUT ↓VALIDATION ↓IDENTITY LOOKUP ↓AUTHENTICATION DECISION ↓SESSION / TOKEN CREATION11 — Review Login Logic
Section titled “11 — Review Login Logic”Look for:
Password Verification
Account State Check
Lockout Logic
MFA Requirement
Error Handling
Session CreationThe key question is:
Can Any Code PathCreate an Authenticated SessionWithout Required Verification?12 — Review Password Reset Logic
Section titled “12 — Review Password Reset Logic”Trace:
RESET REQUEST ↓TOKEN CREATION ↓TOKEN DELIVERY ↓TOKEN VALIDATION ↓PASSWORD CHANGE ↓SESSION HANDLINGReview:
Token Entropy
Expiration
Reuse
Account Binding
Invalidation
State Changes13 — Review MFA Logic
Section titled “13 — Review MFA Logic”Understand:
PRIMARY AUTHENTICATION ↓MFA REQUIRED? ↓MFA VALIDATION ↓SESSION CREATEDLook for:
Alternate Endpoints
Recovery Paths
Session Creation Before MFA
Role-Based Exceptions14 — Learn Authorization Code Review
Section titled “14 — Learn Authorization Code Review”Authorization logic is often distributed across:
Routes
Controllers
Middleware
Decorators
Annotations
Service Layers
Database QueriesA route may appear protected while a deeper function is not.
15 — Authorization Mental Model
Section titled “15 — Authorization Mental Model”Use:
WHO IS THE USER? ↓WHAT ROLE? ↓WHAT OBJECT? ↓WHAT ACTION? ↓WHAT TENANT? ↓ALLOW / DENY16 — Review Object-Level Authorization
Section titled “16 — Review Object-Level Authorization”Example:
GET /orders/123The server must verify:
Does the Current UserOwn or Have Permissionto Access Order 123?Do not rely on:
Object ID Hard to Guessas authorization.
17 — Review Function-Level Authorization
Section titled “17 — Review Function-Level Authorization”For each sensitive function ask:
Which Roles Should Access It?
Where Is the Check Implemented?
Can the Handler Be Reached Directly?
Are Alternate Routes Protected?18 — Review Multi-Tenant Boundaries
Section titled “18 — Review Multi-Tenant Boundaries”For SaaS applications:
TENANT A | +-- Users +-- DataTENANT B | +-- Users +-- DataThe code should consistently enforce:
Current User Tenant =Requested Object Tenant19 — Learn Framework Security
Section titled “19 — Learn Framework Security”Modern frameworks provide:
Authentication Middleware
Authorization Helpers
ORMs
Template Escaping
CSRF Protection
Session Management
ValidationYour job is to understand:
Framework Default
Application Configuration
Custom Logic20 — Identify Disabled Security Features
Section titled “20 — Identify Disabled Security Features”A secure framework can become insecure when developers:
Disable Protection
Bypass Middleware
Use Raw Queries
Render Unsafe Templates
Implement Custom Authentication21 — Learn Database Interaction Patterns
Section titled “21 — Learn Database Interaction Patterns”Understand:
ORM
Query Builders
Raw SQL
Stored ProceduresThe goal is to identify where:
User Inputbecomes:
Database Logic22 — Review SQL Construction
Section titled “22 — Review SQL Construction”Look conceptually for:
String Concatenation
Dynamic Query Building
Direct User Input
Improper ParameterizationPrefer secure patterns such as:
Parameterized Queries23 — Understand ORM Security
Section titled “23 — Understand ORM Security”ORMs can reduce some security risks.
They do not automatically prevent:
Authorization Errors
Unsafe Raw Queries
Mass Assignment
Logic Vulnerabilities24 — Learn Template Security
Section titled “24 — Learn Template Security”Applications may render dynamic content using template engines.
Follow:
DATA ↓TEMPLATE ↓RENDERING ↓BROWSERAsk:
Is User-Controlled DataEscaped in the Correct Context?25 — Understand Server-Side Template Risk
Section titled “25 — Understand Server-Side Template Risk”Template engines become security-sensitive when untrusted input affects:
Template Syntax
Expressions
Template Selection
Rendering LogicFocus on understanding:
Data vs Template Instructions26 — Learn File Handling Review
Section titled “26 — Learn File Handling Review”Review code that:
Reads Files
Writes Files
Uploads Files
Creates Archives
Extracts Archives
Processes Images
Handles PathsFile Security Questions
Section titled “File Security Questions”Ask:
Who Controls the File Name?
Who Controls the Path?
Where Is the File Stored?
Can It Be Executed?
Can It Overwrite Existing Data?
Can It Escape the Intended Directory?27 — Review File Upload Implementations
Section titled “27 — Review File Upload Implementations”Trace:
UPLOAD ↓VALIDATION ↓NAME HANDLING ↓STORAGE ↓PROCESSING ↓SERVINGReview:
Extension
MIME Type
File Content
File Name
Storage Path
Execution Context28 — Learn URL Handling Review
Section titled “28 — Learn URL Handling Review”Applications may accept URLs for:
Image Fetching
Webhooks
Imports
Previews
Integrations
CallbacksTrace:
USER URL ↓VALIDATION ↓SERVER REQUEST ↓DESTINATIONAsk:
Which Schemes Are Allowed?
Which Hosts?
Which Networks?
Are Redirects Followed?
Can Internal Resources Be Reached?29 — Learn API Source-Code Review
Section titled “29 — Learn API Source-Code Review”Modern applications often separate:
Frontend
API
Backend ServicesReview API handlers for:
Authentication
Authorization
Input Validation
Object Ownership
Business Logic
Sensitive Data Exposure30 — Review API Object Handling
Section titled “30 — Review API Object Handling”For APIs, map:
INPUT OBJECT ↓VALIDATION ↓APPLICATION OBJECT ↓DATABASE OBJECTAsk:
Which Fields Are User-Controllable?
Which Fields Are Security-Sensitive?31 — Understand Mass Assignment
Section titled “31 — Understand Mass Assignment”A common application pattern may automatically bind input fields to an object.
Conceptually:
USER JSON ↓OBJECT MAPPER ↓DATABASE MODELThe code must ensure users cannot set fields such as:
Role
Privilege
Owner
Tenant
Approval Statusunless explicitly authorized.
32 — Review Serialization and Deserialization
Section titled “32 — Review Serialization and Deserialization”Applications may convert structured data between:
Objects
JSON
XML
Binary FormatsSecurity concerns can appear when:
Untrusted Datais converted into:
Executable or Privileged Object StateReview framework-specific behavior carefully.
33 — Learn Business Logic Code Review
Section titled “33 — Learn Business Logic Code Review”Some of the most valuable findings occur in application workflows rather than technical input handling.
Trace:
ORDER CREATED ↓PAYMENT ↓APPROVAL ↓FULFILLMENTThen ask:
Can a Step Be Skipped?
Can a Step Repeat?
Can Sequence Be Changed?
Can a Different User Perform It?
Can Values Be Modified Between Steps?34 — Review State Machines
Section titled “34 — Review State Machines”Applications may have states such as:
Draft
Pending
Approved
Paid
Completed
CancelledReview code enforcing transitions.
A secure design should prevent invalid transitions such as:
Draft ↓Completedwithout required intermediate steps.
35 — Review Financial and Quantity Logic
Section titled “35 — Review Financial and Quantity Logic”For applications involving:
Prices
Credits
Discounts
Quantities
Balancestrace where calculations occur.
Ask:
Is the Server Authoritative?
Can the Client Control Price?
Can Values Become Negative?
Can a Calculation Repeat?36 — Learn Vulnerability Chaining
Section titled “36 — Learn Vulnerability Chaining”Advanced application security often involves combining multiple moderate weaknesses.
Example conceptually:
INFORMATION DISCLOSURE ↓IDENTIFIER DISCOVERY ↓AUTHORIZATION WEAKNESS ↓SENSITIVE DATA ACCESSA chain may create much greater impact than an isolated issue.
37 — Chaining Mental Model
Section titled “37 — Chaining Mental Model”Use:
WEAKNESS A +WEAKNESS B +TRUST RELATIONSHIP =LARGER IMPACT38 — Avoid Artificial Chaining
Section titled “38 — Avoid Artificial Chaining”Do not combine unrelated issues merely to increase severity.
A valid chain should have:
Technical Dependency
Reproducible Sequence
Realistic Preconditions
Demonstrable Impact39 — Learn Error-Path Analysis
Section titled “39 — Learn Error-Path Analysis”Developers often focus on:
Normal FlowSecurity testers should also inspect:
Error Flow
Exception Flow
Fallback Logic
Recovery LogicAsk:
What Happens When Validation Fails?
What Happens When a Service Is Unavailable?
What Happens When a Token Is Invalid?
What Happens When an Object Is Missing?40 — Review Exception Handling
Section titled “40 — Review Exception Handling”Poor exception handling may:
Reveal Information
Skip Security Checks
Return Inconsistent States
Trigger Fallback Logic41 — Learn Dependency Analysis
Section titled “41 — Learn Dependency Analysis”Applications rely on:
Libraries
Packages
Frameworks
Plugins
ModulesReview:
Version
Support Status
Security Advisories
Configuration
Reachability42 — Dependency Finding vs Exploitable Finding
Section titled “42 — Dependency Finding vs Exploitable Finding”Do not automatically report:
Old Library=Critical VulnerabilityValidate:
Is the Vulnerable Function Used?
Is It Reachable?
Are Preconditions Present?
Are Mitigations Applied?43 — Learn Secrets Management Review
Section titled “43 — Learn Secrets Management Review”Search code responsibly for patterns involving:
Passwords
API Keys
Database Credentials
Tokens
Private Keys
Cloud CredentialsDo not reproduce sensitive secrets in reports.
Record:
Location
Type
Exposure
Privilege
Recommended Secret Management44 — Review Configuration Files
Section titled “44 — Review Configuration Files”Security-sensitive configuration may include:
Database Strings
Authentication Settings
Debug Mode
API Keys
Session Settings
Allowed Origins
Feature Flags45 — Review Debug Features
Section titled “45 — Review Debug Features”Development or debug functionality may expose:
Internal State
Stack Traces
Configuration
Admin Functions
Test EndpointsDetermine:
Is It Enabled?
Is It Accessible?
Is Authentication Required?
What Data Is Exposed?46 — Learn Session Implementation Review
Section titled “46 — Learn Session Implementation Review”Follow:
LOGIN ↓SESSION CREATED ↓SESSION STORED ↓COOKIE ISSUED ↓REQUEST VALIDATED ↓LOGOUT ↓SESSION INVALIDATED47 — Review Session Storage
Section titled “47 — Review Session Storage”Understand whether session state is:
Server-Side
Client-Side
Token-BasedThen evaluate:
Integrity
Expiration
Revocation
Rotation
Privilege Changes48 — Learn Token Security
Section titled “48 — Learn Token Security”Applications may use:
Bearer Tokens
JWTs
OAuth Tokens
API TokensReview:
Issuer
Audience
Expiration
Signature
Scope
Revocation
Storage49 — Avoid Token Mythology
Section titled “49 — Avoid Token Mythology”Do not assume:
JWT=Secureor:
JWT=InsecureSecurity depends on:
Implementation
Validation
Key Management
Claims
Lifecycle50 — Review OAuth and SSO Integration
Section titled “50 — Review OAuth and SSO Integration”Modern applications may delegate authentication.
Understand:
User
Application
Identity Provider
Authorization Server
Token
ResourceReview:
Redirect Handling
Client Registration
Token Validation
Scopes
Session Binding51 — Learn Code Search Strategy
Section titled “51 — Learn Code Search Strategy”Large applications cannot be reviewed line by line immediately.
Start with security-relevant keywords and architectural components such as:
Login
Auth
Admin
Role
Permission
File
Upload
Query
Execute
Redirect
URL
Token
Deserialize
Template
PasswordThen trace important paths.
52 — Build a Security Code Map
Section titled “52 — Build a Security Code Map”Create:
Authentication Functions
Authorization Functions
Database Access
File Operations
External Requests
Session Handling
Token Handling
Admin Routes
Sensitive Business Operations53 — Learn Backward Tracing
Section titled “53 — Learn Backward Tracing”Sometimes begin at a sensitive operation and trace backward.
Example:
DATABASE UPDATE ↑SERVICE FUNCTION ↑CONTROLLER ↑USER REQUESTAsk:
Can the User Reach This Sink?
What Validation Exists?
What Authorization Exists?54 — Learn Forward Tracing
Section titled “54 — Learn Forward Tracing”Other times start with input.
USER PARAMETER ↓ROUTE ↓HANDLER ↓SERVICE ↓SENSITIVE OPERATIONBoth approaches are valuable.
55 — Learn Call-Graph Thinking
Section titled “55 — Learn Call-Graph Thinking”Applications are networks of functions.
Think:
Route A ↓Function B ↓Service C ↓Utility D ↓Database EA security check may exist in:
Route Abut not in:
Service Cwhich may be called from another route.
56 — Review Reusable Security Functions
Section titled “56 — Review Reusable Security Functions”Identify central functions such as:
isAuthenticated()
isAdmin()
canAccessObject()
validateToken()
sanitizeInput()Then ask:
Is Every Sensitive Route Using Them?
Can They Fail Open?
Do They Check the Right Context?57 — Learn Fail-Open vs Fail-Closed
Section titled “57 — Learn Fail-Open vs Fail-Closed”Secure systems should generally fail safely.
Conceptually:
SECURITY CHECK ERROR ↓DENYis safer than:
SECURITY CHECK ERROR ↓ALLOWwhen access cannot be verified.
58 — Review Cache Security
Section titled “58 — Review Cache Security”Applications may cache:
Pages
Objects
API Responses
Authorization DecisionsAsk:
Can User A ReceiveCached Data for User B?or:
Can Authorization StateBecome Stale?59 — Review Background Jobs
Section titled “59 — Review Background Jobs”Applications may process work asynchronously.
Examples:
Email Sending
File Processing
Report Generation
Imports
ExportsTrace:
USER REQUEST ↓JOB CREATED ↓WORKER ↓SENSITIVE OPERATIONAuthorization and data validation must still remain correct.
60 — Review Webhook Implementations
Section titled “60 — Review Webhook Implementations”Webhooks can introduce external trust.
Assess:
Authentication
Signature Validation
Source Verification
Replay Resistance
Payload Validation
Privilege61 — Review Import and Export Features
Section titled “61 — Review Import and Export Features”These may process:
CSV
JSON
XML
Archives
DocumentsReview:
Parser Behavior
Data Validation
File Paths
Object Ownership
Resource Consumption62 — Understand XML Security Concepts
Section titled “62 — Understand XML Security Concepts”If XML is used, understand:
Parsing
Entities
Schema Validation
External Resourcesand ensure parsers are configured safely for untrusted data.
63 — Review Redirect Logic
Section titled “63 — Review Redirect Logic”Applications may accept:
Return URLs
Callback URLs
Redirect ParametersAssess:
Allowed Destinations
Validation
Protocol Restrictions
Authentication Flow Impact64 — Learn SSRF Code Review
Section titled “64 — Learn SSRF Code Review”Look for server-side functions that:
Fetch URL
Download File
Send Webhook
Validate Endpoint
Generate PreviewTrace:
USER INPUT ↓URL PARSER ↓VALIDATION ↓SERVER REQUEST65 — Learn Command Execution Review
Section titled “65 — Learn Command Execution Review”Search for code that launches:
Processes
Shell Commands
System UtilitiesThen determine:
Is User Input Involved?
Is a Shell Required?
Are Safe APIs Available?
What Privilege Does the Process Have?66 — Learn Path Handling Review
Section titled “66 — Learn Path Handling Review”Trace code performing:
Join Path
Normalize Path
Read File
Write File
Delete File
Extract FileAsk:
Can User Input Escapethe Intended Directory?67 — Learn Output-Encoding Review
Section titled “67 — Learn Output-Encoding Review”Input validation and output encoding solve different problems.
Think:
INPUT VALIDATION=Is This Input Acceptable?OUTPUT ENCODING=Can This Data Be Safely Renderedin This Output Context?68 — Understand Context
Section titled “68 — Understand Context”Encoding depends on context:
HTML
HTML Attribute
JavaScript
URL
CSSThe correct protection must match where data is rendered.
69 — Review Security Logging Code
Section titled “69 — Review Security Logging Code”Applications should log important events such as:
Authentication Failure
Authorization Failure
Admin Changes
Sensitive Data Changes
Security ExceptionsAvoid logging:
Passwords
Tokens
Secrets
Sensitive Dataunnecessarily.
70 — Review Audit Trails
Section titled “70 — Review Audit Trails”For sensitive applications, ask:
Can We DetermineWho Changed What,When,and From Where?71 — Understand Race Conditions Conceptually
Section titled “71 — Understand Race Conditions Conceptually”Some applications perform multiple operations that assume:
State Does Not ChangeBetween Check and ActionSecurity issues can occur when concurrent actions break that assumption.
Focus on workflow and state understanding rather than blind concurrency testing.
72 — Review Resource Ownership
Section titled “72 — Review Resource Ownership”Applications should clearly model ownership.
Example:
User ↓Project ↓DocumentAsk:
Which User Owns the Project?
Which Tenant Owns the Project?
Can Ownership Change?
Who Can Delegate Access?73 — Review Role Changes
Section titled “73 — Review Role Changes”Sensitive functions include:
Promote User
Add Administrator
Change Group
Change Tenant RoleReview:
Who Can Perform the Action?
Is Reauthentication Required?
Is It Audited?
Can Users Change Their Own Role?74 — Learn Secure Coding Recommendations
Section titled “74 — Learn Secure Coding Recommendations”A strong OSWE-level tester should explain the fix.
Recommendations should include concepts such as:
Server-Side Authorization
Parameterized Queries
Context-Aware Encoding
Safe File Handling
Allowlisted Network Destinations
Least Privilege
Secure Session Handling
Explicit Object Binding
Safe Parser Configuration75 — Avoid Generic Recommendations
Section titled “75 — Avoid Generic Recommendations”Weak recommendation:
Sanitize InputBetter recommendation:
Use parameterized database queries andensure untrusted values are passed asquery parameters rather than concatenatedinto SQL statements.76 — Build an OSWE Review Methodology
Section titled “76 — Build an OSWE Review Methodology”Use:
01 Confirm Scope
02 Understand Architecture
03 Identify Technologies
04 Map Routes
05 Map Authentication
06 Map Authorization
07 Identify Input Sources
08 Identify Sensitive Sinks
09 Trace Data Flow
10 Review Business Logic
11 Review APIs
12 Review File Operations
13 Review External Requests
14 Review Session / Token Handling
15 Review Dependencies
16 Validate Findings
17 Chain Related Weaknesses
18 Capture Evidence
19 Recommend Remediation
20 Retest77 — Build a Code Review Worksheet
Section titled “77 — Build a Code Review Worksheet”For each sensitive function:
File:
Function:
Route:
Input:
Authentication:
Authorization:
Validation:
Sensitive Operation:
Potential Weakness:
Evidence:
Recommended Fix:78 — Authentication Review Checklist
Section titled “78 — Authentication Review Checklist”- Login flow mapped
- Password verification reviewed
- MFA reviewed
- Password reset reviewed
- Recovery reviewed
- Session creation reviewed
- Session invalidation reviewed
- Token validation reviewed
- Alternate authentication paths reviewed
79 — Authorization Review Checklist
Section titled “79 — Authorization Review Checklist”- Route-level authorization
- Function-level authorization
- Object-level authorization
- Role checks
- Tenant checks
- Ownership checks
- Admin functions
- API endpoints
- Background jobs
- Alternate routes
80 — Data-Flow Checklist
Section titled “80 — Data-Flow Checklist”For every user-controlled value:
- Identify source
- Trace transformations
- Identify validation
- Identify authorization
- Identify encoding
- Identify sink
- Determine security context
81 — API Review Checklist
Section titled “81 — API Review Checklist”- Authentication
- Token validation
- Object ownership
- Role enforcement
- Tenant enforcement
- Field binding
- Sensitive responses
- Rate considerations
- Error handling
- Audit logging
82 — Business Logic Checklist
Section titled “82 — Business Logic Checklist”- Expected workflow mapped
- State transitions mapped
- Approval steps mapped
- Role transitions mapped
- Financial calculations reviewed
- Repeat actions reviewed
- Sequence changes reviewed
- Concurrency assumptions considered
83 — File Handling Checklist
Section titled “83 — File Handling Checklist”- File name validation
- Path handling
- File type validation
- Storage location
- Execution controls
- Permissions
- Archive extraction
- Cleanup
84 — External Request Checklist
Section titled “84 — External Request Checklist”- User-controlled URL identified
- Scheme validation
- Host validation
- Port restrictions
- Redirect behavior
- Internal network protection
- Metadata endpoint protection
- DNS behavior considered
85 — Validate Findings Carefully
Section titled “85 — Validate Findings Carefully”Before reporting:
SOURCE CODE OBSERVATION ↓REACHABILITY ↓PRECONDITIONS ↓RUNTIME VALIDATION ↓SECURITY IMPACTDo not report every insecure-looking code pattern as exploitable.
86 — Static vs Dynamic Validation
Section titled “86 — Static vs Dynamic Validation”Use both perspectives.
STATIC=What Does the Code Suggest?DYNAMIC=What Does the Application Actually Do?The strongest evidence connects both.
87 — Write Reproducible Findings
Section titled “87 — Write Reproducible Findings”Each finding should include:
Finding ID
Title
Severity
Affected Component
Source Location
Affected Endpoint
Preconditions
Description
Evidence
Technical Impact
Business Impact
Recommendation
Retest GuidanceFinding Example — Authorization
Section titled “Finding Example — Authorization”Finding ID:APP-001
Title:Missing Object-Level Authorization
Severity:High
Observation:The application retrieves an object using aclient-controlled identifier but does notconsistently verify that the authenticateduser is authorized to access the requestedobject.
Risk:Authenticated users may access databelonging to other users or tenants.
Recommendation:Perform server-side object-levelauthorization before every protected reador modification operation.Finding Example — Unsafe Query Construction
Section titled “Finding Example — Unsafe Query Construction”Finding ID:APP-002
Title:Unsafe Dynamic Database Query Construction
Severity:High
Observation:User-controlled data is incorporated into adatabase query using dynamic stringconstruction rather than parameterizedquery handling.
Risk:Malformed input may alter the intendeddatabase operation.
Recommendation:Use parameterized queries or framework-safedatabase APIs and avoid dynamic queryconstruction using untrusted data.Finding Example — Business Logic
Section titled “Finding Example — Business Logic”Finding ID:APP-003
Title:Approval Workflow Can Be Bypassed
Severity:High
Observation:A backend function allows a protectedbusiness object to transition directly froman unapproved state to a completed statewithout validating the required approval.
Risk:Users may complete sensitive businessoperations without required authorization.
Recommendation:Enforce valid server-side state transitionsand explicitly verify required approvalbefore permitting completion.88 — Learn Vulnerability Chaining Reports
Section titled “88 — Learn Vulnerability Chaining Reports”When multiple findings form a valid chain, document:
Step 1
Required Condition
Step 2
Required Condition
Final ImpactExplain which weakness enables the next.
89 — Explain Root Cause
Section titled “89 — Explain Root Cause”Advanced reporting should go beyond:
Endpoint Is VulnerableExplain:
The application relies on client-providedobject identifiers without performingserver-side ownership validation in theshared data-access service.This helps developers fix the root problem.
90 — Review Similar Code Paths
Section titled “90 — Review Similar Code Paths”When one flaw is discovered, search for:
Same Function
Same Pattern
Same Helper
Same Framework Use
Same Developer AssumptionThe issue may affect multiple endpoints.
91 — Think in Vulnerability Classes
Section titled “91 — Think in Vulnerability Classes”Do not stop at one instance.
Example:
Missing Authorizationmay appear in:
Profile
Orders
Files
Invoices
Admin APIs92 — Build Developer-Friendly Remediation
Section titled “92 — Build Developer-Friendly Remediation”Provide:
Root Cause
Secure Pattern
Affected Components
Regression-Test GuidanceThis increases the value of the assessment.
93 — Retest from Both Perspectives
Section titled “93 — Retest from Both Perspectives”After remediation:
CODE REVIEW +RUNTIME TESTVerify:
Fix Applied
Vulnerable Path Blocked
Related Paths Reviewed
Authorized Function Still Works94 — Build a Professional OSWE Portfolio
Section titled “94 — Build a Professional OSWE Portfolio”Use only original authorized environments.
Strong portfolio projects include:
Source-Code Security Review
Authentication Architecture Review
Authorization Assessment
API Security Review
Business Logic Assessment
Secure Code Remediation ProjectPortfolio Project 01 — Authentication Code Review
Section titled “Portfolio Project 01 — Authentication Code Review”Document:
Login Architecture
Password Verification
MFA
Session Handling
Reset Logic
Findings
RemediationPortfolio Project 02 — Authorization Review
Section titled “Portfolio Project 02 — Authorization Review”Document:
Roles
Object Ownership
Route Controls
Service Controls
Tenant Boundaries
FindingsPortfolio Project 03 — Data Flow Review
Section titled “Portfolio Project 03 — Data Flow Review”Choose one application function and map:
SOURCE ↓TRANSFORMATIONS ↓SECURITY CHECKS ↓SINKPortfolio Project 04 — API Security Review
Section titled “Portfolio Project 04 — API Security Review”Review:
Routes
Authentication
Authorization
Binding
Sensitive Data
Business LogicPortfolio Project 05 — Full White-Box Assessment
Section titled “Portfolio Project 05 — Full White-Box Assessment”Combine:
ARCHITECTURE +CODE REVIEW +DYNAMIC TESTING +VULNERABILITY CHAINING +REPORTING95 — Build Your Lab Strategy
Section titled “95 — Build Your Lab Strategy”Progress through:
SMALL CODE EXAMPLES ↓SINGLE-FUNCTION REVIEW ↓AUTHENTICATION REVIEW ↓AUTHORIZATION REVIEW ↓DATA-FLOW REVIEW ↓API REVIEW ↓BUSINESS LOGIC REVIEW ↓FULL APPLICATION REVIEW96 — Use the Three-Pass Method
Section titled “96 — Use the Three-Pass Method”Pass 01 — Guided
Section titled “Pass 01 — Guided”Follow the lesson and understand the code.
Pass 02 — Notes Only
Section titled “Pass 02 — Notes Only”Repeat your analysis using your own methodology.
Pass 03 — Independent
Section titled “Pass 03 — Independent”Assess a new application without a walkthrough.
97 — Maintain an OSWE Mistake Log
Section titled “97 — Maintain an OSWE Mistake Log”Record mistakes such as:
Stopped at the Controller
Missed Shared Service Function
Focused Only on Input Injection
Ignored Authorization
Ignored Business Logic
Ignored Background Jobs
Trusted Framework Security Blindly
Reported Code Smell Without Validation
Failed to Search for Similar Code98 — Build a Code-Review Knowledge Base
Section titled “98 — Build a Code-Review Knowledge Base”Organize:
Authentication
Authorization
Sessions
Tokens
Database
Templates
Files
External Requests
Serialization
APIs
Business Logic
Frameworks
Logging
SecretsFor each topic document:
Secure Pattern
Common Weak Pattern
How to Identify It
How to Validate It
How to Fix It99 — Learn Secure Development Practices
Section titled “99 — Learn Secure Development Practices”Study:
Threat Modeling
Secure Design
Code Review
Dependency Management
Secrets Management
Security Testing
CI/CD Security
Secure LoggingOSWE-level knowledge becomes even more valuable when combined with secure software engineering.
100 — Understand Threat Modeling
Section titled “100 — Understand Threat Modeling”Before code review, identify:
Assets
Users
Trust Boundaries
Entry Points
Sensitive Operations
External DependenciesThreat Model
Section titled “Threat Model”USER ↓ENTRY POINT ↓TRUST BOUNDARY ↓APPLICATION ↓SENSITIVE ASSETThen ask:
What Could Breakat Each Boundary?101 — Learn Architecture Review
Section titled “101 — Learn Architecture Review”Understand components such as:
Frontend
Backend
API Gateway
Authentication Service
Database
Queue
Cache
Object Storage
External ServicesSecurity issues may occur between components, not just inside individual functions.
102 — Review Microservice Trust
Section titled “102 — Review Microservice Trust”In distributed systems:
SERVICE A ↓SERVICE B ↓SERVICE CAsk:
Does Service B Trust Service AWithout Revalidating Identityor Authorization?103 — Review Internal APIs
Section titled “103 — Review Internal APIs”Do not assume:
Internal=TrustedInternal services should still implement appropriate:
Authentication
Authorization
Validation
Logging104 — Review Cloud Integration
Section titled “104 — Review Cloud Integration”Applications may interact with:
Object Storage
Secret Managers
Queues
Cloud Databases
Identity Services
Metadata ServicesReview:
Credential Handling
Permissions
Network Access
Object Ownership
Error Handling105 — Review CI/CD Security Context
Section titled “105 — Review CI/CD Security Context”Application source may reveal:
Build Scripts
Deployment Files
Environment Variables
Package Configuration
Secret ReferencesUnderstand how insecure development pipelines can affect application security.
106 — Learn Dependency Governance
Section titled “106 — Learn Dependency Governance”Evaluate whether teams have processes for:
Dependency Inventory
Security Updates
Vulnerability Monitoring
Patch Testing
Removal of Unused Packages107 — Review Test and Development Code
Section titled “107 — Review Test and Development Code”Production repositories may contain:
Debug Routes
Test Credentials
Sample Keys
Disabled Security Checks
Temporary Admin FunctionsDetermine whether any reach production behavior.
108 — Understand Feature Flags
Section titled “108 — Understand Feature Flags”Feature flags can change security behavior.
Review:
Who Controls Them?
What Happens When Enabled?
Can Security Checks Be Disabled?
Are Old Flags Removed?109 — Review Fallback Logic
Section titled “109 — Review Fallback Logic”Fallback behavior deserves extra attention.
Example:
Primary Authorization ServiceUnavailable ↓Fallback ↓Allow?Prefer secure failure behavior.
110 — Learn Defense-in-Depth Review
Section titled “110 — Learn Defense-in-Depth Review”Strong applications do not depend on a single check.
For sensitive action:
AUTHENTICATION +AUTHORIZATION +INPUT VALIDATION +BUSINESS RULE +AUDITprovides stronger protection.
111 — OSWE Preparation Phase 01
Section titled “111 — OSWE Preparation Phase 01”Programming
Section titled “Programming”Focus on:
Language Syntax
Functions
Objects
Framework Structure
Database Access
HTTP Handling112 — OSWE Preparation Phase 02
Section titled “112 — OSWE Preparation Phase 02”Source-Code Analysis
Section titled “Source-Code Analysis”Practice:
Route Mapping
Call Tracing
Source-to-Sink Analysis
Authentication Review
Authorization Review113 — OSWE Preparation Phase 03
Section titled “113 — OSWE Preparation Phase 03”Advanced Application Security
Section titled “Advanced Application Security”Focus on:
APIs
Business Logic
File Operations
External Requests
Token Security
Framework Security114 — OSWE Preparation Phase 04
Section titled “114 — OSWE Preparation Phase 04”Vulnerability Chaining
Section titled “Vulnerability Chaining”Practice identifying how multiple weaknesses create:
HIGHER IMPACT115 — OSWE Preparation Phase 05
Section titled “115 — OSWE Preparation Phase 05”Independent Review
Section titled “Independent Review”Perform complete white-box application assessments without step-by-step guidance.
12-Week OSWE Preparation Framework
Section titled “12-Week OSWE Preparation Framework”Weeks 1–2 — Programming and Architecture
Section titled “Weeks 1–2 — Programming and Architecture”Focus on:
Programming
Frameworks
HTTP Routing
Controllers
Services
Database InteractionWeeks 3–4 — Data Flow
Section titled “Weeks 3–4 — Data Flow”Focus on:
Sources
Sinks
Validation
Encoding
Call Graphs
Trust BoundariesWeeks 5–6 — Authentication and Authorization
Section titled “Weeks 5–6 — Authentication and Authorization”Focus on:
Login
Sessions
Tokens
Roles
Object Ownership
Tenant BoundariesWeeks 7–8 — Advanced Application Functions
Section titled “Weeks 7–8 — Advanced Application Functions”Focus on:
Files
External Requests
APIs
Serialization
Templates
Business LogicWeeks 9–10 — Vulnerability Chaining
Section titled “Weeks 9–10 — Vulnerability Chaining”Focus on:
Root Cause
Related Findings
Attack Paths
ImpactWeek 11 — Full White-Box Assessments
Section titled “Week 11 — Full White-Box Assessments”Perform end-to-end reviews.
Week 12 — Independent Simulation
Section titled “Week 12 — Independent Simulation”Complete:
Architecture Review
Code Review
Dynamic Validation
Evidence
ReportOSWE Readiness Level 01 — Programming
Section titled “OSWE Readiness Level 01 — Programming”You can read unfamiliar application code and understand:
Functions
Objects
Control Flow
Data Access
HTTP HandlingOSWE Readiness Level 02 — Architecture
Section titled “OSWE Readiness Level 02 — Architecture”You can identify:
Routes
Controllers
Services
Models
Databases
External IntegrationsOSWE Readiness Level 03 — Data Flow
Section titled “OSWE Readiness Level 03 — Data Flow”You can trace:
USER INPUT ↓APPLICATION ↓SENSITIVE OPERATIONOSWE Readiness Level 04 — Authentication
Section titled “OSWE Readiness Level 04 — Authentication”You can review:
Login
MFA
Sessions
Reset
Tokensfrom source code.
OSWE Readiness Level 05 — Authorization
Section titled “OSWE Readiness Level 05 — Authorization”You can identify:
Role Checks
Object Checks
Tenant Checks
Missing Controls
Alternate PathsOSWE Readiness Level 06 — Advanced Security
Section titled “OSWE Readiness Level 06 — Advanced Security”You can analyze:
APIs
Files
External Requests
Templates
Serialization
Business LogicOSWE Readiness Level 07 — Chaining
Section titled “OSWE Readiness Level 07 — Chaining”You can connect related weaknesses into realistic, technically justified chains.
OSWE Readiness Level 08 — Remediation
Section titled “OSWE Readiness Level 08 — Remediation”You can explain:
Root Cause
Secure Coding Pattern
Regression Test
Architecture ImprovementOSWE Readiness Level 09 — Independent Assessment
Section titled “OSWE Readiness Level 09 — Independent Assessment”You can review an unfamiliar authorized application using:
ARCHITECTURE ↓CODE ↓DATA FLOW ↓SECURITY CONTROLS ↓VALIDATION ↓REPORTwithout relying on a walkthrough.
Common OSWE Preparation Mistakes
Section titled “Common OSWE Preparation Mistakes”Avoid:
Learning Only Payloads
Ignoring Programming Fundamentals
Ignoring Application Architecture
Stopping at Route-Level Code
Ignoring Shared Services
Ignoring Authorization
Ignoring Business Logic
Treating Frameworks as Automatically Secure
Reporting Code Smells Without Validation
Ignoring Similar Code Paths
Ignoring APIs
Ignoring Background Jobs
Ignoring Secure Remediation
Depending Too Heavily on Automated ScannersOSWA vs OSWE
Section titled “OSWA vs OSWE”Think:
OSWA=How Does the ApplicationBehave from the Outside?OSWE=Why Does the ApplicationBehave This Way Internally?OSWA focuses heavily on:
Requests
Responses
Roles
Sessions
Manual TestingOSWE adds:
Source Code
Data Flow
Frameworks
Call Graphs
Root Cause
Vulnerability ChainingOSWE vs OSEP
Section titled “OSWE vs OSEP”OSWE focuses primarily on:
APPLICATION SECURITYOSEP moves toward:
ADVANCED ENTERPRISEOFFENSIVE SECURITYChoose according to your desired role.
Career Connection
Section titled “Career Connection”OSWE skills directly support:
Application Security Engineer
Senior Web Penetration Tester
Product Security Engineer
Security Consultant
Secure Code Reviewer
Application Security ResearcherInterview Question 01
Section titled “Interview Question 01”What is source-to-sink analysis?
It is the process of tracing user-controlled or otherwise untrusted data from its entry point through the application to a security-sensitive operation.
Interview Question 02
Section titled “Interview Question 02”Why is authorization code often harder to review than authentication code?
Because authorization may be distributed across:
Routes
Middleware
Controllers
Services
Database Queriesand every sensitive path must enforce it correctly.
Interview Question 03
Section titled “Interview Question 03”Why should static analysis be combined with dynamic testing?
Because source code may suggest a weakness, but runtime validation determines:
Reachability
Preconditions
Actual Behavior
ImpactInterview Question 04
Section titled “Interview Question 04”What is vulnerability chaining?
It is combining technically related security weaknesses where one weakness enables or increases the impact of another.
Interview Question 05
Section titled “Interview Question 05”What makes an advanced remediation recommendation useful?
It should explain:
Root Cause
Secure Implementation Pattern
Affected Components
Validation Method40 OSWE Interview and Review Questions
Section titled “40 OSWE Interview and Review Questions”- What is OSWE?
- How does OSWE differ from OSWA?
- Why are programming skills important for OSWE?
- What is white-box testing?
- What is application architecture?
- What is a route?
- What is a controller?
- What is a service layer?
- What is source-to-sink analysis?
- What is data-flow analysis?
- What is a trust boundary?
- How do you review authentication code?
- How do you review password reset logic?
- How do you review MFA logic?
- What is object-level authorization?
- What is function-level authorization?
- Why are tenant checks important in SaaS?
- Why can framework defaults be dangerous to assume?
- What is an ORM?
- Why are raw database queries security sensitive?
- What is output encoding?
- Why does output context matter?
- What security issues should be considered in file handling?
- What security issues should be considered in URL-fetching features?
- What is mass assignment?
- Why is deserialization security sensitive?
- What is business logic testing?
- What is a state transition?
- What is vulnerability chaining?
- Why should chains have technical dependency?
- Why should error paths be reviewed?
- Why are third-party dependencies security relevant?
- Why should secrets not be stored in source code?
- What is backward tracing?
- What is forward tracing?
- What is a call graph?
- What is fail-closed security behavior?
- Why must static findings be dynamically validated?
- What should an OSWE-level finding include?
- What skills make someone job-ready for application security?
OSWE Readiness Checklist
Section titled “OSWE Readiness Checklist”Programming
Section titled “Programming”- Read unfamiliar code
- Understand functions
- Understand classes and objects
- Understand exceptions
- Understand libraries
- Understand database access
- Understand HTTP handling
Architecture
Section titled “Architecture”- Map routes
- Map controllers
- Map services
- Map databases
- Map external integrations
- Identify trust boundaries
Data Flow
Section titled “Data Flow”- Identify sources
- Identify sinks
- Trace transformations
- Identify validation
- Identify encoding
- Identify authorization
- Trace across multiple functions
Authentication
Section titled “Authentication”- Review login
- Review password verification
- Review MFA
- Review reset
- Review recovery
- Review session creation
- Review token validation
- Review logout
Authorization
Section titled “Authorization”- Review roles
- Review object ownership
- Review function-level access
- Review tenant boundaries
- Review alternate routes
- Review service-layer checks
- Review background jobs
Advanced Application Security
Section titled “Advanced Application Security”- Review database interactions
- Review templates
- Review file operations
- Review URL handling
- Review APIs
- Review serialization
- Review tokens
- Review external integrations
Business Logic
Section titled “Business Logic”- Map workflows
- Map states
- Review transitions
- Review approvals
- Review calculations
- Review repeated operations
- Review sequence assumptions
Vulnerability Chaining
Section titled “Vulnerability Chaining”- Identify technical relationships
- Validate prerequisites
- Reproduce the sequence
- Demonstrate realistic impact
- Avoid artificial severity inflation
Reporting
Section titled “Reporting”- Explain root cause
- Provide source location
- Provide runtime evidence
- Explain technical impact
- Explain business impact
- Recommend secure coding pattern
- Provide retest guidance
Final OSWE Mental Model
Section titled “Final OSWE Mental Model”Remember:
AUTHORIZED APPLICATION ↓UNDERSTAND ARCHITECTURE ↓MAP ROUTES ↓IDENTIFY INPUT ↓TRACE DATA FLOW ↓IDENTIFY TRUST BOUNDARIES ↓REVIEW AUTHENTICATION ↓REVIEW AUTHORIZATION ↓REVIEW SENSITIVE OPERATIONS ↓REVIEW BUSINESS LOGIC ↓IDENTIFY WEAKNESS ↓VALIDATE RUNTIME BEHAVIOR ↓SEARCH FOR RELATED PATTERNS ↓CHAIN WHERE JUSTIFIED ↓EXPLAIN ROOT CAUSE ↓RECOMMEND SECURE FIX ↓RETESTThe OSWE mindset is not:
Which Payload Works?It is:
Which Security AssumptionDoes the Application Make,Where Is That AssumptionImplemented in Code,and Can It Be Broken?The strongest application security professionals combine:
PROGRAMMING +WEB SECURITY +SOURCE-CODE ANALYSIS +DATA-FLOW REASONING +AUTHORIZATION ANALYSIS +BUSINESS LOGIC +DYNAMIC VALIDATION +SECURE DEVELOPMENT +REPORTINGWhat’s Next?
Section titled “What’s Next?”➡️ 04 — OSEP
Next, you will move from advanced application security into advanced enterprise offensive security.
You will begin working with concepts around:
Enterprise Network Architecture ↓Windows Environments ↓Active Directory ↓Identity Relationships ↓Enterprise Authentication ↓Network Segmentation ↓Privilege Relationships ↓Endpoint Security Controls ↓Operational Security ↓Attack Paths ↓Adversary Simulation ↓Evidence ↓ReportingThe major shift will be:
OSWE=Understand and BreakApplication Security Logictoward:
OSEP=Understand and AssessComplex Enterprise Attack Paths