Web Security Academy

Practical application security laboratories covering server-side mechanisms, browser-rendered attack vectors, and advanced protocol desynchronization.

Server-side topics

For complete beginners, we recommend starting with our server-side topics. These vulnerabilities are typically easier to learn because you only need to understand what's happening on the server. Our materials and labs will help you develop some of the core knowledge and skills that you will rely on time after time.

SQL injection

SQL injection is an old-but-gold vulnerability responsible for many high-profile data breaches. Although relatively simple to learn, it can potentially be used for some high-severity exploits. This makes it an ideal first topic for beginners, and essential knowledge even for more experienced users.

Authentication

Vulnerabilities in authentication mechanisms can allow attackers to gain access to sensitive data and functionality. Learn how to identify and exploit flawed password resets, account lockouts, 2FA bypasses, and brute-force vulnerabilities.

0 LABS
Locked

Path traversal

Path traversal (also known as directory traversal) allows an attacker to read arbitrary files on the server that is running an application. This might include application code, data, and credentials for back-end systems.

0 LABS
Locked

Command injection

OS command injection allows an attacker to execute arbitrary operating system commands on the server that is running an application, typically compromising the application and all its data.

0 LABS
Locked

Business logic vulnerabilities

Flaws in the design and implementation of applications that allow an attacker to elicit unintended behavior. This potentially enables attackers to manipulate legitimate functionality to achieve a malicious goal.

0 LABS
Locked

Information disclosure

Information disclosure is when a website unintentionally reveals sensitive data to users. Depending on the context, this can leak sensitive credentials, financial details, or technical data that aids further attacks.

0 LABS
Locked

Access control

Access control security vulnerabilities occur when user-controlled data is passed to administrative functions, enabling horizontal and vertical privilege escalation, insecure direct object references (IDOR), and workflow bypasses.

0 LABS
Locked

File upload vulnerabilities

Flaws where a web server allows users to upload files to its filesystem without sufficiently validating their name, type, contents, or size. Failing to enforce these restrictions can allow remote code execution.

0 LABS
Locked

Race conditions

Occur when websites process requests concurrently without adequate safeguards. A collision of requests can lead to multiple threads accessing the same resource simultaneously, resulting in unintended behavior.

0 LABS
Locked

Server-side request forgery (SSRF)

SSRF allows an attacker to induce the server-side application to make HTTP requests to an arbitrary domain of the attacker's choosing, targeting internal systems, loopback adapters, and cloud metadata.

0 LABS
Locked

XXE injection

XML external entity injection is a web security vulnerability that allows an attacker to interfere with an application's processing of XML data, enabling file viewing, SSRF, and blind data exfiltration.

0 LABS
Locked

NoSQL injection

Vulnerabilities that arise when an application includes user-supplied data in a NoSQL database query without proper sanitization, allowing attackers to manipulate queries and bypass access control.

0 LABS
Locked

API testing

Application programming interfaces (APIs) allow applications to communicate. Learn how to discover hidden API endpoints, identify broken object-level authorization, and exploit mass-assignment flaws.

0 LABS
Locked

Web cache deception

An attack where a malicious actor tricks a web cache into storing sensitive, dynamic user responses, making them publicly accessible to unauthorized users.

0 LABS
Locked

Client-side topics

Client-side vulnerabilities introduce an additional layer of complexity, which can make them slightly more challenging. These materials and labs will help you build on the server-side skills you've already learned and teach you how to identify and exploit some gnarly client-side vectors as well.

Cross-site scripting (XSS)

Simply put, XSS is one of the most important vulnerabilities out there. It's both incredibly common and extremely powerful, especially when used as part of a wider exploit chain. This is a huge topic, with plenty of labs for complete beginners and seasoned pros alike.

0 LABS
Locked

Cross-site request forgery (CSRF)

CSRF allows an attacker to induce users to perform actions that they do not intend to perform, circumventing the same-origin policy designed to prevent different websites from interfering with each other.

0 LABS
Locked

Cross-origin resource sharing (CORS)

Browser mechanism that enables controlled access to resources located outside of a given domain. Misconfigured CORS policies can expose confidential user data to external attacker-controlled origins.

0 LABS
Locked

Clickjacking

An interface-based attack where a user is tricked into clicking on actionable content on a hidden website by clicking on an invisible or transparent iframe overlaying an innocuous interface.

0 LABS
Locked

DOM-based vulnerabilities

Vulnerabilities that arise when JavaScript takes data from an attacker-controllable source, such as the URL, and passes it to a sink that supports dynamic code execution or HTML rendering.

0 LABS
Locked

WebSockets

Persistent, bi-directional communication channels over a single TCP socket. Learn how to intercept, manipulate, and exploit security flaws across WebSocket handshakes and message streams.

0 LABS
Locked

Advanced topics

These topics aren't necessarily more difficult to master but they generally require deeper understanding and a wider breadth of knowledge. We recommend getting to grips with the basics before tackling these labs, some of which are based on pioneering techniques discovered by our world-class research team.

Insecure deserialization

Deserialization has a reputation for being difficult to get your head around but it can be much easier to exploit than you might think. We'll guide you through the process step-by-step so you can pick off some high-severity bugs that even experienced testers may have missed altogether.

0 LABS
Locked

Web LLM attacks

Analyze vulnerabilities in web applications integrating Large Language Models. Exploit direct and indirect prompt injections, data leakage, and unauthorized function execution.

0 LABS
Locked

GraphQL API vulnerabilities

Vulnerabilities that arise from implementation and configuration errors in GraphQL APIs, enabling introspection abuse, circular nested queries, and authorization bypasses.

0 LABS
Locked

Server-side template injection

Occurs when user input is embedded directly into server templates rather than passed as data, allowing attackers to inject template directives and execute arbitrary code on the host.

0 LABS
Locked

Web cache poisoning

Exploit subtle flaws in web servers and routing architecture so that harmful HTTP responses are saved in the cache and subsequently served to other users without authentication.

0 LABS
Locked

HTTP Host header attacks

Exploit vulnerabilities where applications trust the HTTP Host header without validation, enabling web cache poisoning, password reset hijacking, and routing manipulation.

0 LABS
Locked

HTTP request smuggling

Desynchronize front-end and back-end HTTP socket streams by exploiting discrepancies in Content-Length and Transfer-Encoding headers, hijacking victim sessions and bypassing WAFs.

0 LABS
Locked

OAuth authentication

Flaws in how websites implement third-party OAuth authentication services, enabling attackers to harvest access tokens, hijack client accounts, and bypass verification checks.

0 LABS
Locked

JWT attacks

Exploit JSON Web Token flaws including algorithm confusion, unverified signature validation, flawed key injection parameters, and weak HMAC secret keys.

0 LABS
Locked

Prototype pollution

Vulnerability that enables an attacker to add or overwrite arbitrary properties on JavaScript object prototypes, leading to client DOM XSS or server-side remote code execution.

0 LABS
Locked

Essential skills

Foundational reconnaissance mechanics, request manipulation techniques, and SolvinMe web security methodology required for efficient vulnerability analysis.

0 LABS
Locked

Mystery lab challenge

Unlike when you complete labs on the Web Security Academy, during the exam you'll have no prior knowledge of the type of vulnerability that you need to find and exploit. Use the mystery lab challenge below to spin up a randomized lab that you'll have to try and work out how to solve with no context, just like in the exam.