Building a safe, reliable testing environment is the first step in any security assessment. You cannot effectively test for vulnerabilities if you are fighting your own tools.
In this article, I will walk you through the exact architecture I used to test the Vulnerable Bank API. I’ll explain why I chose Docker for deployment, how Postman helped me map the attack surface, and how Burp Suite acted as the interceptor for my exploits.
When testing a vulnerable application, you never want to run it directly on your main operating system. You need isolation.
Docker is a platform that uses "containers" to package an application with all its dependencies (code, runtime, system tools, libraries). Unlike a full Virtual Machine (VM) that requires its own operating system, containers are lightweight and share the host's kernel but remain isolated from one another.
For the Vulnerable Bank API, Docker allowed me to have the entire banking infrastructure (frontend, backend API, and database) with a single command. It ensured that the vulnerabilities were consistent every time I restarted the lab.
git clone https://github.com/Commando-X/vuln-bank.git
cd vuln-bank
docker-compose up --build
3. Networking: To attack this from my Kali Linux VM, I bridged the network so my attack box could communicate with the Docker container running on the Windows host.
Once the bank was running, I needed a way to interact with it. While a web browser is fine for clicking buttons, API testing requires precise control over the HTTP requests. This is what Postman is for.
Postman is an API Client that allows developers (and testers) to build, share, and test API requests. For a penetration tester, it acts as the "map" of the application, showing every available endpoint we can try to exploit.
3. Global Variables: I configured a global variable {{baseUrl}} pointing to my Docker container (localhost:5000). This allowed me to switch environments easily without rewriting every single request URL.
Postman is excellent for sending requests, but to find logic flaws, I needed to see exactly what was happening and manipulate data in transit.
Burp Suite is a web vulnerability scanner and proxy tool. It sits between the client (Postman/Browser) and the server (Docker), allowing you to intercept, inspect, and modify traffic before it reaches its destination.
To make this work, I had to chain the tools together: Me (Kali) to Postman to Burp Proxy to Vulnerable Bank (Docker)
1. Configuration: I set up Burp Suite to listen on a specific port (e.g., 8080) on my Kali machine.
2. Routing Postman: I configured Postman’s proxy settings to route all traffic through 127.0.0.1:8080 (where Burp was listening).
To demonstrate that this setup works for me, here is exactly what I did to find and exploit a Mass Assignment vulnerability in the Banking App.
1. The Initial Discovery (Postman): I started by clicking on the POST /register endpoint in Postman. I sent a request with just the normal inputs: a username and a password, to see how the API behaves.
When I looked at the JSON response, I noticed something interesting: the server returned a user object that included fields I hadn't sent, like "is_admin": false
2. The Hypothesis: Seeing those fields sparked an idea: If the server creates these fields based on the user object, can I just manually add them myself during registration to overwrite the defaults? I decided to test this by registering a new user named TestAdmin and trying to force "is_admin": true.
3. The Interception & Edit (Burp Suite): I set up the request for TestAdmin in Postman and clicked Send. Because my proxy was active, the request didn't go straight to the server; it was intercepted by Burp Suite.
In Burp Suite:
4. The Verification: I clicked Forward in Burp to send the edited request. I watched the response come back in Burp, and it showed 200 OK.
Finally, I switched back to Postman to confirm. The response body was there, clearly showing that TestAdmin had been created with Administrative privileges.
This combination of Docker for hosting, Postman for mapping, and Burp Suite for interception has become my usual setup for almost all my API security testing.
Now, let's continue to test for API vulnerabilities in the upcoming articles.