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
CVE-2021-21978 — Script d'exploitation avec écho de sortie | Kitploit
Outils/GitHubGitHub/skytina/cve-2021-21978
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRed TeamingDéveloppement de Charges Utiles
GitHubskytina/cve-2021-21978

CVE-2021-21978

Script d'exploitation avec écho de sortie

Voir le dépôt
25510il y a 5 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

CVE-2021-21978

Version avec retour d'affichage du script d'exploitation, plus simple

0. Informations sur la vulnérabilité

L'interface d'administration Web de VMware View Planner comporte un point d'entrée pour le téléchargement de fichiers de fonctionnalités de logs, sans authentification et le chemin du fichier journal écrit est contrôlable par l'utilisateur. En écrasant le fichier de fonctionnalités de téléchargement de logs log_upload_wsgi.py, il est possible d'obtenir une exécution de code à distance (RCE).

Code vulnérable :

def application(environ, start_response):
    logger.debug("application called")

    if environ['REQUEST_METHOD'] == 'POST':
        post = cgi.FieldStorage(
            fp=environ['wsgi.input'],
            environ=environ,
            keep_blank_values=True
        )

        # TO DO: Puth path in some config or read from config is already available
        resultBasePath = "/etc/httpd/html/vpresults"
        try:
            filedata = post["logfile"]
            metaData = post["logMetaData"]

            if metaData.value:
                logFileJson = LogFileJson.from_json(metaData.value)

            if not os.path.exists(os.path.join(resultBasePath, logFileJson.itrLogPath)):
                os.makedirs(os.path.join(resultBasePath, logFileJson.itrLogPath))

            if filedata.file:
                if (logFileJson.logFileType == agentlogFileType.WORKLOAD_ZIP_LOG):
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, WORKLOAD_LOG_ZIP_ARCHIVE_FILE_NAME.format(str(logFileJson.workloadID)))
                else:
                    filePath = os.path.join(resultBasePath, logFileJson.itrLogPath, logFileJson.logFileType)
                with open(filePath, 'wb') as output_file:
                    while True:
                        data = filedata.file.read(1024)
                        # End of file
                        if not data:
                            break
                        output_file.write(data)

1. Dépendances

pip install requests

2. Détection

git clone https://github.com/skytina/CVE-2021-21978
cd CVE-2021-21978
python3 CVE-2021-21978.py https://192.168.80.3/

image-20210305162131318

3. Exploitation

Le script d'exploitation réécrit log_upload_wsgi.py pour en faire une porte dérobée.

image-20210305162339613

4. Liens de référence

Source de l'exploit : https://twitter.com/osama_hroot/status/1367258907601698816

Annonce officielle VMware : https://www.vmware.com/security/advisories/VMSA-2021-0003.html

Déclaration

  • L'outil est destiné uniquement aux tests de sécurité et à la recherche par le personnel de sécurité. Toute conséquence directe ou indirecte, ainsi que toute perte causée par des tests non autorisés, relèvent de la seule responsabilité de l'utilisateur.
  • L'outil est uniquement utilisé pour les tests de sécurité et les recherches par le personnel de sécurité. Toute conséquence directe ou indirecte et toute perte résultant de tests non autorisés sont de la responsabilité de l'utilisateur.

Si le contenu ci-dessus vous a été utile, vous pouvez suivre le compte public.

Télécharger l’outil