web application security

Web Application Security: The OWASP Top 10 Vulnerabilities Explained with Examples

๐Ÿ“˜ cybersecurity-academy · Part 8 of 15 · Module 4 · Web Security
A free, step-by-step course on buying, selling & trading domains. View the full series →
Web Application Security: The OWASP Top 10 Vulnerabilities Explained with Examples
Key takeaways
  • Broken Access Control is the #1 web vulnerability โ€” always test by changing IDs and parameters to access other users' data.
  • Security misconfiguration (default creds, exposed .git, debug mode) is the easiest to find and most common in real applications.
  • SSRF on cloud platforms can escalate to full account compromise through the metadata service at 169.254.169.254.

Web applications are the most attacked surface in cybersecurity. Every business has a website, most have web-based APIs, and the complexity of modern web stacks creates thousands of potential vulnerabilities. The OWASP Top 10 is the industry-standard list of the most critical web application security risks.

Understanding these vulnerabilities is essential whether you want to defend web applications as a developer, find bugs as a penetration tester, or earn bounties as a bug hunter.

Web Application Security: The OWASP Top 10 (2021) overview

The Open Web Application Security Project (OWASP) publishes the Top 10 every few years based on real-world data from hundreds of organizations:

  1. A01: Broken Access Control โ€” users can act beyond their permissions. #1 most common.
  2. A02: Cryptographic Failures โ€” sensitive data exposed due to weak or missing encryption.
  3. A03: Injection โ€” SQL, NoSQL, OS, LDAP injection through untrusted input.
  4. A04: Insecure Design โ€” architectural flaws that no amount of coding fixes.
  5. A05: Security Misconfiguration โ€” default creds, unnecessary features, verbose errors.
  6. A06: Vulnerable Components โ€” outdated libraries with known CVEs.
  7. A07: Authentication Failures โ€” weak login, session management, credential stuffing.
  8. A08: Software and Data Integrity โ€” CI/CD pipeline attacks, unsigned updates.
  9. A09: Security Logging Failures โ€” attacks go undetected due to poor monitoring.
  10. A10: Server-Side Request Forgery (SSRF) โ€” server fetches attacker-controlled URLs.

A01: Broken Access Control โ€” the #1 vulnerability

Broken access control means users can access data or functions they should not. It is the most common vulnerability because it is easy to miss โ€” every endpoint, every parameter, every API call needs access checks.

๐Ÿ”ฌ Demo: IDOR (Insecure Direct Object Reference)
# Normal request โ€” view your own profile:
GET /api/users/1234/profile
Authorization: Bearer <your-token>
โ†’ 200 OK {name: "Alice", email: "[email protected]"}

# IDOR attack โ€” change the ID to another user:
GET /api/users/1235/profile
Authorization: Bearer <your-token>
โ†’ 200 OK {name: "Bob", email: "[email protected]", ssn: "123-45-6789"}

# The server checked IF you were logged in,
# but NOT if you owned the resource.

# Fix: always check ownership
# if (request.userId != resource.ownerId) return 403;

IDOR is one of the most common bug bounty findings. Always test by changing IDs, UUIDs, and other object references to see if the server enforces authorization.

A05: Security Misconfiguration โ€” low-hanging fruit

Misconfiguration is the easiest vulnerability class to find and exploit. Default credentials, debug modes in production, unnecessary HTTP methods, and verbose error messages are everywhere.

๐Ÿ”ฌ Demo: Finding misconfigurations
# Check for default credentials:
# admin:admin, admin:password, root:root, test:test

# Check HTTP methods (PUT/DELETE should not be open):
$ curl -X OPTIONS https://target.com -i
Allow: GET, HEAD, POST, PUT, DELETE, OPTIONS
# PUT and DELETE open = potential file upload/deletion

# Check for exposed .git directory:
$ curl -s https://target.com/.git/HEAD
ref: refs/heads/main
# If this returns anything โ†’ full source code leak!
# Use git-dumper to download the repo

# Check for directory listing:
$ curl -s https://target.com/backup/
# <title>Index of /backup</title>
# database.sql.gz  2024-01-15  45MB  โ† game over

