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

Unchecked JSON Structure

container-security-container-host-security-firewall | Level: Easy  | Total Lab Runs: 0 | Premium Lab

Lab Scoreboard

Lab Walkthrough Video:

A group of developers was migrating their monolithic applications to microservices architecture. Every developer had a low privileged account on the server. But as building docker images and running containers require additional privileges. Hence, the developers were added to the docker group. However, allowing a low privileged user to start a docker container is equivalent to providing root access on the host machine. And, the administrator was aware of this issue. Hence, he deployed a 3rd party docker firewall plugin which restricts the developers to a selective set of operations.

In this lab exercise, the student user can run a container but cannot provide additional privileges to it. The docker client interacts with the docker socket using the HTTP REST API and each request passes through the docker firewall plugin. For performing various checks, the firewall follows the JSON structure provided in the official docker API engine documentation. Although necessary checks have been made, the firewall can be bypassed to run a privileged container. The misconfiguration can be exploited by providing the docker socket with a different JSON structure than the one sent by the docker client.

Objective: Run a privileged container, leverage it to escalate to the root user on the host machine and retrieve the flag! 

1. Flag

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  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