# Spring4Shell-PoC Application
This application has been containerized and is susceptible to the Spring4Shell flaw (CVE-2022-22965). The war's complete Java source is available and changeable; it may be rebuilt each time the docker image is created. Tomcat will then start loading the created WAR. This application is a straightforward hello world that is based on [Spring tutorials](https://spring.io/guides/gs/handling-form-submission/). It has nothing exceptional to offer.
## Requirements
1. Docker
2. Python3 + requests library
## Instructions
1. Clone the repository
2. Build and run the container: `docker build . -t spring4shell && docker run -p 8080:8080 spring4shell`
3. App should now be available at http://localhost:8080/helloworld/greeting
4. Run the exploit.py script:
`python exploit.py --url "http://localhost:8080/helloworld/greeting"`
5. Visit the created webshell! Modify the `cmd` GET parameter for your commands. (`http://localhost:8080/shell.jsp` by default)
Document is added explaining full exploit detail.
[4.0K] /data/pocs/0879483eb568b556e12b88ebad3bff8dc27a6cf5
├── [ 23M] CVE-2022-22965.mp4
├── [585K] CVE-2022-22965-Spring4Shell.pdf
├── [ 551] Dockerfile
├── [4.0K] exploit.py
├── [1.8K] pom.xml
├── [1.0K] README.md
└── [4.0K] src
├── [4.0K] main
│ ├── [4.0K] java
│ │ └── [4.0K] com
│ │ └── [4.0K] reznok
│ │ └── [4.0K] helloworld
│ │ ├── [ 317] Greeting.java
│ │ ├── [ 654] HelloController.java
│ │ └── [ 440] HelloworldApplication.java
│ └── [4.0K] resources
│ ├── [ 1] application.properties
│ └── [4.0K] templates
│ └── [ 185] hello.html
└── [4.0K] test
└── [4.0K] java
└── [4.0K] com
└── [4.0K] reznok
└── [4.0K] helloworld
└── [ 217] HelloworldApplicationTests.java
13 directories, 12 files