OpenX 2.8.7 vulnerabile a una SQL injection?

Prima Speedtest.net, poi Kickasstorrents (www.kat.ph) sono stati colpiti da attacchi mirati a compromettere le rispettive installazioni di OpenX. A riportare le compromissioni del banner management system è stato il blog di Armorize (qui si parla di Speedtest mentre qui di kat.ph).

Dal momento che almeno la versione installata da Kickasstorrents è OpenX 2.8.7 e moltissimi utenti continuano a riportare compromissioni anche con questa versione (basta leggere i commenti al post) sembra che ci possa essere una SQL injection sfruttabile da attaccanti remoti per iniettare codice JavaScript nei codici zona dei banner.

Controllando in giro mi pare che l’unica vulnerabilità nota in OpenX 2.8.7 e precedenti sia una vulnerabilità Cross Site Request Forgery (CSRF) sfruttabile soltanto con utenti loggati all’amministrazione di OpenX, inutile dunque per portare a termine infezioni su larga scala di installazioni di OpenX.

Gli sviluppatori di OpenX, come al solito, non offrono alcuna indicazione in merito dunque per ora l’unica via per rendere più sicura la propria installazione consiste nel proteggere l’area amministrativa con un .htaccess bloccandone l’accesso ad IP (come fatto da speedtest.net dopo la compromissione dell’installazione di OpenX su ads.ookla.com) o ad utenti che non effettuino login (come spiegato nel forum di supporto).

Se siete stati infettati consiglio di seguire le indicazioni sulla pulizia di OpenX che ho dato tempo fa ma aggiungerei anche due consigli per individuare la presenza di codice JavaScript iniettato utilizzando questa query sql suggerita sul blog di OpenX:

SELECT bannerid, append, prepend FROM banners WHERE append != '' OR prepend != '';
?SELECT zoneid, append, prepend FROM zones WHERE append != '' OR prepend != ''

oppure per individuare utenti amministratori nascosti:

SELECT u.user_id, u.contact_name, u.email_address, u.username FROM users AS u, account_user_assoc AS aua WHERE u.user_id=aua.user_id AND aua.account_id = (SELECT value FROM application_variable WHERE name='admin_account_id');

OpenX: ripulire un’installazione infetta e aumentarne la sicurezza

Qualche settimana fa ho subito un attacco a un’installazione di OpenX abbastanza datata che avevo installato su un dominio che gestisco. Nella fattispecie si è trattato di una SQL Injection ai danni di OpenX 2.8.1 e l’attacco è stato facilmente individuabile dai suoi effetti: tutti i codici zona erano stati sporcati da iframe che facevano scaricare virus e trojan.

La prima cosa da fare in questi casi è arrestare tutte le campagne attive di OpenX impedendo in questo modo che gli iframe infetti continuino a fornire malware. Nel caso non si riesca ad accedere al pannello di controllo di OpenX sarà necessario andare a “interrompere” la comunicazione tra OpenX e il datbase MySQL utilizzato, in questo modo saremo sicuri che la versione infetta del banner manager smetterà di funzionare e potremo avere tutto il tempo di pulire il database dai codici infetti. Per arrestare la comunicazione con MySQL basterà rinominare il file di configurazione di OpenX oppure aprirlo e cambiare i parametri di accesso al database. Il file di configurazione è presente nella directory “var” di OpenX e cambia nome a seconda del dominio in cui sia stato installato OpenX: se il dominio dove lo abbiamo installato si chiama “www.example.com” il file di configurazione si chiamerà “www.example.com.conf.php“.

Leggi tutto

OpenX e WordPress: targeting dei banner nella sidebar

Da qualche giorno sto facendo delle prove di integrazione di OpenX con WordPress. Esiste un plugin che però non è che faccia granché, consente infatti di posizionare un widget nella sidebar e di richiamare le zone semplicemente inserendo l’ID, senza dover incollare il codice di invocazione. Oltre a questa funzionalità, è possibile richiamare una zona incollando in un’area di contenuto il codice “{openx:N}”, dove N è l’ID della zona.

Tuttavia, per effettuare un targeting contestuale dei banner in alcune aree del blog la cosa si complica e le funzionalità del plugin servono a poco. Per visualizzare un banner soltanto per alcune categorie o tag si può intervenire impostando dei canali di targeting direttamente in OpenX, decidendo delle regole di consegna dei banner. Così facendo è OpenX che, al verificarsi delle condizioni che abbiamo impostato (IP del client, URL, Site Source etc.), sceglie quale banner visualizzare in una zona.

Leggi tutto