4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / docker-entrypoint-custom.sh SH
#!/bin/bash
set -e

# Run the original WordPress entrypoint first (sets up wp-config.php, etc.)
# We source it in background and continue with our setup
docker-entrypoint.sh apache2-foreground &

# Wait for WordPress files to be ready
echo "[*] Waiting for WordPress to initialize..."
sleep 10

# Wait for database to be ready
echo "[*] Waiting for database connection..."
until nc -z -v -w30 db 3306 2>/dev/null; do
    echo "    Waiting for MySQL..."
    sleep 2
done
echo "[+] Database is ready"

# Additional wait for MySQL to fully accept connections
sleep 5

# Check if WordPress is already installed
if ! wp core is-installed --allow-root --path=/var/www/html 2>/dev/null; then
    echo "[*] Installing WordPress..."
    wp core install \
        --url="http://localhost:8088" \
        --title="CVE-2016-15041 Lab" \
        --admin_user="admin" \
        --admin_password="admin123" \
        --admin_email="[email protected]" \
        --skip-email \
        --allow-root \
        --path=/var/www/html
    
    echo "[*] Activating MainWP Dashboard plugin..."
    wp plugin activate mainwp --allow-root --path=/var/www/html 2>/dev/null || echo "[!] Plugin activation had warnings (expected on first run)"
    
    echo ""
    echo "=========================================="
    echo " CVE-2016-15041 Lab Ready!"
    echo "=========================================="
    echo " WordPress:  http://localhost:8088"
    echo " Admin:      admin / admin123"
    echo ""
    echo " Vulnerable endpoint (no auth required):"
    echo " http://localhost:8088/wp-admin/admin-post.php?page=mainwp-setup&step=purchase_extension"
    echo ""
    echo " Test with nuclei:"
    echo " nuclei -t CVE-2016-15041.yaml -u http://localhost:8088"
    echo "=========================================="
else
    echo "[+] WordPress already installed"
fi

# Keep container running by waiting for the Apache process
wait