Welcome to the REST Security Learning Platform
This platform provides hands-on experience with REST API security vulnerabilities and authentication mechanisms. Choose from the available services below to explore different security challenges.
DOs and DON'Ts
- Use the
verifierthat is specified in the exercise. If not specified, set the value tosecure. - Solve the tasks by executing the attack in the task description. Using information from previous attacks is not allowed. For instance, a SQLi attack allows you to read the entire database and solve all tasks.
- Use the provided OpenAPI files and consider only the paths described in this file.
- During your API investigations, you may manipulate the database and thus change the behavior of the API.
By calling the
/resetendpoint, you can reset the database. This is required when you: - ... made a mistake and you need to start from the beginning.
- ... start investigating a new
verifier.
- Getting Started
- Warm-Up
- TOP 1: BOLA
- TOP 2:Auth. Bypasses
- TOP 3: BOPLA
- TOP 4: BFLA
- TOP 7: SSRF
- TOP 8: Security Misconfig
Vulnerable Users API
Easy - MediumThis API contains a user database with read/write access.
| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
The permissions look as follows:
- All
normalusers can authenticate, read, and update their own profile. -
Normalusers should not get any further information about any other users. - Only
adminusers can update the role of users. - Consider every attack as successful when you receive an answer from the server
that
you have an
adminrole.
Vulnerable Reports API
Medium - HardThe API allows users to view, create, delete, and update reports. There are different departments with restricted access between them.
| Username | Password |
|---|---|
| bgreen | password5 |
| asmith | password2 |
The permissions look as follows:
-
Employeeusers can view and update their own reports. -
Employeecan create reports only for their department. -
Managerusers can view and update all reports in their department. -
Managerusers can create reports only for their department.
Vulnerable Shop API
HardThe API allows simulating an e-commerce marketplace.
| Username | Password |
|---|---|
| user1 | password1 |
| seller1 | password3 |
The permissions look as follows:
-
Customerusers can view the shop id. -
Customerusers can view product information:name, price, picture, id, description. -
Sellerusers can update the products of their shop(s). -
Customerandsellerusers are not allowed to see any information of other users.
Vulnerable Users API
Easy - Medium| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
Analyze the
Users API OpenAPI file. Consider only endpoints with the tag
Warm-up. Authenticate as natasha_romanoff and answer the
following questions.
ID and
role?
Id and role?
Vulnerable Reports API
Medium - Hard| Username | Password |
|---|---|
| bgreen | password5 |
| asmith | password2 |
Analyze the
Reports API OpenAPI file. Consider only endpoints with the tag
Warm-up. Authenticate as bgreen and answer the
following questions.
ID and
role?
Id and role?
name
of your own reports? Which path do you need to invoke?
Vulnerable Shop API
Hard| Username | Password |
|---|---|
| user1 | password1 |
| seller1 | password3 |
Analyze the
Shop API OpenAPI file. Consider only endpoints with the tag
Warm-up. Authenticate as user1 and answer the
following questions.
ID and
role?
IDs?
Adventure Goods?
Name the ownerβs
ID?
BMX cost in the shop
Bike World?
Vulnerable Users API
Easy - Medium| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
Analyze the
Users API OpenAPI file. Consider only endpoints with the tag
BOLA.
There are three Broken Object Level Authorization (BOLA) vulnerabilities in the API.
For each vulnerability, you should use verifier=bola-1/2/3 during
your investigations.
Authenticate as natasha_romanoff and find the vulnerabilities.
verifier=bola-1
BOLA.
verifier=bola-2
BOLA.
verifier=bola-3
BOLA.
Vulnerable Reports API
Medium - Hard| Username | Password |
|---|---|
| bgreen | password5 |
| asmith | password2 |
Analyze the
Reports API OpenAPI file. Consider only endpoints with the tag
BOLA.
Consider that users can see only their own reports while managers can see reports of
other users only from the same company.
Vulnerable Users API
Easy - Medium| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
Analyze the
Users API OpenAPI file. Consider only endpoints with the tag
Authentication Bypass.
There are 10 vulnerabilities in the API.
For each vulnerability, you should use
verifier=auth-1/2/3/4/5/6/7/8/9 during
your investigations.
Your goal is to authenticate as admin in the role of super_admin.
verifier=auth-1. Find the .
access_token.
verifier=auth-2. Find the .
verifier=auth-3. Find the . Consider attacks related to JWT
tokens.
verifier=auth-4. Find the . Consider attacks related to JWT
tokens.
verifier=auth-5. Find the . Consider attacks related to JWT
tokens.
verifier=auth-6. Find the . Consider attacks related to JWT
tokens.
verifier=auth-7. Find the . Consider attacks related to JWT
tokens.
verifier=auth-8. Find the . Consider attacks related to JWT
tokens.
verifier=auth-9
Local File Inclusion (LFI) and
Server-Side Request Forgery (SSRF).
Vulnerable Users API
Easy - Medium| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
Analyze the
Users API OpenAPI file. Consider only endpoints with the tag
BOPLA. Authenticate as natasha_romanoff and upgrade
your role to admin.
Set the verifier=bopla-1.
Vulnerable Reports API
Medium - Hard| Username | Password |
|---|---|
| bgreen | password5 |
| asmith | password2 |
Analyze the
Reports API OpenAPI file. Consider only endpoints with the tag
BOPLA. Authenticate with an user having the role employee
and find the
vulnerabilities.
There are two paths vulnerable to Broken Object Property Level Authorization
(BOPLA). Find them, describe the problem, and the security impact.
Vulnerable Shop API
Hard| Username | Password |
|---|---|
| user1 | password1 |
| seller1 | password3 |
Analyze the
Shop API OpenAPI file. Consider only endpoints with the tag
BOPLA.
user1.
Two paths are vulnerable to Excessive Data Exposure by exposing
unnecessary
sensitive information. Name the paths and describe the problem.
user1. The API is
vulnerable to Mass assignment.
Discover the two paths allowing you as a customer to overwrite sensitive
properties of objects.
seller1. There paths
are vulnerable to Excessive Data Exposure by
exposing unnecessary sensitive information. Name the paths and describe the
problem.
Vulnerable Users API
Easy - Medium| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
Analyze the
Users API OpenAPI file. Consider only endpoints with the tag
BFLA.
Authenticate as natasha_romanoff.
There is one path vulnerable to Broken Function Level
Authorization (BFLA). Describe the problem and the security impact.
Vulnerable Shop API
Hard| Username | Password |
|---|---|
| user1 | password1 |
| seller1 | password3 |
Analyze the
Shop API OpenAPI file. Consider only endpoints with the tag
BFLA.
Authenticate as seller1.
There are two paths vulnerable to Broken Function Level
Authorization (BFLA). Describe the problem and the security impact.
Vulnerable Reports API
Medium - Hard| Username | Password |
|---|---|
| bgreen | password5 |
| asmith | password2 |
Analyze the
Reports API OpenAPI file.
Authenticate as an user having the role employee.
Determine which path and the corresponding parameters are vulnerable to Server-side
Request Forgery (SSRF). Show how to exploit the vulnerability.
Vulnerable Shop API
Hard| Username | Password |
|---|---|
| user1 | password1 |
| seller1 | password3 |
Analyze the
Shop API OpenAPI file.
Authenticate as seller1.
Determine which path and the corresponding parameters are vulnerable to Server-side
Request Forgery (SSRF). Show how to exploit the vulnerability.
Vulnerable Users API
Easy - Medium| Username | Password |
|---|---|
| natasha_romanoff | blackwidow456 |
Analyze the
Users API OpenAPI file. Consider only endpoints with the tag
SM.
There are Security Misconfiguration (SM) vulnerabilities in the API.
For each vulnerability, you should use verifier=sm-1/2/3/4/5 during
your investigations.
Authenticate as natasha_romanoff and find the vulnerabilities.
verifier=sm-1
verifier=sm-2
verifier=sm-3
verifier=sm-4
verifier=sm-5
Vulnerable Reports API
Medium - Hard| Username | Password |
|---|---|
| bgreen | password5 |
| asmith | password2 |
Analyze the
Reports API OpenAPI file. Consider only endpoints with the tag
Unsafe API.
Authenticate as an arbitrary user.
Some paths are vulnerable to Unsafe Consumption of APIs by parsing XML files. Your
task is to
determine which path is vulnerable and describe the security problem.
