Che cos'è XMLRPC e in che modo minaccia la sicurezza del tuo sito WordPress
Nella directory principale di ogni sito WordPress c’è un file xmlrpc.php che in realtà esiste da prima di WordPress stesso. Prima di WordPress, al tempo di b2 (se qualcuno lo conosce), questo file è stato creato per dare ai siti un modo per comunicare tra loro e per consentire ad altre applicazioni di comunicare con il blog stesso.
Che cos’è XMLRPC?
Il nome ti dice tutto ciò che devi sapere sulla sua funzionalità.
XML – è stato progettato per accettare payload in XML. In questi giorni JSON è un formato molto più comune, ma XMLRPC precede JSON di un bel po’.
RPC – sta per Remote Procedure Call. Era uno standard in base al quale un sistema poteva chiedere a un altro sistema di fare qualcosa. In questi giorni usiamo le API (REST o Graph API) per fare la stessa cosa ma, prima che esistessero, RPC era uno dei modi per eseguire queste procedure.
Come funziona XMLRPC?
Per fare in modo che XMLRPC.php faccia qualcosa, devi fare una richiesta POST. Se non conosci il funzionamento dei browser, questo passaggio è fondamentalmente come cliccare sul pulsante Invia in un modulo, che solitamente avvia proprio una richiesta POST.
Se fai una richiesta POST a tuodominio.tld/xmlrpc.php e gli dai un payload XML correttamente formattato, puoi fare cose come creare un post sul tuo sito.
Una delle cose per cui XMLRPC veniva usato molto in passato erano i “pingback”. Quei commenti che vedi sui post che mostrano che qualcun altro si lo ha linkato sul proprio blog.
Potenziali minacce alla sicurezza provenienti da XMLRPC di WordPress
Per molto tempo XMLRPC è stato uno strumento utile. Oggi non è più così. Al giorno d’oggi tutte le funzionalità per cui veniva utilizzato XMLRPC sono gestite dalle API REST integrate. Tuttavia, anche se non è più utilizzato è ancora in giro. Chi ha nostalgia di queste cose lo vede e sorride, ma chi è attento alla sicurezza lo teme.
XMLRPC pone un paio di rischi per la sicurezza dei siti WordPress che possono provocare gravi attacchi XMLRPC.
Attacchi di brute-force tramite XMLRPC
Il primo tipo di attacco XMLRPC è un semplice Brute-Force. Poiché parte del payload XML che viene passato a WordPress contiene il login e la password dell’utente che vuole intraprendere l’azione, è facile che gli hacker provino diverse combinazioni per individuare le credenziali. Molti proprietari di siti limitano il numero di tentativi di login che un utente può effettuare prima di essere bloccato, ma non si preoccuperanno di bloccare le richieste XMLRPC, lasciando così una backdoor aperta agli hacker per cercare di trovare un modo per entrare.
Una volta che un hacker trova le credenziali corrette, è libero di compromettere il tuo sito inserendo contenuti nel database del tuo sito. Che si tratti di post, pagine o solo commenti, il risultato finale è lo stesso. Il contenuto che non hai approvato e che molto probabilmente non desideri viene pubblicato sul tuo sito.
Nella migliore delle ipotesi, questo significa commenti e post di spam. Nel peggiore dei casi, potrebbero essere post o commenti all’apparenza normali ma nei quali a cui è stato inserito un malware.
Attacchi DDoS tramite XMLRPC
Poiché uno dei modi in cui veniva utilizzato XMLRPC era il pingback, gli hacker possono usarlo per sopraffare il tuo server emettendo molte richieste tutte in una volta.
Un pingback scrive un record nel tuo database. Scrivere nel database è un’attività costosa, in termini di risorse. Mentre un singolo pingback non danneggia le prestazioni del tuo sito, centinaia o addirittura migliaia di essi contemporaneamente possono mettere in ginocchio anche il server più robusto.
Questo è chiamato attacco DDos o Distributed Denial of Service. “Distribuito” perché di solito non è una singola macchina a fare tutte le richieste, di solito è un intero gruppo di macchine sparse ovunque.
Grazie! Il tuo commento è trattenuto per moderazione e verrà pubblicato a breve, se correlato a questo articolo del blog. I commenti con richieste di assistenza o risoluzione problemi non verranno pubblicati. In tal caso, ti preghiamo di segnalarli tramite
Inizia la discussione
Grazie! Il tuo commento è trattenuto per moderazione e verrà pubblicato a breve, se correlato a questo articolo del blog. I commenti con richieste di assistenza o risoluzione problemi non verranno pubblicati. In tal caso, ti preghiamo di segnalarli tramite