githubEdit

Drupal

Discovery

# Meta tag
curl -s http://TARGET | grep 'Generator.*Drupal'

# CHANGELOG.txt (version)
curl -s http://TARGET/CHANGELOG.txt | head

# Node-based URLs (common indicator)
/node/1
/node/2

# Login page
/user/login

Enumeration Tools

droopescan

# Install
pip install droopescan

# Scan
droopescan scan drupal -u http://TARGET

PHP Filter Module RCE (Drupal < 8)

  1. Login as admin

  2. Enable PHP Filter: Modules → PHP Filter → Save

  3. Create content: Content → Add content → Basic page

  4. Add PHP shell in body:

  1. Set Text format to PHP code

  2. Save and access:


PHP Filter Module (Drupal 8+)

Module not installed by default. Upload manually:


Backdoored Module Upload

Create Malicious Module

Upload and Execute

  1. Manage → Extend → + Install new module

  2. Upload captcha.tar.gz

  3. Access shell:


Drupalgeddon (CVE-2014-3704)

Affects: Drupal 7.0 - 7.31

Pre-auth SQLi to create admin user:

PoC: https://www.exploit-db.com/exploits/34992


Drupalgeddon2 (CVE-2018-7600)

Affects: Drupal < 7.58, < 8.5.1

Unauthenticated RCE:

PoC: https://github.com/dreadlocked/Drupalgeddon2


Drupalgeddon3 (CVE-2018-7602)

Affects: Drupal 7.x, 8.x

Authenticated RCE (requires any user account):


Important Paths

Path
Description

/sites/default/settings.php

DB credentials

/sites/default/files/

Uploaded files

/modules/

Modules directory

/CHANGELOG.txt

Version info

/user/login

Login page

/admin

Admin panel


Config File Location

Last updated