Web Application
- A. Scoping & Rules of Engagement
- Define Target URLs/Applications/APIs
- Define Testing Scope (e.g., specific functionalities, subdomains, out-of-scope areas)
- Define Objectives (e.g., identify OWASP Top 10, specific data exfiltration, RCE)
- Define Allowed/Disallowed Test Types (e.g., DoS/DDoS, aggressive scanning, social engineering of app users)
- Define Testing Window & Blackout Periods
- Establish Communication Channels & Escalation Paths
- Obtain Explicit Written Authorization
- Identify Test Accounts (roles: unauthenticated, authenticated user, admin, etc.)
- Discuss Incident Response Plan (client-side) if critical issues are found
- NDA and Legal Agreements in Place
- Understand Business Logic and Critical Workflows
- B. Passive Reconnaissance (OSINT & Non-Intrusive)
- Identify Hosting Provider & IP Addresses
- Gather DNS Information (A, CNAME, MX, TXT, SPF, DMARC, DKIM)
- Subdomain Enumeration (Search engines, DNSDumpster, VirusTotal, Sublist3r, Amass,crt.sh)
- Identify Related Domains & Acquired Company Applications
- Search Engine Dorking (Google, Bing, DuckDuckGo) for:
- Login Pages
- Admin Portals
- Error Messages
- Exposed Files (config, logs, backups, documents)
- Sensitive Information in Public Documents/Metadata
- API Endpoints in JavaScript files
- Analyze Publicly Available Code Repositories (GitHub, GitLab, Bitbucket) for:
- Hardcoded Credentials
- API Keys
- Sensitive Logic/Endpoints
- Vulnerable Code Snippets
- Check Web Archive (Archive.org, other caches) for:
- Old Versions of Pages
- Previously Exposed Information or Endpoints
- Changes in Technology Stack
- Analyze SSL/TLS Certificates (Subject Alternative Names, Issuer, Validity, Certificate Transparency Logs)
- Identify Technologies Used (Wappalyzer, WhatWeb, BuiltWith):
- Web Server (Apache, Nginx, IIS, etc.)
- Backend Language/Framework (PHP, Java/Spring, Python/Django, Node.js/Express, Ruby/Rails, ASP.NET)
- Frontend Frameworks/Libraries (React, Angular, Vue.js, jQuery)
- Content Management System (CMS) (WordPress, Joomla, Drupal, etc.) & Plugins/Themes
- Web Application Firewall (WAF) Detection (WAFW00F)
- Analytics & Marketing Tools
- Search for Publicly Reported Vulnerabilities for Identified Technologies
- Analyze
robots.txt
and sitemap.xml
- Check for Information Disclosure in HTTP Headers
- Social Media & Forum Research for Employee Posts or Application Mentions
- Pastebin/Dark Web searches for leaked credentials or data related to the target
- C. Active Reconnaissance (Light Interaction)
- Manual Site Crawling & Exploration (as a user)
- Identify Application Entry Points (Login, Registration, Search, Contact Forms, File Uploads)
- Identify Application Exit Points (Data Display, Exports, API Responses)
- Automated Spidering/Crawling (Burp Suite, ZAP, Screaming Frog - respect
robots.txt
unless permitted to ignore)
- Directory & File Brute-Forcing (Gobuster, Dirb, Feroxbuster, ffuf) for:
- Admin Interfaces
- Backup Files (
.bak
, .old
, .zip
, ~
)
- Configuration Files (
web.config
, .env
, wp-config.php
)
- Source Code Files (
.java
, .php
, .cs
, .py
)
- Log Files
- Temporary Files
- Exposed API Endpoints (common paths, Swagger/OpenAPI definitions)
- Virtual Host Enumeration (if multiple apps on same IP)
- Fingerprint Web Server Further (HTTP methods, error pages, specific version probes)
- Light Port Scanning on Web Server IP (common web ports: 80, 443, 8000, 8080, etc.)
- Identify Default Credentials for Known Technologies (e.g., Tomcat Manager, JBoss Console)
- Analyze JavaScript Files for:
- API Endpoints
- Hidden Parameters
- Sensitive Logic
- Comments with sensitive info
- Weak Cryptographic Usage
- DOM XSS Sinks & Sources
- Check for Source Code Disclosure (e.g.,
.git
folder, .DS_Store
, SVN entries)
- Check for Client-Side Storage (Local Storage, Session Storage, Cookies, IndexedDB) for sensitive data
II. Threat Modeling & Vulnerability Analysis
- A. Identify Key Assets & Trust Boundaries:
- User Data (PII, credentials, financial info)
- Application Data (business secrets, intellectual property)
- Session Tokens
- Admin Functionality
- Backend Systems (databases, internal APIs)
- B. Analyze Application Architecture:
- Client-Side vs. Server-Side Logic
- Single Page Application (SPA) vs. Traditional Multi-Page Application (MPA)
- API Usage (internal, external, third-party)
- Data Flow Diagrams (how data is processed, stored, transmitted)
- Authentication & Authorization Mechanisms
- C. Map Attack Surface:
- All HTTP(S) Endpoints (GET, POST, PUT, DELETE, etc.)
- All Input Parameters (URL, query string, headers, body - JSON, XML, form-data)
- File Upload Functionality
- User-Controllable Data in Headers (Referer, User-Agent, Custom Headers)
- WebSockets / Server-Sent Events
- Third-Party Integrations & Libraries
- D. Automated Vulnerability Scanning (with caution and verification):
- Dynamic Application Security Testing (DAST) tools (Burp Suite Pro, OWASP ZAP, Acunetix, Netsparker)
- Content Management System (CMS) specific scanners (WPScan, JoomScan, Droopescan)
- API specific scanners
- JavaScript library vulnerability scanners (Retire.js)
- Review and Manually Verify All Scanner Findings (critical to eliminate false positives)
III. Authentication Testing
- A. Enumeration:
- User Enumeration via Login Page (different error messages for valid/invalid users)
- User Enumeration via Password Reset Page
- User Enumeration via Registration Page (username already exists)
- User Enumeration via API endpoints
- B. Password Policy:
- Check for Minimum/Maximum Length Requirements
- Check for Complexity Requirements (uppercase, lowercase, numbers, symbols)
- Check for Password History Restriction
- Check for Password Expiration & Forced Reset
- Check against Common Password Lists / Dictionary Attacks
- Check for Easily Guessable "Hint" Questions/Answers
- C. Brute-Force Attacks:
- Login Form Brute-Force (users, passwords)
- Password Reset Token Brute-Force
- CAPTCHA Bypass/Weakness Testing
- Account Lockout Mechanism Testing (existence, threshold, duration, reset)
- Rate Limiting on Authentication Attempts
- Multi-Factor Authentication (MFA/2FA) Token Brute-Force (if applicable)
- D. Credentials Transport & Storage:
- Credentials Sent Over HTTPS (no HTTP)
- Autocomplete Prevention on Password Fields (
autocomplete="off"
or "new-password"
)
- No Hardcoded Credentials in Client-Side Code
- No Default Credentials for Admin/Test Accounts
- Secure Password Storage (hashing with strong algorithm and salt, e.g., Argon2, scrypt, bcrypt, PBKDF2)
- E. Session Management for Authentication:
- Session Token Generation (randomness, length, uniqueness)
- Session Token Transmission (HTTPS only, HttpOnly flag, Secure flag for cookies)
- Session Timeout (idle and absolute)
- Session Fixation Vulnerabilities
- Session Hijacking (if tokens are predictable or exposed)
- Secure Logout (session invalidated server-side)
- Concurrent Session Management
- "Remember Me" Functionality Security (long-lived tokens, secure storage)
- F. Multi-Factor Authentication (MFA/2FA):
- MFA Bypass Techniques (e.g., response manipulation, backup code issues)
- Weak OTP Generation/Validation
- Information Disclosure of MFA Status
- MFA Trust Mechanisms (e.g., trust this device) and their bypasses
- Brute-forcing recovery codes
- Social engineering MFA codes
- G. OAuth / OpenID Connect / SAML Testing:
- Weak Redirect URI Configuration (Open Redirect, token theft)
- CSRF on Authorization Flow (
state
parameter misuse)
- Authorization Code Interception / Replay
- Implicit Grant Flow Misuse (token leakage via browser history/Referer)
- JWT Vulnerabilities (alg=none, weak secrets, public key confusion,
kid
injection)
- SAML Assertion Tampering, Signature Wrapping, XML Injection
- Insufficient Scope Validation
- Client Secret Leakage
- H. Password Reset & Account Recovery:
- Token Generation (randomness, expiry, single-use)
- Token Leakage (e.g., in URL, via Referer header)
- Information Disclosure During Reset Process (e.g., confirming email existence)
- Host Header Injection for Password Reset Links
- No Link Between Session and Reset Process
- Email/SMS Verification Code Brute-Force/Bypass
IV. Authorization Testing
- A. Horizontal Privilege Escalation:
- Accessing Data/Functionality of Other Users with Same Role
- Modifying Identifiers in URLs, POST data, Headers, Cookies (IDOR)
- Testing All Functions with User A's Session, Then User B's Identifiers
- B. Vertical Privilege Escalation:
- Accessing Admin/Higher-Privileged Functionality with Lower-Privileged User Session
- Forced Browse to Admin URLs
- Parameter Tampering to Invoke Privileged Functions
- Exploiting Chained Vulnerabilities to Elevate Privileges
- C. Insecure Direct Object References (IDOR):
- Testing for IDOR in GET/POST parameters, JSON bodies, Cookies, Headers
- Testing with numeric IDs, GUIDs, usernames, filenames
- Checking for IDOR in API endpoints
- Testing for IDOR in multi-tenant applications
- D. Missing Function-Level Access Control:
- Directly Calling Privileged Functions/API Endpoints Without Proper Checks
- Accessing Admin Panels/Functions While Authenticated as a Regular User
- E. Role-Based Access Control (RBAC) Bypass:
- Manipulating Role Parameters
- Exploiting Flaws in Role Assignment Logic
- Path Traversal to Access Restricted Resources Based on Role
- F. Client-Side Authorization Control Bypass:
- Disabling JavaScript
- Modifying JavaScript Variables
- Intercepting and Modifying Requests in Burp/ZAP to Bypass Client-Side UI Restrictions
- G. Insecure API Authorization:
- Missing or Weak API Key/Token Validation
- Broken Object Level Authorization (BOLA) in APIs
- Broken Function Level Authorization (BFLA) in APIs
- Mass Assignment leading to privilege escalation via API
V. Session Management Testing
- A. Session Token Properties:
- Meaningful Session Tokens (avoid sequential or easily guessable tokens)
- Session Token Length and Entropy
HttpOnly
Flag on Cookies
Secure
Flag on Cookies
SameSite
Attribute (Lax, Strict, None) on Cookies & CSRF implications
- Cookie Path and Domain Scope (
Path=/
, Domain=
) - ensure not too broad
- Cookie Expiration and
Max-Age
- B. Session Lifecycle:
- Session Invalidation on Logout
- Session Invalidation on Password Change/Reset
- Session Invalidation on Idle Timeout
- Session Invalidation on Absolute Timeout
- Session Renewal Mechanisms (sliding sessions) security
- Handling of Concurrent Logins (allow, disallow, notify)
- C. Session Puzzling/Fixation:
- Forcing Session IDs via GET/POST Parameters or Headers
- Session Fixation Before Authentication
- Session Adoption Vulnerabilities
- D. Cross-Site Request Forgery (CSRF):
- Absence of Anti-CSRF Tokens for State-Changing Requests
- Weak Anti-CSRF Token Implementation (not tied to session, predictable, reusable)
- CSRF on Login/Logout Forms (less common but possible impact)
- Testing for CSRF in AJAX requests
- Testing for CSRF with different HTTP methods (GET, POST, PUT, DELETE)
- Use of
SameSite
cookie attribute as a defense and its limitations
- E. JSON Web Token (JWT) Specifics:
alg:none
vulnerability
- HMAC with Public Key (Algorithm Confusion)
- Weak Secret Keys (brute-forceable)
kid
parameter injection / path traversal
- Sensitive data in JWT payload (non-encrypted)
- Lack of
exp
(expiration) claim or improper validation
iat
(issued at) and nbf
(not before) claim validation
- JKU/X5U header vulnerabilities (SSRF to fetch malicious keys)
- Replay attacks if
jti
(JWT ID) is not used or validated for uniqueness
- Signature stripping
- A. Cross-Site Scripting (XSS):
- Reflected XSS:
- Testing all input fields, URL parameters, HTTP headers
- Using various XSS payloads (script tags, event handlers, different encodings)
- Testing in HTML context, JavaScript context, attribute context, URL context
- Stored XSS:
- Testing inputs that are stored and later displayed (comments, profiles, forum posts, filenames)
- Testing for second-order stored XSS (data stored via one function, XSS triggers via another)
- DOM-based XSS:
- Identifying sources (e.g.,
location.hash
, document.referrer
) and sinks (e.g., innerHTML
, document.write
, eval
)
- Manually crafting payloads targeting DOM manipulation
- Using browser developer tools to trace data flow
- Blind XSS:
- Injecting payloads into backend systems (e.g., log viewers, admin panels) that might trigger later
- Using XSS Hunter or similar services
- XSS Filter Evasion Techniques:
- Encoding (HTML entities, URL encoding, Base64)
- Case variations
- Null bytes
- Obfuscated JavaScript
- Using less common event handlers/tags
- Content Security Policy (CSP) Analysis & Bypass:
- Review CSP headers for misconfigurations (
unsafe-inline
, unsafe-eval
, overly broad sources)
- JSONP abuse for CSP bypass
- Dangling markup injection
- B. SQL Injection (SQLi):
- In-band SQLi:
- Error-based (forcing database errors revealing data/schema)
- Union-based (combining results from another table)
- Inferential (Blind) SQLi:
- Boolean-based (observing true/false responses)
- Time-based (injecting delays to infer data)
- Out-of-band SQLi:
- Using database functions to exfiltrate data via DNS, HTTP requests (e.g.,
xp_dirtree
, UTL_HTTP
, LOAD_FILE
)
- Testing Locations:
- URL Parameters (GET)
- Form Fields (POST)
- HTTP Headers (Cookie, User-Agent, Referer, Custom Headers)
- JSON/XML Payloads
- Stored Procedures / Second Order SQLi
- Database Specific Payloads:
- MySQL, MSSQL, PostgreSQL, Oracle, SQLite
- WAF Bypass Techniques for SQLi:
- Comments, whitespace, case variations, encoding, null bytes, alternative syntax
- NoSQL Injection:
- Targeting MongoDB, CouchDB, etc.
- Operator injection (
$gt
, $ne
, $where
), JavaScript injection
- C. OS Command Injection:
- Testing inputs used in system commands (filenames, user inputs to scripts)
- Using command separators (
;
, |
, &&
, ||
, \n
, `
)
- Blind command injection techniques (time delays, output redirection to webroot, out-of-band)
- Testing file upload functionalities for command injection via filenames or metadata
- D. LDAP Injection:
- Testing inputs used in LDAP queries (login forms, search functions)
- Using LDAP metacharacters (,
(
, )
, \
, &
, |
, !
)
- E. XPath Injection / XXE (XML External Entity) Injection:
- XPath Injection:
- Testing inputs used in XPath queries in XML-based applications
- XXE Injection:
- Testing XML parsers for XXE vulnerabilities (file uploads, SOAP requests, other XML inputs)
- Exploiting XXE for:
- File disclosure (
file:///etc/passwd
)
- SSRF (accessing internal resources)
- Denial of Service (billion laughs attack)
- Port scanning internal networks
- Testing for out-of-band XXE
- F. Server-Side Template Injection (SSTI):
- Identifying template engines (Jinja2, Twig, Freemarker, Velocity, ERB, etc.)
- Using polyglot payloads to detect SSTI
- Crafting payloads for RCE or information disclosure based on the identified engine
- Testing in user profiles, custom templates, email generation, PDF generation
- G. HTTP Header Injection / Response Splitting:
- Injecting
CRLF
characters (\r\n
) into headers controlled by user input
- Testing for cache poisoning, XSS, session fixation via header injection
- Testing for HTTP Response Splitting
- H. NoSQL Injection (Re-iterated for specific focus):
- Check if user inputs directly construct NoSQL queries
- Try injecting NoSQL operators (e.g., MongoDB:
$ne
, $regex
, $where
for JS execution)
- Test for data type manipulation that could lead to unexpected query behavior
- I. Host Header Injection:
- Manipulating the
Host
header for:
- Password reset poisoning
- Cache poisoning
- SSRF against internal hosts that trust the Host header
- Accessing internal applications if a reverse proxy uses the Host header for routing
- J. CSV / Formula Injection:
- Testing "Export to CSV/Excel" functionalities
- Injecting payloads like
=cmd|' /C calc'!A0
or =HYPERLINK(...)
that execute when the CSV is opened
- K. Insecure File Uploads:
- Bypassing File Type Restrictions (magic bytes, extensions,
Content-Type
header)
- Uploading Web Shells (
.php
, .asp
, .jsp
, .aspx
, .phtml
)
- Uploading Files with Malicious Payloads (XSS in SVG, XXE in XML/DOCX)
- Directory Traversal on File Upload Path (
../../shell.php
)
- Double Extension Attack (
shell.php.jpg
)
- Null Byte Injection in Filename (
shell.php%00.jpg
)
- Testing for Race Conditions during file upload and processing
- Large File Upload DoS
- Pixel Flood Attack (ImageMagick/GraphicsMagick vulnerabilities)
- Antivirus Bypass for uploaded malware
- Overwriting existing critical files
VII. Server-Side Vulnerabilities
- A. Server-Side Request Forgery (SSRF):
- Identifying functionalities that make requests based on user input (URL fetchers, PDF generators, webhook integrations)
- Testing with
http://
, https://
, file:///
, ftp://
, gopher://
, dict://
schemes
- Accessing internal IP addresses and ports (e.g.,
127.0.0.1
, 169.254.169.254
, internal RFC1918 ranges)
- Interacting with cloud metadata services (AWS EC2, Azure IMDS, GCP Metadata Server)
- Bypassing SSRF defenses (blacklists, whitelists, open redirects)
- Blind SSRF detection techniques
- B. Security Misconfigurations (Server Level):
- Default Credentials (admin panels, databases, middleware)
- Directory Listing Enabled
- Verbose Error Messages Disclosing Sensitive Information (stack traces, paths, config details)
- Unnecessary Services/Features Enabled (e.g., debug modes, sample applications, HTTP methods like PUT/DELETE if not used)
- Outdated Software Versions (web server, OS, libraries - check for public CVEs)
- Misconfigured HTTP Headers (Missing
Strict-Transport-Security
, Content-Security-Policy
, X-Content-Type-Options
, X-Frame-Options
, Referrer-Policy
)
- Information Leakage via Headers (
Server
, X-Powered-By
, X-AspNet-Version
)
- Insecure Cross-Origin Resource Sharing (CORS) Configuration (
Access-Control-Allow-Origin: *
or reflecting origin)
- Open Ports for Unnecessary Services
- Weak SSL/TLS Configurations (old protocols like SSLv3/TLSv1.0/1.1, weak ciphers, BEAST, POODLE, Heartbleed, Sweet32)
- Exposed Management Interfaces (Tomcat Manager, JBoss Admin Console, phpMyAdmin)
- Insecure handling of
.git
directory or other VCS metadata
- Path Traversal at the Web Server Level (e.g., misconfigured aliases)
- C. Using Components with Known Vulnerabilities:
- Identifying all third-party libraries (client-side and server-side)
- Checking versions against vulnerability databases (NVD, CVE Details, Snyk, Retire.js for JS)
- Testing for known exploits for identified vulnerable components
- D. Information Disclosure:
- Sensitive Data in Comments (HTML, JS, CSS)
- Error Message Content (stack traces, database errors, internal paths)
- Backup Files (
.bak
, .swp
, .old
, ~
)
- Configuration Files Exposed (
.env
, web.config
, appsettings.json
)
- API Key Leakage (client-side code, public repositories, error messages)
- User Profile Information Leakage (e.g., via sequential IDs or search features)
- Debug Parameters revealing sensitive info (
?debug=true
)
- E. Denial of Service (DoS) - Use with EXTREME caution and explicit permission:
- Resource Exhaustion (CPU, memory, disk space) via legitimate-looking requests
- Regex DoS (ReDoS) in input validation
- XML Bomb / Billion Laughs (for XXE-vulnerable parsers)
- Large File Uploads
- Slow HTTP Attacks (Slowloris, Slow POST)
- Asymmetric Resource Consumption (e.g., password hashing, complex search queries)
- Logic flaws leading to resource exhaustion
- Testing for lack of rate limiting on expensive operations
VIII. API Security Testing (REST, GraphQL, SOAP, WebSockets)
- A. General API Vulnerabilities (Applicable to REST, GraphQL, etc.):
- Broken Authentication (as per Section III)
- Broken Authorization (BOLA/IDOR, BFLA - as per Section IV)
- Excessive Data Exposure (API returning more data than necessary)
- Mass Assignment (binding client-controlled data to internal object properties without validation)
- Lack of Resources & Rate Limiting (DoS, brute-force)
- Security Misconfiguration (verbose errors, default creds, CORS, HTTP headers)
- Injection Vulnerabilities (SQLi, NoSQLi, Command Inj. in API parameters)
- Improper Assets Management (e.g., old API versions still active and vulnerable, exposed dev/staging APIs)
- Insufficient Logging & Monitoring (for detecting attacks)
- B. REST API Specifics:
- HTTP Method Tampering (e.g., using GET instead of POST, or PUT/DELETE when not intended)
- Insecure handling of
Content-Type
(e.g., expecting JSON but accepting XML leading to XXE)
- API Key Management (secure storage, rotation, privilege scoping)
- Parameter Pollution (HTTP Parameter Pollution - HPP)
- Unprotected API endpoints (especially for internal or sensitive operations)
- Versioning issues (e.g.,
/v1/
vulnerable while /v2/
is fixed)
- C. GraphQL Specifics:
- Introspection Query Enabled (allowing attackers to map the entire schema)
- Batching Attacks (sending multiple queries in one request to cause DoS)
- Circular Queries (DoS)
- Field Duplication (DoS)
- Deeply Nested Queries / Query Depth Limiting
- Alias Overloading
- Authorization Bypass via Nested Objects or mutations
- Suggestions Enabled (can leak field/type names)
- Injection within GraphQL arguments
- D. SOAP API Specifics:
- XML Injection / XXE in SOAP messages
- WSDL Enumeration and Analysis
- Replay Attacks with SOAP messages
- WS-Security Misconfigurations
- E. WebSockets / Socket.IO Specifics:
- Unauthenticated/Unauthorized Access to WebSocket Endpoints
- Cross-Site WebSocket Hijacking (CSWSH)
- Data Injection through WebSocket Messages (XSS, SQLi if data is processed insecurely)
- Lack of Message Encryption (if
wss://
is not used)
- Denial of Service via message flooding
- Weak origin validation
IX. Business Logic Vulnerabilities
- A. All
- Identify Application Workflows (user registration, password reset, shopping cart, payment processing, approval chains)
- Test for Flaws in Multi-Stage Processes (e.g., skipping steps, manipulating state)
- Price Manipulation (tampering with prices in requests or client-side)
- Discount/Coupon Abuse
- Order Modification/Cancellation Flaws
- Approval Process Bypass
- Exploiting Race Conditions in Business Logic (e.g., redeeming a voucher multiple times)
- Feature Abuse (e.g., spamming via contact forms, review bombing)
- Unexpected Application State Manipulation
- Data Validation Flaws Beyond Security (e.g., allowing negative quantities)
- Information Leakage through Business Logic Flows
- Exploiting Trust Between Application Components
- Circumventing Workflow Rules
- Unauthorized Fund Transfers or Data Modification
X. Cryptography & Data Protection
- A. All
- Use of Weak or Deprecated Cryptographic Algorithms (MD5, SHA1 for hashing passwords, DES, RC4 for encryption)
- Insufficient Key Length or Weak Key Generation
- Hardcoded Cryptographic Keys in Client-Side or Server-Side Code
- Missing Encryption for Sensitive Data at Rest (databases, files)
- Missing Encryption for Sensitive Data in Transit (ensure TLS 1.2+ everywhere, strong ciphers)
- Predictable IVs (Initialization Vectors) or Nonce Reuse in Symmetric Encryption
- Padding Oracle Attacks (if CBC mode with PKCS#7 padding is used and error messages leak info)
- Insecure Random Number Generation for Security-Sensitive Values (session tokens, CSRF tokens, password reset tokens)
- Client-Side Cryptography Implementation Weaknesses (often easily bypassed)
- Information Leakage via Cryptographic Error Messages
- Data Masking Failures (e.g., credit card numbers not properly masked in logs or UI)
XI. Error Handling & Logging
- A. All
- Verbose Error Messages (stack traces, internal paths, SQL errors, software versions)
- Test different inputs, invalid parameters, unexpected data types
- Generic vs. Specific Error Messages (avoid revealing too much, but provide enough for user understanding)
- Inconsistent Error Handling Across Application
- Improper Logging (sensitive data in logs - passwords, API keys, session tokens, PII)
- Insufficient Logging (not logging security-relevant events - logins, failed logins, access control failures, input validation failures)
- Logs Accessible by Unauthorized Users
- Log Injection / Log Forging (injecting fake log entries or CRLF to break log format)
- Error Codes that Reveal Too Much Information
XII. Client-Side Security (Beyond DOM XSS)
- A. All
- Insecure Use of
postMessage()
API (missing origin validation, data validation)
- Insecure Data Storage in Browser (Local Storage, Session Storage, Cookies - check for sensitive info)
- Client-Side URL Redirects (Open Redirect if user input controls destination without validation)
- Clickjacking / UI Redressing (ensure
X-Frame-Options
or CSP frame-ancestors
are used)
- Cross-Origin Resource Sharing (CORS) Misconfigurations allowing unauthorized origins
- Subresource Integrity (SRI) Not Used for External JS/CSS
- Outdated or Vulnerable JavaScript Libraries (Retire.js)
- Improperly Sanitized Data Displayed from Client-Side Storage
- WebAssembly (WASM) vulnerabilities (if used, memory corruption, logic flaws)
- Service Worker vulnerabilities (interception, cache poisoning)
XIII. Reporting & Post-Assessment
- A. All
- Document All Findings (description, vulnerable URLs/parameters, PoC steps, screenshots/videos)
- Assess Impact and Likelihood (CVSS scoring or similar)
- Provide Clear Remediation Guidance (specific to the vulnerability and technology)
- Executive Summary for Management
- Technical Details for Development Teams
- Positive Findings (what the application does well)
- Strategic Recommendations for Overall Security Posture Improvement
- (Optional) Retest after fixes are applied.