wordpress
vulnerable WordPress target
Custom WordPress 5.3 image built from the Dockerfile. It includes intentional info leaks (phpinfo, .env, .git, debug.log, wp-config.php.bak, dump.sql), a permissive .htaccess, and is later populated with vulnerable plugins and themes by install.sh. It serves as the primary target for vulnerability exercises.
Dockerfile:1-53scripts/install.sh:1-247db
MySQL database
MySQL 5.7 database service for WordPress. Exposed on host port 31306 with root/wordpress credentials. Used by WordPress and accessible for direct database attacks.
docker-compose.yml:20-33phpmyadmin
database administration tool
phpMyAdmin 5 service exposed on host port 31339. Provides web-based MySQL administration with root credentials. Useful for lab exercises involving database access.
docker-compose.yml:65-76mailhog
email capture tool
MailHog service for capturing emails sent by WordPress. SMTP on host port 31325 and web UI on 31340. Used to observe email-based attacks or password resets.
docker-compose.yml:78-84adminer
database administration tool
Adminer service exposed on host port 31341. Another web-based database management tool, providing an alternative to phpMyAdmin for lab exercises.
docker-compose.yml:86-93redis
in-memory data store (intentionally misconfigured)
Redis 6 service exposed on host port 31379 with no authentication. Intentionally misconfigured for lab exercises involving unauthorized access.
docker-compose.yml:95-101memcached
in-memory object cache (intentionally misconfigured)
Memcached 1.6 service exposed on host port 31211 with no ACL. Intentionally misconfigured for lab exercises involving unauthorized access.
docker-compose.yml:103-109install.sh
lab setup script
Bash script that boots the Docker Compose stack, installs WordPress core, creates users with weak passwords, and installs 54 vulnerable plugins and 5 vulnerable themes. It also wires SMTP to MailHog.
scripts/install.sh:1-247verify.sh
lab verification script
Bash script that checks HTTP reachability of installed vulnerable plugins, intentional info leaks, and WordPress core fingerprints to confirm the lab is correctly set up.
scripts/verify.sh:1-71plant-flags.sh
CTF flag planting script
Bash script that plants CTF flags into the running lab for documented kill-chain exercises. Flags are placed in files, database options, and a MinIO bucket.
scripts/plant-flags.sh:1-153benchmark.sh
scanner benchmarking script
Bash script that runs popular WordPress scanners (BAZOOKA, WPScan, Nuclei) against the lab and saves reports for benchmarking.
scripts/benchmark.sh:1-32reset.sh
lab reset script
Bash script that tears down the Docker Compose stack, removes volumes, and re-runs install.sh to rebuild the lab from scratch.
scripts/reset.sh:1-14