Un file PHP che include un .txt, un .ico o un .log
Quando un file PHP esegue una include di un file con estensione .txt, .ico o .log, il codice malevolo non è nel PHP ma nel file dall'estensione innocua: è uno schema pensato per sfuggire alle scansioni che analizzano solo i file PHP. Spesso il nome del file incluso è spezzato in più pezzi concatenati proprio per non essere trovato con una ricerca testuale.
Famiglia: Payload fuori dai file PHP · Aggiornato il 30 agosto 2026
Le stringhe esatte
Se hai trovato una di queste stringhe sul tuo sito, sei nella pagina giusta.
include.txt.icos.txt
Dove si trova
- In un finto plugin, dove il PHP è breve e il file affiancato è grande
- In wp-content/uploads/, dove un file .ico o .log non attira attenzione
- Nella radice del sito, con nomi che imitano risorse di sistema
Cosa fa
- Separa il caricatore dal carico: il PHP visibile è banale, il codice vero sta altrove.
- Aggira le scansioni che filtrano per estensione, e le regole del server che bloccano l'esecuzione diretta di PHP nelle cartelle di upload.
- La concatenazione delle stringhe nel nome impedisce di trovare il riferimento con una semplice ricerca del nome completo.
Come verificare
Comandi di sola lettura: non modificano nulla. Sostituisci ESEMPIO.it con il tuo dominio ed esegui dalla radice del sito.
Cerca include e require di file non PHP
grep -rn --include='*.php' -E '(include|require)(_once)?\s*\(?[^;]*\.(txt|ico|log|jpg|png|gif|css)' .Cerca nomi di file spezzati in stringhe concatenate
grep -rn --include='*.php' -E '[\x27"][^\x27"]{1,10}[\x27"]\s*\.\s*[\x27"][^\x27"]{1,10}\.(txt|php|ico)' .Trova file non PHP anomalmente grandi nelle cartelle di WordPress
find wp-content -type f \( -name '*.txt' -o -name '*.ico' -o -name '*.log' \) -size +20k -ls
Cosa non basta fare
- Scansionare solo i file .php: è esattamente il presupposto che questo schema sfrutta.
- Cancellare il file PHP lasciando il file incluso: se un secondo caricatore esiste, il payload è ancora lì.
Cosa fare
- Cerca le include che puntano a estensioni non eseguibili: nel codice sano sono rare e sempre spiegabili.
- Rimuovi la coppia completa, caricatore e payload, e cerca altri caricatori che puntino allo stesso file.
- Verifica le regole del server sulle cartelle di upload: dovrebbero impedire l'esecuzione di PHP.