|
|
Posté le 11-12-2021 21:06:29
|
|
|
|

Au cours des deux derniers jours, il a été balayé par la « vulnérabilité d’exécution de code à distance Apache Log4j2 » dans le cercle d’amis, principalement en raison de la vulnérabilité d’injection JNDI Java dans le composant : lorsque le programme écrit les données saisies par l’utilisateur dans le journal, l’attaquant construit une requête spéciale pour déclencher la vulnérabilité d’exécution de code à distance dans Apache Log4j2, exploitant ainsi cette vulnérabilité pour exécuter un code arbitraire sur le serveur cible.
Champ d’influence
Apache Log4j 2.x <= 2.14.1
JNDI (Java Naming and Directory Interface) est une interface de nommage et de répertoire Java fournie par Java. En appelant l’API de JNDI, les applications peuvent localiser des ressources et d’autres objets du programme. JNDI est une partie importante de Java EE, il convient de noter qu’il inclut non seulement DataSource (source de données JDBC), mais que JNDI peut accéder à des annuaires et services existants tels que : JDBC, LDAP, RMI, DNS, NIS, CORBA, extrait de l’Encyclopédie Baidu. Il existe de nombreux articles sur Internet sur la façon de corriger les vulnérabilités et des captures d’écran des vulnérabilités, mais peu sur la manière de tester le projet pour détecter la vulnérabilité.Java utilise principalement Log4j2 pour tester le codeComme suit:
En termes simples, Log4j2 accède à l’adresse suivante via le protocole RMI ou LDAP, et selon le contenu du protocole, il peut exécuter un code construit de manière malveillante.
L’existence de cette vulnérabilité est presque toujours prouvée sur Internet en ouvrant une calculatrice Windows, et le code est le suivant :
Puisque Log4J2 utilise des protocoles RMI ou LDAP pour accéder au serveur de l’attaquant, et que les protocoles RMI et LDAP sont basés sur TCP, nous pouvons le faire directementEn utilisant .NET pour écouter sur un port TCP, si un appel à log4j2 pour imprimer des journaux accède au port d’écoute .NET, cela prouve qu’il peut y avoir une vulnérabilité, et sinon, cela s’avère sécurisé。
.NET génère de très petits programmes de test6 ko, le code est le suivant :
Essayez d’utiliser le composant log4j2.14.0La version est imprimée, et le rendu est le suivant :
Essayez de mettre à jour le composant log4j vers2.15.0Exécutée à nouveau, l’effet est le suivant :
Après la mise à jour de la version, on constate qu’après avoir appelé le journal d’impression,Le programme Java n’accède plus au port externe。
Amis intéressés, vous pouvez vous référer au lien suivant pour reproduire la vulnérabilité et utiliser le calculateur.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
Enfin, joignez la procédure de test :
测试程序.rar
(2.66 KB, Nombre de téléchargements: 1)
|
Précédent:[Combat réel]. NET/C# Créer une base de données SQLite et simplement ajouter, supprimer, modifierProchain:Tutoriel nacos sur le déploiement système CentOS
|