Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
Weblogic-CVE-2020-2551-To-Internet — POC CVE-2020-2551 à utiliser sur Internet | Kitploit
Outils/GitHubGitHub/dido1960/weblogic-cve-2020-2551-to-internet
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubdido1960/weblogic-cve-2020-2551-to-internet

Weblogic-CVE-2020-2551-To-Internet

POC CVE-2020-2551 à utiliser sur Internet

Voir le dépôt
2272il y a 6 ansVérifié par Kitploit

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

Weblogic-CVE-2020-2551-To-Internet

CVE-2020-2551 POC à utiliser sur Internet

  • POC de test (utilisable sur le réseau externe)

python CVE-2020-2551.py [HOST] [IP]

  • Tentative de modification du codebase pour le chargement de classes à distance (échec)

python CVE-2020-TEST.py [HOST] [IP]

Brève discussion sur la vulnérabilité weblogic CVE-2020-2551 et construction du POC pour le réseau externe

(Publié pour la première fois sur Anquanke, lien original)

0x00 Concepts de base

Pour étudier cette vulnérabilité, des connaissances préalables sont nécessaires, par exemple CORBA et RMI.

Résumé simple :

CORBA est un ensemble de normes techniques établies par l'OMG pour les applications distribuées. Il utilise IDL pour la prise en charge multilingue, et la communication entre le client et le serveur se fait via le protocole IIOP.

RMI est une autre technologie d'application distribuée. En Java, JNDI peut être utilisé pour simplifier l'application. Le client et le serveur communiquent via le protocole JRMP, mais dans weblogic, RMI utilise le protocole T3, pour lequel de nombreuses vulnérabilités ont déjà été publiées.

RMI-IIOP combine les avantages respectifs de RMI et CORBA, en déployant des applications RMI via le protocole IIOP.

La documentation officielle mentionne également :

Les objets serveur RMI peuvent utiliser le protocole IIOP et communiquer avec des objets clients CORBA écrits dans n'importe quel langage.

0x01 RMI-IIOP

Sans parler de weblogic pour le moment, concentrons-nous d'abord sur la façon d'écrire un exemple RMI-IIOP :

Le code client peut se référer au projet de test dans Java : RMI, JNDI, LDAP, JRMP, JMX, JMS (Partie 1). Vous pouvez compiler HelloClient et HelloServer vous-même, ou utiliser les versions déjà compilées du projet de test.

Démarrez le serveur de noms en ligne de commande (intégré à Java) :

start orbd -ORBInitialPort 1050

Démarrez le serveur HelloServer en ligne de commande et configurez le débogage distant. Pour savoir comment utiliser IDEA pour le débogage distant, référez-vous à la méthode mentionnée au début de cet article.

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 HelloServer

Bien sûr, vous pouvez aussi simplement exécuter sans débogage distant pour voir le résultat directement :

java HelloServer

Démarrez le client en ligne de commande :

Java HelloClient 

À ce moment, la calculatrice s'ouvre. Si vous réussissez le débogage distant, vous verrez la pile d'appels suivante :

Exécution de la commande dans EvilMessage.readObejct() :

En aparté : articles sur l'installation et le débogage de weblogic

Qu'en est-il de RMI-IIOP dans weblogic ? L'article À propos de RMI-IIOP en Java mentionne l'exploitation de RMI-IIOP de weblogic. Sur cette base, nous avons fait quelques recherches. Using WebLogic’s RMI over IIOP décrit plusieurs façons pour weblogic d'utiliser le client RMI-IIOP, notamment :

  1. Client RMI autonome (avec JNDI, sans utiliser rien de weblogic)
  2. Client WebLogic
  3. Clients J2EE
  4. Clients CORBA/IDL

La différence entre les deux premières méthodes semble être uniquement la configuration de JNDI_FACTORY :

Lors de nos études précédentes sur la désérialisation T3 de weblogic, nous avions déployé l'application Helloserver sur weblogic, avec une méthode sayhello() exploitable. Nous avons essayé de définir deux JNDI_FACTORY et d'appeler la méthode ; avec la deuxième JNDI_FACTORY, nous avons réussi à appeler la méthode sayHello().

Modifions ensuite le POC du protocole T3 de weblogic POC. En fait, il suffit de remplacer RMI par IIOP, et on constate que la chaîne d'exploitation jtaTransactionManager s'exécute avec succès et envoie une requête jrmp au jrmplisten local :

Regardons le trafic : lors de l'appel à la méthode remove(), une requête remove__java_lang_Object est envoyée, contenant des données malveillantes dans le trafic, mais on ne trouve pas le header magique aced :

On suppose qu'une analyse spéciale est effectuée côté serveur avant de désérialiser les données. Regardons la pile d'appels : la partie arrière de la chaîne d'exécution ressemble beaucoup à celle du RMI-IIOP natif précédent. La différence est que le déclenchement se fait ici à partir de IIOPInputStream.read_value() dans weblogic, alors que précédemment c'était à partir de CDRInputStream.read_value(). (Le point read_value a également été mentionné dans le sujet de 2019.)

Ici, la requête est d'abord traitée par clusterableServerRef.invoke(), qui appelle this.invoker.invoke() selon l'invocateur. Ensuite, Mejb_dj5nps_HomeImpl_WLSkel.invoke() est appelé. Comme il s'agit de "remove", on entre dans la branche case 6 et on appelle IIOPInputStream.readObject(). La méthode read_value() analyse les données IIOPInputStream et déclenche la désérialisation. Voici le POC utilisant la méthode remove().

0x02 CVE-2020-2551

L'[article d'analyse](https://lucifaer.com/2020/02/25/WebLogic WLS核心组件RCE分析(CVE-2020-2551)/?from=timeline&isappinstalled=0#2-2-Weblogic解析流程) du maître Lucifaer mentionne l'utilisation de la méthode bind() pour l'exploitation. C'est également la méthode d'exploitation courante sur Internet. Suivons la pile d'appels :

Télécharger l’outil