CriticoFamiglia antivirus

php.bkdr.upld: l'uploader che carica file sul tuo sito

php.bkdr.upld, con la variante php.bkdr.upldr, è la firma di un uploader: una pagina PHP minimale con un modulo che carica sul server qualunque file le venga inviato, senza controlli. È lo strumento con cui l'attaccante porta sul sito il resto dell'arsenale. Nel corpus di misura di WPsec.it dell'agosto 2026 compare su 11 domini e 6 server, con il 93% dei file fuori dalle cartelle di WordPress e il 61% con nome casuale.

Famiglia: Uploader · Anche noto come: upld, upldr, uploader · Aggiornato il 1 settembre 2026

Le stringhe esatte

Se hai trovato una di queste stringhe sul tuo sito, sei nella pagina giusta.

  • php.bkdr.upld
  • php.bkdr.upldr
  • SMW-BLKH-SA-CLOUDAV-php.bkdr.upld
  • php.tool.upldr

Dove si trova

  • Fuori dalle cartelle di WordPress nel 93% dei casi: cartelle di servizio, copie vecchie, wp-content/uploads solo nel 4%
  • Con nome casuale nel 61% dei rilevamenti, altrimenti con nomi come up.php, upload.php, file.php
  • Con estensione .php nel 93% dei casi: a differenza di dropper e shell, l'uploader deve essere raggiungibile da un browser

Cosa fa

  • Espone un modulo di upload senza autenticazione: chi conosce l'URL carica file con i permessi del sito.
  • È il primo strumento che l'attaccante installa dopo l'ingresso: da lì arrivano webshell, dropper, pagine di phishing e spam.
  • Resta utile anche dopo la bonifica se non viene trovato: è il modo più economico per reinfettare.

Come verificare

Comandi di sola lettura: non modificano nulla. Sostituisci ESEMPIO.it con il tuo dominio ed esegui dalla radice del sito.

  1. Cerca i file che gestiscono upload fuori dal core e dai plugin noti

    grep -rn --include='*.php' -E 'move_uploaded_file\s*\(|\$_FILES\[' . | grep -vE 'wp-(admin|includes)/|plugins/(woocommerce|contact-form-7|wpforms|gravityforms|elementor)/' | head -30
  2. Cerca moduli HTML di upload dentro file PHP

    grep -rln --include='*.php' -iE 'enctype=["\x27]?multipart/form-data' . | grep -vE 'wp-(admin|includes)/|plugins/' | head -20
  3. Cerca nei log di accesso le richieste POST verso file PHP sconosciuti

    grep -hE '"POST /[^ ]+\.php' ~/access-logs/* ~/logs/*.log 2>/dev/null | grep -vE 'wp-(admin|login|cron|comments-post)|xmlrpc' | awk '{print $7}' | sort | uniq -c | sort -rn | head -20

Cosa non basta fare

  • Rimuovere ciò che è stato caricato e lasciare l'uploader: è il canale, e il canale va chiuso per primo.
  • Cercare solo in wp-content/uploads: nel corpus l'uploader sta lì solo nel 4% dei casi.
  • Rinominare il file per metterlo fuori uso: resta sul disco e si rimette in funzione con un rename.

Cosa fare

  • Rimuovi l'uploader e cerca nei log di accesso tutte le richieste POST verso il suo percorso: le date e gli IP ricostruiscono cosa è stato caricato e quando.
  • Elenca i file comparsi dopo la prima richiesta all'uploader: sono il materiale caricato da lì.
  • Chiudi il vettore di ingresso originale: l'uploader è quasi sempre il secondo passo, non il primo.
  • Se l'hosting lo consente, blocca l'esecuzione di PHP nelle cartelle che non devono eseguirlo, uploads in testa.

FAQ

Domande frequenti

  • No, se è un plugin noto, aggiornato e con i controlli sul tipo di file attivi. La firma php.bkdr.upld scatta su file autonomi senza autenticazione né controlli, non sui moduli dei plugin. Il plugin va comunque verificato con le somme di controllo, perché è un bersaglio naturale per un'iniezione.

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.