Ripulire post di WordPress da script injection

Ti è mai successo che le pagine del vostro sito redirezionano su siti “strani” senza un motivo apparente? E’ possibile che il tuo sito sia stato oggetto di un attacco di script injection. In questo breve tutorial ti spiego come risolvere il problema.

Che cos’è lo Script Injection

Può capitare che, a causa di plug-in difettosi e non aggiornati qualcuno, tipicamente un hacker che usa programmi appositamente studiati, venga aggiunto del codice SCRIPT che ha come effetto quello di deviare il traffico su siti specifici allo scopo di far guadagnare chi ha fatto questa modifica.

Lo script di solito ha un codice volutamente molto complesso, in modo che se anche lo scopri non sia immediatamente chiaro che l’effetto finale dello script è quello di portare il visitatore su un altro sito. Se lo sript fosse codificato in modo semplice, potresti infatti accorgerti che è qualcosa di estraneo e eliminarlo. Il fatto è che… un post o una pagina WordPress NON  dovrebbe contenere alcun tag SCRIPT!

Come verificare che il tuo sito è affetto dal problema

Aprire pagine a casaccio per vedere se si viene redirezionati altrove non è un metodo molto sicuro. Questi script spesso funzionano con logiche a intermittenza proprio per dare l’impressione che il problema non ci sia. Il metodo più sicuro è fare una ricerca con il phpAdmin su tutto il database, cercando la stringa: <SCRIPT>

Se trovi la stringa nelle tabelle wp_posts … al 99% percento il tuo sito è infetto!

Come risolvere il problema

Il problema è facilmente risolvibile usando phpAdmin. Prima fai un backup della tabella esportandola come file sql (non si sa mai), poi esegui la seguente query SQL:

update `wp_posts` set post_content = REGEXP_REPLACE(post_content,'<script.*</script>','') WHERE post_content REGEXP('<script.*</script>');

Tutti gli script verranno eliminati da post e pagine.

Una nota…

E’ bene installare sempre su un sito WordPress un plug-in che si occupi della sicurezza. Possiamo consigliare WordFence oppure WP Cerber. Ne abbiamo parlato in questo post.

Questi plug-in fanno anche una utile scansione antivirus sul sito MA questi script iniettati nei post (almeno fino ad ora) non li trovano, perché la scansione avviene nel filesystem, mentre gli script di cui abbiamo parlato qui si annidano nella tabella wp_posts del database a cui WordPress si appoggia.