Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2022-22965 PoC — Spring Framework 代码注入漏洞

Source
Associated Vulnerability
Title:Spring Framework 代码注入漏洞 (CVE-2022-22965)
Description:A Spring MVC or Spring WebFlux application running on JDK 9+ may be vulnerable to remote code execution (RCE) via data binding. The specific exploit requires the application to run on Tomcat as a WAR deployment. If the application is deployed as a Spring Boot executable jar, i.e. the default, it is not vulnerable to the exploit. However, the nature of the vulnerability is more general, and there may be other ways to exploit it.
Description
Exploit a vulnerable Spring application with the Spring4Shell (CVE-2022-22965) Vulnerability.
Readme
# Spring4Shell Exploit POC

Exploit a Spring Application vulnerable to the Spring4Shell vulnerability. Read more about Spring4shell on our [blog](https://fourcore.io/blogs/spring4shell-zero-day-rce-spring-framework).

## Usage

Requirements: [Docker](https://docs.docker.com/engine/install/) and [docker-compose](https://docs.docker.com/compose/install/)

```
$ ./exploit.sh 
```

[![asciicast](https://asciinema.org/a/INYFtvNtAahfzJpJVAgTTI9EW.svg)](https://asciinema.org/a/INYFtvNtAahfzJpJVAgTTI9EW)

## Vulnerable Spring Application

The vulnerable Spring application contains a GET and POST request handler for `/helloworld/greeting`. The `exploit.sh` script starts the app container running Tomcat 9.0 with the application packaged as a WAR and uses `curl` to write a webshell to `http://localhost:8080/shell.jsp`. The shell is used to grab the flag present at `/flag` inside the container's filesystem.

## CVE-2022-22965

The **CVE-2022-22965** with a **CVSS** score of **9.8** has been to the vulnerability in Spring Core allowing Remote Code Execution. The exploit is easy to achieve and hence the high CVSS score, pre-requisites for the exploit are:

- JDK version 9+
- Application built on Spring Or derived frameworks
- Running Tomcat with WAR deployment

## Resources

- [Spring Blog Early Announcement](https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement)
- [Lunasec blog](https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/)
- [English translation of chinese researcher's original report](https://github.com/tweedge/springcore-0day-en)

## Credits

Based on the exploit and application by [reznok](https://github.com/reznok/Spring4Shell-POC).
File Snapshot

[4.0K] /data/pocs/81b4cd035d9366a0e56f8ef7a9ed3206037f8d20 ├── [4.0K] app │   ├── [1.6K] pom.xml │   └── [4.0K] src │   └── [4.0K] main │   ├── [4.0K] java │   │   └── [4.0K] com │   │   └── [4.0K] foco │   │   └── [4.0K] helloworld │   │   ├── [ 315] Greeting.java │   │   ├── [ 652] HelloController.java │   │   └── [ 438] HelloworldApplication.java │   └── [4.0K] resources │   ├── [ 1] application.properties │   └── [4.0K] templates │   └── [ 182] hello.html ├── [ 116] docker-compose.yml ├── [ 200] Dockerfile ├── [1.9K] exploit.sh ├── [ 41] flag ├── [1.0K] LICENSE.md └── [1.6K] README.md 9 directories, 12 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →