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

Xstream Deserialization RCE (CVE-2021-21351)

cve-2021 | Level: Easy  | Total Lab Runs: 0 | Premium Lab

Lab Scoreboard

What is Xstream?


XStream is a simple library to serialize objects to XML and back again.


Reference: https://x-stream.github.io/index.html


What is CVE-2021-21351?


XStream is a Java library to serialize objects to XML and back again. In XStream before version 1.4.16, there is a vulnerability that may allow a remote attacker to load and execute arbitrary code from a remote host only by manipulating the processed input stream. No user is affected, who followed the recommendation to set up XStream's security framework with a whitelist limited to the minimal required types. If you rely on XStream's default blacklist of the Security Framework, you will have to use at least version 1.4.16.


According to NVD, this vulnerability was critical, with a base score of 9.1.


Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-21351


In this lab, we will learn to exploit a severe, arbitrary code execution vulnerability (CVE-2021-21351) in the Xtream library by sending a malicious XML payload.


Lab Environment


In this lab environment, the user is going to get access to an Ubuntu TTYD instance. A vulnerable instance of an application using the Xstream library is hosted on the provided machine. It can be accessed using the tools installed on Ubuntu at http://127.0.0.1:8080.


Objective: Leverage the affected version of Xstream to elevate your privileges and retrieve the flag from the /root directory.


Acknowledgment


The setup code is based on the following Github repository:


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 root terminal of a Kali instance

  • Your Kali has an interface with IP address 192.X.Y.Z. Run "ip addr" to know the values of X and Y.

  • The target application should be located on the same IP address on port 8080.

  • The JNDI Injection Exploit JAR is available in the home directory of the user accessible in the Ubuntu instance.

  • Do not attack the gateway located at IP address 192.X.Y.1

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