Course / 09 Web security / Lesson 21 of 28

OWASP Top 10:2025

Estimated time: 18 min reading · 14 min activity

The OWASP Top 10:2025 groups common web-application risks into ten broad categories. It is an awareness map: it helps you notice areas a narrow list of attacks might miss. It is not a complete test plan, a measure of your own application's risk or a required reading order.

Categories can overlap. An access failure may also disclose information, while a supply-chain failure may introduce vulnerable code. Use the mechanism and impact to explain a mapping rather than treating a rank as proof. The supplied CSV connects the 2025 category names with relevant course lessons.

Before you begin

Estimated time
18 min reading, 14 min activity. Setup and optional practice may take longer.
Where you work
Read the original fictional source, object tables, token claims and policy models in any current desktop or mobile browser. No loader, template engine, provider registration, service or network request is required.
Without a lab
Follow the printed data through each stated rule on paper. Record the decision, its supporting fact and a limit, then compare with the guided rubric. Model reasoning does not establish a live tool result. Reading works without JavaScript. Checking requires JavaScript and a secure context; saving also requires usable storage.

After this lesson you can:

  • Read the 2025 list as awareness, not as a lesson order.
  • Connect one owned permission failure to the category the map gives it.
  • Name a defense for one theme the attack titles do not finish.

01Example

This fresh mapping concerns a public diagnostic page, then the activity turns to software supply-chain evidence.

Observation in a fictional model: public diagnostics are enabled.
Mechanism: deployed settings expose internal details.
Map theme: Security Misconfiguration, A02:2025.
A category describes the concern; it does not verify a real application.

02What moved, in the introduction's words

The 2025 map begins with Broken Access Control, Security Misconfiguration and Software Supply Chain Failures. Cryptographic Failures and Injection follow. Its remaining themes cover Insecure Design, Authentication Failures, Software or Data Integrity Failures, Security Logging and Alerting Failures, and Mishandling of Exceptional Conditions. Read the names alongside the concrete theme cards rather than memorizing statistics.

The 2025 introduction places SSRF within Broken Access Control; the course keeps its separate lesson to teach the backend-fetch boundary. It expands supply-chain coverage and emphasizes alerting and exceptional-condition handling. A local system still needs its own inventory, scope and evidence-based plan. Core server/client topics and this map prepare you to continue to Crypto and files and First CTF; the later advanced lessons remain part of full Web security completion.

Use the 2025 list as an awareness map, and tell a missing permission from a cryptographic failure.Model. A teaching model drawn by hand. It shows the idea, not real tool output.

Read the full explanation below.

Security Misconfiguration, A02:2025A real application has been verified

Fictional observation

Observation in a fictional model: public diagnostics are enabled.
Selected evidence · Original fictional teaching evidence

Mechanism

Mechanism: deployed settings expose internal details.
Selected evidence · Original fictional teaching evidence
supported

Security Misconfiguration, A02:2025

The supplied mechanism fits the stated category.

A category describes concern; it does not verify a real application.

Original fictional teaching evidence

The supplied mechanism fits the stated category. A category describes concern; it does not verify a real application.

Follow the explanation

  1. The supplied mechanism fits the stated category. A category describes concern; it does not verify a real application.
  2. The record is explicitly a fictional model. No real application was tested.
Read every state and value

1. The supplied mechanism fits the stated category. A category describes concern; it does not verify a real application.

Evidence selected
Fictional observation · Mechanism
Current claim
theme
Source origins
Original fictional teaching evidence

2. The record is explicitly a fictional model. No real application was tested.

Evidence selected
Fictional observation
Current claim
real
Source origins
Original fictional teaching evidence
A category organizes an evidenced mechanism; a category name alone verifies no real vulnerability.

03Cover one missing theme

Read the evidence before comparing with the activity rubric. Use the cards. Do not treat the list as a scan.

