IMPORTANT:AttackDefense Labs is included with a Pentester Academy subscription! Upgrade Now to access over 1800+ Labs.

Already a Pentester Academy student? Your access will continue uninterrupted. Please use the same Google account to login here.

Not a Pentester Academy student? Try our Free Communitiy Labs

Broken Authentication I

rest-api-security | Level: Easy  | Total Lab Runs: 0 | Premium Lab

Lab Scoreboard

Lab Walkthrough Video:


Securing an API is a critical task. A poor API design may lead to system compromise. Its impact becomes more critical when a crucial service gets affected like a Banking API.

The Banking WebApp allows a user to reset their password if they provide a valid OTP sent on their registered email id. The issue is that the Bank API does not place any limit on the number of requests sent to any of the endpoints.

An attacker managed to get the credentials of a bank user using phishing. Using the available public information, the attacker was also able to figure out the email id and username of the admin account of the Banking API.

Note:
The authorization system relies on a scope parameter in the issued token. If the token issued to a user has the scope of "account-write", then they get write access on the account, else, for token having the scope of "account-read", the user gets read-only access to the account.

This challenge is focused on leveraging the Broken Authentication in the Banking API.

Objective:
Retrieve the Golden Ticket!

User Information:

Usernameelliot
Password
elliotalderson
Email
elliot@evilcorp.com

Admin Details:

Username
admin
Email
admin@dummybank.com

API Endpoints:

Endpoint
Description
Method
Parameter(s)
/issue
Issue a JWT Token used as an authorization mechanism
POST
identifier, password
/balance
Read the balance of an account
GET
acct, token
/balance
Modify the account balance
POSTacct, token, balance
/goldenticket
Get the Golden Ticket from the Bank API
POSTtoken

Instructions: 

  • This lab is dedicated to you! No other users are on this network :)
  • Once you start the lab, you will have access to a Kali GUI instance.
  • Your Kali instance has an interface with IP address 192.X.Y.2. Run "ifconfig" to know the values of X and Y.
  • The Banking WebApp is running on port 5000 on the target machine having IP address 192.X.Y.3.
  • The OTP contains 4-digit, each in the range 0 to 9 inclusive.
  • Do not attack the gateway located at IP address 192.X.Y.1


Verify:
1. Golden Ticket
 

The following activities are strictly prohibited on this website unless otherwise explicitly stated as allowed in the mission statement:

  • Using automated scanners
  • Using brute force attacks
  • Denial of Service attacks
  • Attacking other student machines in challenges where you might achieve a shell on the vulnerable system
  • Attacking the lab infrastructure

Users violating the above will be either temporarily or permanently banned from the website. 

If you are unsure about an activity, then please contact support to confirm that it is allowed on our website.

Technical Support for this Lab:

There is a reason we provide unlimited lab time: you can take as much time as you need to solve a lab. However, we realize that sometimes hints might be necessary to keep you motivated!

We currently provide technical support limited to:

  • Giving hints for a lab exercise
  • In rare circumstances, if you have totally given up (NO!!!) then tell you how to solve it. This will be limited to sharing the solution video or lab report
  • A lab exercise fails to load or has errors in it

If you need technical support, please email  attackdefense@pentesteracademy.com  clearly mention the name and link of the lab exercise and other essential details. The more descriptive you are, the faster we can help you. We will get back to you within 24 hours or less. 

For adminitrative queries, billing, enterprise accounts etc. please email feedback@binarysecuritysolutions.com