# Check for verbose error pages:
$ curl 'https://target.com/api/user?id=\"'
# SQL error: You have an error in your SQL syntax...
# near '"' at line 1  โ† reveals database type + query

Check for exposed admin panels (/admin, /wp-admin, /phpmyadmin), backup files (.bak, .sql, .zip), and environment files (.env, config.php).

Explore Crypto Trading

Cryptocurrency trading is one of the fastest-growing financial markets โ€” open 24/7, globally accessible, and full of opportunity for those who learn the fundamentals first.

  • Trade spot, futures & copy-trading on one platform
  • Start with as little as $10 โ€” practice risk-free on the testnet
  • Built-in TradingView charts, grid bots & DCA tools

Free Crypto Trading Academy → ยท Domain Trading Academy →

A10: SSRF โ€” Server-Side Request Forgery

SSRF tricks the server into making requests to internal resources the attacker cannot reach directly. It is increasingly common as applications fetch URLs, process webhooks, and import data from user-provided URLs.

๐Ÿ”ฌ Demo: SSRF attack example
# Application has a URL preview feature:
POST /api/preview
{"url": "https://example.com"}
โ†’ returns page title, description, image

# SSRF attack โ€” access internal services:
POST /api/preview
{"url": "http://169.254.169.254/latest/meta-data/iam/"}
โ†’ returns AWS IAM credentials! (cloud metadata service)

POST /api/preview
{"url": "http://localhost:6379/INFO"}
โ†’ returns Redis server info (internal database)

POST /api/preview
{"url": "http://192.168.1.1/admin"}
โ†’ returns internal router admin panel

# Fix: validate and restrict URLs
# 1. Whitelist allowed domains
# 2. Block private IP ranges (10.x, 172.16.x, 192.168.x)
# 3. Block cloud metadata IPs (169.254.169.254)
# 4. Don't follow redirects (attacker can redirect to internal)

SSRF on cloud platforms (AWS, GCP, Azure) is especially dangerous because the metadata service at 169.254.169.254 often provides credentials that grant access to the entire cloud account.

When evaluating web application security, start with the fundamentals: what problem it solves, who it serves, and how it compares to the alternatives buyers consider first.

Start with the fundamentals. Define who you are serving, the single outcome you want, and the budget you are comfortable committing before you compare any options.

A practical rule is to favour clarity over cleverness. The choice that is easiest to understand, spell, remember and act on tends to win over the long run.

Context changes the answer. What is optimal for a fast-moving startup is rarely optimal for an established brand, so weigh your own stage, market and ambitions.

Avoid the common mistakes: rushing the decision, copying competitors blindly, and ignoring the total cost of ownership beyond the very first year of use.

Think in terms of trade-offs rather than a single perfect answer. Every option trades memorability, cost, reach and flexibility in a slightly different mix.

Document your reasoning. Writing down why you chose one path makes it far easier to revisit the decision later and to explain it to partners and investors.

Test with real people. A quick check with a handful of your actual customers will surface problems that no amount of internal debate ever reveals.

Plan for growth. The option that fits today should still make sense when your audience, catalogue or team is several times larger than it is right now.

WSOT 2026: Squad Leader Slots Are Open โ€” Up to $128,000 per Leader

Join Now

Frequently asked questions

Should I memorize all OWASP Top 10 details?

Yes โ€” these are the bread and butter of web security. Know each category, understand the attack mechanism, and be able to explain the fix. Interviewers, certifications, and real engagements all test this knowledge.

How do I practice finding web vulnerabilities?

Use DVWA, OWASP WebGoat, and PortSwigger Web Security Academy (free). These have guided exercises for every vulnerability type. Then graduate to HackTheBox and real bug bounty programs.

Free Courses โ€” Learn New Skills

No sign-up · No fees · Learn at your own pace

Start Trading

Trade crypto and premium domains โ€” digital assets with real opportunities.

Find your name on Atom

DominantBrand curates the best premium, brandable names from Atom.com — the marketplace with a free AI appraisal, a USPTO trademark check, and secure escrow. Every listing even ships with a designed logo.

Browse Domains