Layer 06

Costruire un wordpress sicuro

Resistere alle SQL Injections Ogni SQLI si basa sul fatto che un’installazione standard di WP ha determinati nomi di tabelle, per cambiare le carte in tavola possiamo agire sul prefisso dei nomi di tabella. Standard wordpress si porta dietro il prefisso “wp_” lo possiamo cambiare con un qualsiasi altro prefisso, tipo il nome del sito, in questo caso sarebbe “3t3chs_”. Nel caso in cui il vostro WordPress sia già installato basta seguire questa semplice guida: https://www.etechs.it/come-rinominare-i-nomi-delle-tabelle-in-mysql/ Una volta modificate tutte le tabelle nel nostro wp-config.php dobbiamo cambiare il parametro $table_prefix:

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = 'r235_';   // Only numbers, letters, and underscores please!

Spostiamo le directory principali

wp-content

Tra le tante cose standard di WP ci sono le directory che utilizza, la prima da cambiare è wp-content. Nel wp-config.php esiste un parametro che ci permette di definire una directory personalizzata dove piazzare tutti i nostri contenuti passando da /blog/wp-content a /blog/3t3echs-content-new:
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/3t3chs-content-new' );
A questo punto dobbiamo dire al motore di WP qual è l’url di per il wp-content:
define( 'WP_CONTENT_URL', 'https://www.etechs.it/blog/3t3chs-content-new' );

plugins

Si sa che molte vulnerabilità di wordpress non sono proprio del CMS ma sono piuttosto di plugin installati e che magari non vengono aggiornati, cerchiamo quindi di rendere la vita difficile ai nostri attackers spostando la cartella plugins da /blog/wp-content/plugins a /blog/plug
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/plug' );
define( 'WP_PLUGIN_URL', 'http://example/blog/plug');
Alcuni plugin per problemi di compatibilità utilizzano anche la variabile PLUGINDIR, ergo definiamo anche quella:
define( 'PLUGINDIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/plug' );

uploads

Se esiste una cartella più pericolosa delle altre questa è proprio /wp-content/uploads, il CMS infatti la usa per caricarci i nostri contenuti multimediali ed un attacker la usa per caricarci le proprie console, spsostiamola:
define( 'UPLOADS', '/blog/folder/uploads' );

Come trattare i plugins

Ci sono plugin molto conosciuti che continuano ad essere aggiornati ad ogni segnalazione che si riceve dagli utilizzatori, altri plugin invece sono arrivati alla fine della loro vita e lo sviluppatore non ne vuole sapere di aggiornarli. In questi casi dobbiamo trattarli in modo molto diffidente, se non sono attivi nel nostro backend e non ci servono più cancelliamoli pure, è tutta roba in più che non serve. Mentre se sono altresì attivi e ci servono dobbiamo quantomeno cambiare nome alla cartella in cui sono contenuti.

Epilogo

Non sarà sicuro al 100% ma con pochi accorgimenti abbiamo cambiato un po’ di carte in tavola, ricordiamo che più è standard più è riconoscibile, più è riconoscibile più è attaccabile. Fonte: http://codex.wordpress.org/Editing_wp-config.php]]>