CriticoBackdoor

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
  • .ico
  • s.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.

  1. Cerca include e require di file non PHP

    grep -rn --include='*.php' -E '(include|require)(_once)?\s*\(?[^;]*\.(txt|ico|log|jpg|png|gif|css)' .
  2. 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)' .
  3. 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.

FAQ

Domande frequenti

  • Sì, per esempio l'inclusione di template o di frammenti con estensioni personalizzate in alcuni framework. La differenza è che nel codice legittimo il percorso è leggibile e coerente con la struttura del progetto, mentre qui il nome è offuscato o costruito concatenando pezzi di stringa.

Se il sito è compromesso

Trovare la firma è il primo passo, chiudere la via di ingresso è quello che conta

Rimuovere l'artefatto senza chiudere il punto da cui è entrato porta alla reinfezione. La scansione gratuita è il modo più rapido per capire cosa è osservabile dall'esterno del tuo sito.

Questa pagina pubblica firme di rilevamento, non codice sfruttabile. I casi citati sono descritti in forma anonima.