This repository provides a Python script for exploiting CVE-2024-50379, a vulnerability that enables attackers to upload a JSP shell to a compromised server, granting them the ability to run arbitrary commands remotely. This exploit is particularly effective if the /uploads
directory is missing or lacks proper security on the target server.
The CVE-2024-50379 vulnerability affects web servers that mishandle file uploads, allowing malicious users to upload JSP shells that can execute commands remotely. The included Python script automates this exploit by uploading a shell to the vulnerable server and facilitating remote command execution through a terminal interface.
Before running the script, make sure you have the following:
- Python 3.6+ (Recommended)
requests
library. You can install it via pip:
pip install requests
This exploit works against servers such as Apache Tomcat or similar, where the file upload functionality is insecure or the /uploads
directory is misconfigured.
Warning: This tool should only be used in environments where you have explicit permission, such as during authorized penetration testing or for educational purposes. Unauthorized use is illegal and unethical.
Clone the repository to your local machine:
git clone https://github.com/pwnosec/CVE-2024-50379.git
cd CVE-2024-50379
Install the necessary Python libraries:
pip install requests
Execute the script with:
python exploit.py
When prompted, enter the base URL of the vulnerable server (e.g., http://localhost:8080
). If you omit http://
or https://
, it will automatically prepend http://
to the URL.
Once the JSP shell is uploaded successfully, you can input commands to execute remotely. The tool will display the output.
[+] Enter the base URL (e.g., localhost:8080): http://127.0.0.1:8080
[+] Verifying server availability...
[+] /uploads directory not found (404), continuing upload attempt...
[+] Attempt 1/3 to upload the shell...
[+] Shell uploaded successfully! You can access it at: http://127.0.0.1:8080/uploads/shell.jsp
[+] Enter a command to run on the server (or 'exit' to quit): whoami
[+] Running command: whoami
[+] Command output:
root
Type exit
to terminate the tool after your session is complete.