Образовательный проект эксплуатации CVE-2018-7600, объединяющий Python PoC для RCE, изолированную Docker-лабораторию Drupal, исследование полезных нагрузок и документацию по устранению уязвимости для безопасного тестирования уязвимых приложений.
Данный проект исследует, воспроизводит и документирует CVE-2018-7600 (Drupalgeddon2) — критическую (CVSS 9.8) уязвимость удалённого выполнения кода без аутентификации в CMS Drupal, затрагивающую версии ниже 7.58 и 8.5.1 (исправления выпущены в марте 2018 года).
Уязвимость находится в Form API Drupal, который не очищал пользовательский ввод перед его объединением с render-свойствами элементов формы, что позволяло атакующим внедрять вызываемые PHP-объекты (callables), которые затем выполнялись Render API.
⚠️ Только для образовательных целей. Все тесты должны выполняться исключительно в изолированной лабораторной среде Docker. Никогда не тестируйте на живых или производственных системах.
| Участник | Роль | Результаты |
|---|
| Участник 1 | Лабораторная среда и проверка CVE | Dockerfile, docker-compose, SETUP.md |
| Участник 2 | Разработка эксплойта | фреймворк exploit.py, payloads.txt |
| Участник 3 | Анализ первопричины и исследование | root_cause_analysis.md, references.md, mitigation.md |
| Участник 4 | Сбор доказательств и итоговый отчёт | terminal_logs.txt, скриншоты, итоговый отчёт |
CVE-2018-7600-Project/
│
├── README.md ← you are here
│
├── lab/ ← Member 1
│ ├── Dockerfile ← builds Drupal 7.57 image
│ ├── docker-compose.yml ← orchestrates all services
│ ├── entrypoint.sh ← DB wait + auto-config script
│ ├── SETUP.md ← step-by-step setup guide
│ └── config_notes.md ← vulnerability verification
│
├── exploit/ ← Member 2
│ ├── exploit.py ← PoC Python framework
│ └── payloads.txt ← payload research notes
│
├── docs/ ← Member 3
│ ├── root_cause_analysis.md ← technical deep-dive
│ ├── references.md ← all sources & links
│ └── mitigation.md ← patch & hardening guide
│
├── proof/ ← Member 4
│ ├── screenshots/ ← exploitation screenshots
│ └── terminal_logs.txt ← command output logs
│
└── report/
└── CVE-2018-7600_Report.docx ← Member 4: final report
cd lab/
docker compose up -d --build
Откройте http://localhost:8080/install.php и следуйте шагу 3 из SETUP.md.
curl -s http://localhost:8080/CHANGELOG.txt | head -3
# Expected: Drupal 7.57, 2018-02-21
cd .. # project root
python exploit/exploit.py --target http://localhost:8080 --safe-mode
python exploit/exploit.py --target http://localhost:8080 --cmd "id"
python exploit/exploit.py --target http://localhost:8080 --cmd "id" \
--output proof/terminal_logs.txt
cd lab/
docker compose down -v && docker compose up -d --build
| Свойство | Значение |
|---|---|
| Идентификатор CVE | CVE-2018-7600 |
| Псевдоним | Drupalgeddon2 |
| Рекомендация вендора | SA-CORE-2018-002 |
| CVSS v3 | 9.8 Критический |
| Затронутые версии | Drupal < 7.58, < 8.3.9, < 8.4.6, < 8.5.1 |
| Исправлено в | 7.58, 8.3.9, 8.4.6, 8.5.1 |
| Требуется аутентификация | Нет |
| Тип | Удалённое выполнение кода |
Стажировка Red Team ITSOLERA — лето 2026