This guide covers advanced web application security topics beyond traditional client-side and server-side vulnerabilities, focusing on holistic security aspects critical for modern web applications.
1. Authentication & Session Management
Authentication Security Fundamentals
Authentication vulnerabilities represent critical security flaws that can compromise entire applications. Modern applications face complex authentication challenges beyond simple username/password combinations.
Common Authentication Vulnerabilities
Username Enumeration
- Registration forms revealing existing users
- Different error messages for invalid username vs password
- Response time differences indicating valid accounts
- Password reset functions confirming user existence
Session Management Flaws
- Predictable session tokens
- Session fixation attacks
- Insufficient session expiration
- Cookie manipulation vulnerabilities
Advanced Authentication Attacks
Logic Flaws in Authentication
# Parameter Pollution Attack
GET /reset?email=victim@site.com
POST /reset?email=victim@site.com
Content-Type: application/x-www-form-urlencoded
username=victim&email=attacker@evil.comAccount Lockout Bypass Techniques
- IP rotation using headers (X-Forwarded-For, X-Real-IP)
- Time-based bypasses with long passwords
- Reset lockout logic exploitation
- Username collision attacks (spaces, case sensitivity)
Session Security Best Practices
Secure Session Implementation
- Use cryptographically secure random session IDs
- Implement proper session timeout (idle and absolute)
- Regenerate session IDs on privilege changes
- Store sessions server-side with minimal client exposure
Cookie Security Attributes
Set-Cookie: session=abc123; Secure; HttpOnly; SameSite=StrictSecure: HTTPS only transmissionHttpOnly: No JavaScript accessSameSite: CSRF protection
2. Business Logic Vulnerabilities
Business logic flaws arise when applications fail to properly enforce business rules and workflows. These vulnerabilities are context-specific and require deep understanding of the application.
Common Business Logic Flaws
Price Manipulation
- Negative quantities in shopping carts
- Race conditions in checkout processes
- Coupon stacking vulnerabilities
- Currency manipulation
Workflow Bypass
- Skipping required steps in multi-step processes
- Direct object reference to later stages
- State manipulation in client-side storage
Testing for Business Logic Flaws
- Map the Application Workflow
- Document all business processes
- Identify state transitions
- Note validation points
- Test Edge Cases
- Boundary values (0, negative, maximum)
- Unexpected data types
- Missing parameters
- Out-of-sequence requests
- Race Condition Testing
- Simultaneous requests to same endpoint
- TOCTOU (Time of Check, Time of Use) vulnerabilities
- Resource exhaustion scenarios
3. API Security
Modern web applications heavily rely on APIs, introducing unique security challenges.
REST API Security
Authentication Methods
- API Keys (least secure)
- OAuth 2.0 flows
- JWT tokens
- Certificate-based authentication
Common API Vulnerabilities
-
Broken Object Level Authorization
GET /api/users/123/profile # Change to: GET /api/users/456/profile -
Mass Assignment
POST /api/users/update { "name": "John", "email": "john@example.com", "role": "admin" // Unexpected parameter } -
Rate Limiting Bypass
- Missing rate limits
- Rate limit reset vulnerabilities
- Distributed attack possibilities
GraphQL Security Considerations
Introspection Attacks
{
__schema {
types {
name
fields {
name
type {
name
}
}
}
}
}Query Depth Attacks
- Deeply nested queries causing DoS
- Expensive query combinations
- Missing query complexity analysis
4. File Handling Security
File upload and handling vulnerabilities can lead to complete system compromise.
Upload Vulnerability Categories
Client-Side Validation Bypass
- JavaScript filter manipulation
- Browser developer tools modification
- Direct API calls bypassing UI
Server-Side Filter Bypass Techniques
-
Extension Manipulation
shell.php → shell.php.jpg shell.php → shell.PHP (case sensitivity) shell.php → shell.php%00.jpg (null byte) shell.php → shell.phtml (alternative extensions) -
Content-Type Manipulation
Content-Type: image/jpeg # Change to: Content-Type: application/x-php -
Magic Number Spoofing
# Add PNG magic bytes to PHP file echo -e '\x89\x50\x4E\x47\x0D\x0A\x1A\x0A' > shell.php cat malicious.php >> shell.php
Secure File Handling Implementation
Validation Layers
- File type validation (whitelist approach)
- File size limitations
- Filename sanitization
- Content scanning (antivirus, pattern matching)
- Isolated storage location
- Randomized filenames
- Access control on file retrieval
5. Access Control & Authorization
Access Control Models
Role-Based Access Control (RBAC)
- Users assigned to roles
- Roles granted permissions
- Hierarchical role structures
Attribute-Based Access Control (ABAC)
- Dynamic permission evaluation
- Context-aware decisions
- Fine-grained control
Common Access Control Vulnerabilities
Insecure Direct Object References (IDOR)
# Original request
GET /api/documents/123
# Attack attempt
GET /api/documents/124Privilege Escalation Patterns
- Horizontal: Access other users’ data
- Vertical: Gain higher privileges
- Context switching vulnerabilities
Testing Access Controls
- Map All Endpoints
- Document required permissions
- Identify state-changing operations
- Note sensitive data access points
- Test with Different User Contexts
- Unauthenticated requests
- Low-privilege user attempts
- Cross-tenant access attempts
- Recently logged-out sessions
6. Web Cache Vulnerabilities
Cache Poisoning Attacks
Basic Cache Poisoning
GET /resource HTTP/1.1
Host: victim.com
X-Forwarded-Host: attacker.comCache Key Manipulation
- Unkeyed headers injection
- Query parameter pollution
- Fragment poisoning (#)
Cache Deception Attacks
# Attacker sends victim to:
https://example.com/my-account/nonexistent.css
# Server treats as:
https://example.com/my-account
# CDN caches as static CSS fileCache Security Headers
Cache-Control: no-store, no-cache, must-revalidate, private
Pragma: no-cache
Expires: 0
Vary: Cookie, Authorization7. HTTP Security Headers
Critical Security Headers
Content Security Policy (CSP)
Content-Security-Policy: default-src 'self';
script-src 'self' 'unsafe-inline' https://trusted.com;
style-src 'self' 'unsafe-inline';
img-src 'self' data: https:;Additional Security Headers
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: geolocation=(), microphone=(), camera=()
Strict-Transport-Security: max-age=31536000; includeSubDomainsHeader Injection Vulnerabilities
Host Header Injection
- Password reset poisoning
- Web cache poisoning
- Server-side request forgery
Testing Techniques
# Duplicate headers
Host: legitimate.com
Host: attacker.com
# Absolute URL
GET https://legitimate.com/ HTTP/1.1
Host: attacker.com
# Port injection
Host: legitimate.com:@attacker.com8. CORS & Cross-Origin Security
CORS Misconfiguration Patterns
Overly Permissive CORS
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: trueDynamic Origin Reflection
# Request
Origin: https://attacker.com
# Vulnerable Response
Access-Control-Allow-Origin: https://attacker.com
Access-Control-Allow-Credentials: trueCORS Security Testing
-
Test Origin Validation
curl -H "Origin: https://evil.com" https://target.com/api/data -
Check Null Origin
curl -H "Origin: null" https://target.com/api/data -
Subdomain Takeover Impact
- Trusted subdomain with CORS
- Subdomain takeover vulnerability
- Cross-origin data theft
9. Web Application Testing Methodology
Reconnaissance Phase
- Technology Stack Identification
- Server headers analysis
- JavaScript framework detection
- CMS identification
- API endpoint patterns
- Attack Surface Mapping
- All input vectors
- File upload points
- API endpoints
- WebSocket connections
- Hidden parameters
Systematic Testing Approach
Phase 1: Information Gathering
# Subdomain enumeration
subfinder -d target.com | httpx -status-code
# Technology identification
whatweb target.com
wappalyzer
# Directory/file discovery
ffuf -u https://target.com/FUZZ -w wordlist.txtPhase 2: Authentication Testing
- Username enumeration
- Password policy analysis
- Account lockout testing
- Session management review
- Multi-factor authentication bypass attempts
Phase 3: Authorization Testing
- Access control matrix development
- Privilege escalation attempts
- IDOR vulnerability scanning
- Business logic flow testing
Phase 4: Input Validation Testing
- SQL injection
- Cross-site scripting
- Template injection
- Header injection
- File upload vulnerabilities
Phase 5: Business Logic Testing
- Workflow manipulation
- Race conditions
- Price/quantity manipulation
- Time-based logic flaws
Phase 6: API Security Testing
- Endpoint enumeration
- Method tampering
- Rate limiting tests
- Data exposure analysis
Testing Tools Arsenal
Essential Tools
- Burp Suite Professional
- OWASP ZAP
- Postman/Insomnia
- ffuf/feroxbuster
- SQLMap
- Nikto
- Nmap
Specialized Tools
- Param Miner (cache poisoning)
- JWT_Tool (JWT manipulation)
- GraphQL Voyager (GraphQL introspection)
- Retire.js (component analysis)
10. Security Testing Checklist
Authentication & Session Management
- Username enumeration
- Weak password policy
- Account lockout bypass
- Session fixation
- Session timeout testing
- Cookie security attributes
- Password reset vulnerabilities
- Multi-factor authentication bypass
Access Control
- IDOR vulnerabilities
- Privilege escalation
- Forced browsing
- Missing function level access control
- Cross-tenant access
Business Logic
- Payment flow manipulation
- Race conditions
- Workflow bypass
- Input limit testing
- State management flaws
API Security
- Broken object level authorization
- Broken authentication
- Excessive data exposure
- Rate limiting
- Mass assignment
- Security misconfiguration
File Handling
- Unrestricted file upload
- Path traversal
- File type validation bypass
- Stored XSS via file upload
- XXE via file parsing
Caching & Headers
- Cache poisoning
- Cache deception
- Missing security headers
- Header injection
- CORS misconfiguration
Best Practices Summary
- Defense in Depth: Implement multiple layers of security controls
- Least Privilege: Grant minimum necessary permissions
- Input Validation: Validate all input on the server side
- Output Encoding: Encode all output based on context
- Secure by Default: Make secure options the default choice
- Regular Updates: Keep all components and dependencies updated
- Security Testing: Integrate security testing into CI/CD pipeline
- Monitoring: Implement comprehensive logging and monitoring
- Incident Response: Have a clear incident response plan
- Security Training: Regular security awareness for development teams
Related Topics
- SQL Injection Advanced Techniques
- Modern XSS Attack Vectors
- Network-Security-and-Services
- Tools-and-Methodologies
This guide represents current web application security best practices. Always verify specific implementation details against current security standards and your application’s unique requirements.