# OWASP Top 10: Understanding Web Application Vulnerabilities
Introduction to OWASP Top 10
The Open Web Application Security Project (OWASP) Top 10 represents the most critical security risks to web applications worldwide. This authoritative document is developed by security experts and reflects the current threat landscape based on data from organizations worldwide.
Understanding these vulnerabilities is essential for developers, security professionals, and organizations seeking to secure their web applications.
OWASP Top 10 List Overview
- A01:2021 - Broken Access Control
- A02:2021 - Cryptographic Failures
- A03:2021 - Injection
- A04:2021 - Insecure Design
- A05:2021 - Security Misconfiguration
- A06:2021 - Vulnerable and Outdated Components
- A07:2021 - Identification and Authentication Failures
- A08:2021 - Software and Data Integrity Failures
- A09:2021 - Security Logging and Monitoring Failures
- A10:2021 - Server-Side Request Forgery
A01:2021 - Broken Access Control
Access control enforces policy that unauthenticated users cannot act outside their intended permissions. When access control fails, attackers can access unauthorized functionality and data.
Common vulnerabilities include vertical privilege escalation where users access functions reserved for higher privileges, horizontal privilege escalation where users access resources of other users with similar permissions, and insecure direct object references (IDOR) where direct access to objects is based on user input.
Prevention strategies include denying access by default, implementing access control mechanisms once and reusing them, recording access control failures for monitoring, rate limiting API and controller access, and validating user input for authorization.
A02:2021 - Cryptographic Failures
Previously known as Sensitive Data Exposure, this category focuses on cryptographic failures leading to exposure of sensitive data.
Common vulnerabilities include transmitting data in clear text over HTTP, SMTP, or FTP, using deprecated algorithms like MD5 or SHA1 for hashing, weak key generation using predictable random numbers, and missing encryption for sensitive data like passwords, credit cards, and PII.
Prevention strategies include classifying data and identifying sensitive data requiring encryption, encrypting data in transit using TLS 1.2+ with strong ciphers, encrypting data at rest using AES-256, disabling caching for sensitive data, and using strong hashing with bcrypt, scrypt, or Argon2 for passwords.
A03:2021 - Injection
Injection flaws occur when untrusted data is sent to an interpreter as part of a command or query. SQL, NoSQL, OS, and LDAP injections are common variants.
Common vulnerabilities include SQL Injection where user input is directly in SQL queries, XSS (Cross-Site Scripting) where scripts are injected into web pages, Command Injection where unsafe system command execution occurs, and LDAP Injection where LDAP queries are manipulated.
Prevention strategies include using parameterized queries, never concatenating user input into queries, implementing input validation with positive validation rather than denylists, escaping special characters when parameterization is not possible, and using ORM properly without disabling safeguards.
A04:2021 - Insecure Design
Insecure design represents weaknesses in design patterns and architectural decisions, distinct from implementation bugs.
Common vulnerabilities include missing rate limiting with no protection against brute force, broken authentication workflows with predictable reset tokens, weak MFA implementation with bypassable verification, and security by obscurity relying on hidden functionality.
Prevention strategies include establishing secure development lifecycle with security from design phase, using threat modeling for critical features and data flows, integrating security requirements in sprint planning, segregating tenant resources to prevent data leakage, and limiting resource consumption by user and service.
A05:2021 - Security Misconfiguration
Security misconfiguration is the most commonly seen issue, often resulting from default configurations, incomplete configurations, or verbose error messages.
Common vulnerabilities include default credentials still in use, unnecessary features enabled like sample apps and debug mode, missing security headers like X-Frame-Options and CSP, and error handling revealing stack traces in production.
Prevention strategies include establishing repeatable hardening process with automated configuration management, removing unnecessary features and uninstalling unused frameworks, reviewing and updating configurations including cloud resources, implementing proper error handling with generic messages in production, and segmenting application architecture with separate trust boundaries.
A06:2021 - Vulnerable and Outdated Components
Applications using components with known vulnerabilities are at increased risk. Developers may not know which components they use, or they may not prioritize updating them.
Common vulnerabilities include unpatched dependencies with outdated libraries containing known CVEs, unsupported components with no security updates available, and license vulnerabilities with GPL/AGPL issues in commercial software.
Prevention strategies include removing unused dependencies with regular dependency audits, maintaining continuous inventory tracking all component versions, monitoring for vulnerabilities by subscribing to security advisories, only obtaining components from official sources and verifying integrity, and automating updates where possible without breaking changes.
A07:2021 - Identification and Authentication Failures
Authentication weaknesses allow attackers to compromise passwords, keys, session tokens, or exploit implementation flaws to assume user identities.
Common vulnerabilities include weak password policies allowing common passwords, credential stuffing with password reuse across services, missing MFA with only single-factor authentication, and exposed session IDs in URLs, logs, or not properly rotated.
Prevention strategies include implementing multi-factor authentication where possible, establishing strong password policies with minimum length and complexity requirements, implementing account lockout policies to prevent brute force attacks, implementing session timeout and rotation to invalidate after inactivity, and rate limiting on authentication endpoints.
A08:2021 - Software and Data Integrity Failures
These failures relate to code and infrastructure that does not protect against integrity violations, including insecure CI/CD pipelines, auto-updates without verification, and insecure deserialization.
Common vulnerabilities include unverified software updates downloading from non-official sources, insecure CI/CD pipelines without code signing and weak access controls, insecure deserialization trusting untrusted data, and dependency confusion with malicious packages in registries.
Prevention strategies include verifying digital signatures for software and updates, reviewing CI/CD configuration for no hardcoded credentials, using integrity checks for libraries and dependencies, validating serialized data and sanitizing before deserialization, and sandboxing CI/CD environments to limit external access.
A09:2021 - Security Logging and Monitoring Failures
Without logging and monitoring, breaches cannot be detected. Insufficient logging, detection, monitoring, and active response occurs in most incident responses.
Common vulnerabilities include no logging of access failures with missing authentication attempts, logs stored locally only with no centralized logging, missing alerting thresholds with no notification for suspicious activity, and not monitoring for active attacks with no real-time detection.
Prevention strategies include logging all authentication attempts both success and failure, logging access control failures for denied access attempts, establishing alerting thresholds for suspicious patterns, implementing centralized log management with SIEM integration, and conducting regular penetration testing to verify monitoring effectiveness.
A10:2021 - Server-Side Request Forgery (SSRF)
SSRF flaws occur when a web application fetches a remote resource without validating the user-supplied URL. Attackers can force the application to send crafted requests to unexpected destinations.
Common vulnerabilities include fetching URLs provided by users without validation, accessing internal services via URL manipulation, and reading local files using file:// protocol.
Prevention strategies include segmenting remote resource access with network segmentation, establishing deny by default firewall rules blocking all but essential traffic, validating and sanitizing all input with whitelist allowed protocols, disabling HTTP redirections and not following redirects blindly, and using URL validation libraries instead of implementing parsing manually.
Implementing OWASP Top 10 Defenses
Security Checklist
- Access Control: Implement properly, test regularly, deny by default
- Cryptography: Encrypt sensitive data, use strong algorithms
- Injection Prevention: Parameterize queries, validate input
- Secure Design: Threat model critical features
- Security Configuration: Harden all components, remove defaults
- Component Security: Track dependencies, patch regularly
- Authentication: Implement MFA, strong password policies
- Integrity: Verify software, sign builds
- Logging: Log all security events, monitor continuously
- SSRF Prevention: Validate URLs, restrict access
Frequently Asked Questions
What is the current OWASP Top 10 version?
The current version is OWASP Top 10 2021, released in 2021. It is based on data from over 400 organizations and represents the most prevalent security risks.
How often does OWASP update the Top 10?
OWASP updates the Top 10 periodically based on changes in the threat landscape. The previous version was from 2017, showing that updates happen every few years.
How can I test my application for OWASP Top 10 vulnerabilities?
Use security tools like Burp Suite, OWASP ZAP, and specialized scanners. Conduct manual penetration testing. Use source code analysis tools. Follow the OWASP Testing Guide.
Is OWASP Top 10 only for web applications?
While primarily focused on web applications, many vulnerabilities apply to APIs, mobile applications, and other software. The principles are broadly applicable.
Conclusion
Understanding the OWASP Top 10 is fundamental for anyone involved in web application security. These vulnerabilities represent the most common and impactful security risks that attackers exploit.
Security is an ongoing process, not a one-time achievement. Stay informed about new vulnerabilities, update your defenses, and continuously test your applications.
Cyber Defence offers comprehensive web application security training covering the OWASP Top 10 and beyond. Our hands-on courses include practical labs and real-world attack scenarios.
Build your web application security expertise today. Protect your applications and users from the most critical security risks.