rank,id,name,lesson_link
1,A01:2025,Broken Access Control,access-control
2,A02:2025,Security Misconfiguration,security-misconfiguration
3,A03:2025,Software Supply Chain Failures,missing-theme card supply
4,A04:2025,Cryptographic Failures,cryptographic protection
5,A05:2025,Injection,sql-injection xss command-injection
6,A06:2025,Insecure Design,business-logic
7,A07:2025,Authentication Failures,authentication-failures
8,A08:2025,Software or Data Integrity Failures,missing-theme card integrity
9,A09:2025,Security Logging and Alerting Failures,missing-theme card logging
10,A10:2025,Mishandling of Exceptional Conditions,information-disclosure and race-conditions

Download the lesson map

Themes the attack titles do not finish. Original miniatures.

Supply
  The app loads pay.py from a third-party build.
  Defense on the card: obtain the artifact through a trusted source, record its exact version, and compare a checksum with a trusted expected value. A checksum supplied beside a replaceable file is not an authenticity guarantee.
  This stage does not teach how to audit a registry.

Integrity of an artifact
  A saved object is loaded because the file name looks familiar.
  Defense on the card: load only a constrained data format and check its shape.
  The deserialization lesson continues this theme.

Logging
  A forbidden read returns and no operator record is written.
  Defense on the card: write the caller, the object, the decision, and the time, and alert on a burst of forbidden reads.
  The log must not contain the fictional secrets from the disclosure lesson.

Exception
  A public error includes a secret so that debugging is faster.
  Defense on the card: the public body keeps a safe message and reference id. Restricted diagnostics retain appropriate context but omit or redact secrets.

Download the theme cards

  1. Read the supply card. Write the defense it gives for a third-party build of pay.py.
  2. Read the logging card and the exception card. Notice that the log must not contain the fictional secrets from the disclosure lesson.
  3. Rubric: record the exact version and compare against a trusted expected checksum obtained through an appropriate source. Explain why a checksum beside a replaceable file is insufficient.
  4. Stop. This stage does not audit a package registry.

04Optional challenge

Write one sentence each for the integrity card, the logging card, and the exception card. The rubric is: a constrained format, a log line with caller, object, decision, and time plus an alert, and a public reference id. About ten minutes.

05Fresh cases for the checks

Use these fictional cases for the checks below. They have different inputs from the worked examples. Read them here or make notes; no installation or external service is needed.

Awareness case A: supplied part of the 2025 mapOwned fixture. An original file made for this course. Follow the activity's instructions in your own lab.

A01:2025 Broken Access Control: failures to enforce permitted object/action access.
A02:2025 Security Misconfiguration: deployed settings expose unnecessary diagnostic behavior.
A09:2025 Security Logging and Alerting Failures: important denied actions lack useful records or alerts.
Fresh observations:
P: a private note is returned to a signed-in non-owner despite an owner-only rule.
Q: public diagnostics remain enabled by deployment settings.
R: repeated forbidden reads leave no operator record or alert.

Awareness case B: independent supply-chain miniatureOwned fixture. An original file made for this course. Follow the activity's instructions in your own lab.

An application obtains a third-party package for its build.
Needed evidence: a trusted source, the exact version and a checksum compared with a trusted expected value.
A checksum beside a replaceable file is not alone an authenticity guarantee.
No package is downloaded or audited.

06Explain your evidence

Optional written self-check: explain one decision using the supplied case. No tool run is required.

Check your explanation: map evidence using the supplied awareness descriptions; express the actual failed requirement; propose a theme-specific defense; explain why a ranked list is neither a lesson order nor a complete test plan.

07Common mistakes

If you treat the rank as the lesson order, you skipped the opening. The map is awareness.

If you drop the SSRF lesson because A01 mentions it, the course still keeps that lesson.

If you call the list a finished test plan, the introduction says categories overlap and the data looks backward.

References

  • OWASP Top 10:2025 introduction

    The 2025 categories, methodology, renames and consolidation of SSRF. An awareness list does not replace a scoped assessment.