______ _ _ _ _ ____ _____ __ __ _____ _____ ______
| ____| | | | \ | | _ \ / __ \ \ \/ / | __ \| __ \| ____|
| |__ | | | | \| | |_) | | | | \ / | |__) | |__) | |__
| __| | | | | . ` | _ <| | | | / \ | ___/| ___/| __|
| | | |_| | |\ | |_) | |__| |/ /\ \ | | | | | |____
|_| \___/|_| \_|____/ \____//_/ \_\|_| |_| |______|
[ 0P3R4T10N: H4RD3N // anti-0wn4g3 ]
target ......: funboxskateshop.it
stack .......: nginx + Plesk / PHP 8.2.31 / WordPress / WooCommerce / Elementor
shield ......: Wordfence 8.2.2 ACTIVE (bene, ma non basta)
status ......: LEAKING VERSIONS _
Il sito grida ai 4 venti la versione esatta di PHP, WordPress e di
ogni plugin installato. Un attaccante non deve nemmeno sudare: legge le versioni
(da readme.txt, header X-Powered-By, meta generator),
apre il database delle vuln, e il giorno in cui esce un exploit per una di quelle
versioni tu sei il primo nome sulla lista.
Regola n.1 dell'h4x0r difensivo: se non sanno che versione giri, devono tirare a indovinare.
Plesk → Siti web e domini → funboxskateshop.it → Impostazioni PHP
in fondo, Direttive aggiuntive php.ini, incolla:
expose_php = Off
→ Applica. Risultato: sparisce X-Powered-By: PHP/8.2.31.
Plesk → funboxskateshop.it → Impostazioni Apache e nginx → casella Direttive nginx aggiuntive, incolla tutto il blocco:
# --- hide versions & harden ---
proxy_hide_header X-Powered-By;
fastcgi_hide_header X-Powered-By;
# blocca i file che rivelano le versioni di WP/plugin
location ~* /(readme|license|changelog)\.(txt|html)$ {
deny all; access_log off; log_not_found off;
}
location ~* ^/wp-content/.*\.(txt|log|md|sql|bak)$ {
deny all;
}
# xmlrpc.php = superficie bruteforce/pingback-DDoS, chiudila
location = /xmlrpc.php {
deny all; access_log off; log_not_found off;
}
# security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# --- end ---
→ Applica. Se Plesk fa storie su una riga, toglila e riprova — di solito le ingoia tutte.
Hai già Wordfence: dentro le sue opzioni attiva tutto ciò che
nasconde versione/username. In alternativa, child theme già presente
(woodmart-child):
Aspetto → Editor file tema → woodmart-child / functions.php, in fondo:
remove_action('wp_head', 'wp_generator');
Dopo le patch, lancia (o chiedi a vjt-claude di farlo da fuori):
curl -I https://funboxskateshop.it/
→ nessun X-Powered-By
curl -o/dev/null -w '%{http_code}\n' https://funboxskateshop.it/readme.html
→ deve dire 403
curl -o/dev/null -w '%{http_code}\n' https://funboxskateshop.it/xmlrpc.php
→ deve dire 403
Nascondere le versioni rallenta lo scanner pigro, ma non ti rende invulnerabile. La vera difesa è una sola e noiosa: