elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  Nivel Web (Moderadores: sirdarckcat, WHK)
| | | | |-+  [XSS] Bypassing de Magics Quotes y otros filtros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [XSS] Bypassing de Magics Quotes y otros filtros  (Leído 3,670 veces)
@Sthéfano

Desconectado Desconectado

Mensajes: 98

Security & Programming ~


Ver Perfil
[XSS] Bypassing de Magics Quotes y otros filtros
« en: 19 Julio 2011, 09:59 am »

[XSS] Bypassing de Magics Quotes y otros filtros


Introducción

Para comenzar, repasemos la definición de qué es un XSS...

"XSS es un ataque basado en explotar vulnerabilidades del sistema de validación de HTML incrustado. Su nombre original “Cross Site Scripting”, y renombrado XSS para que no sea confundido con las hojas de estilo en cascada (CSS), originalmente abarcaba cualquier ataque que permitiera ejecutar código de “scripting”, como VBScript o javascript, en el contexto de otro dominio."

Es decir, la vulnerabilidad del XSS consiste en poder poder inyectar código HTML o código de cualquier lenguaje scripting (javascript, VBscript, etc) que nuestro navegador interpretará, o en el caso de que sea XSS persistente (por ejemplo un XSS a nivel foro o a nivel de GuestBook, donde el código permanece) dentro del propio archivo vulnerable. La importancia de este ataque reside, en por ejemplo, el robo de cookies, u otras acciones...

Pero, los webmasters crean filtros para evitar que usuarios maliciosos puedan inyectar códigos que exploten esta vulnerabilidad. Llegamos así a las llamadas magic quotes, pequeños filtros que evitan el uso de las comillas y de /, transofrmándolas en \ o en \".

También existen otros filtros, los cuales imposibilitan el uso de caracteres no numéricos, etc, en este texto os vamos a dar algunas ideas de como soltear estos incovenientes.


Luchando contra las Magic Quotes

Para empezar, por simple lógica, si la web cuenta con magics quotes, los tags de HTML basados en elementos que necesiten de un cierre con </tag>, porque al sustituir nuestra /, el tag dejaría de funcionar.

Es por ello que debemos de acudir a aquellos elementos vacios tipo <img>. En el caso de usar <img> forzaremos la ejecución de código malicioso aprovechando el elemento onerror, que a parte de permitir ejecutar código maligno, no necesita ser cerrado. Para poder utilizarlo, necesitaremos forzar un error en el tag que lo englobe. En nuestro caso hemos dicho que ibamos a utilizar <img>.

El error que vamos a utilizar es la imposibilidad de cargar una imagen, porque la ruta no es válida. Podríamos hacerlo de esta forma:

Código
  1. <img src=. onerror=alert(69)>

Como la ruta "." no permitirá cargar una imagen, dará error y se ejecutará lo que pongamos en onerror (en este caso el típico alert). Como podemos ver ya hemos saltado esta magic quote y podemos ejecutar lo que queramos.


Bypasseando filtros de caracteres especiales y no numéricos

Existen otros filtros que sustituyen, o directamente no permiten, introducir caracteres especiales, como las comillas, o letras. Para poder ejecutar nuestros código maligno, tenemos un pequeño abanico de posibilidades, desde usar UNICODE (valor en Hexadecimal del carácter con un % delante de cada carácter), pasando por usar el valor ascii. Existe una función en javascript encargada de hacer esto a la inversa: pasar de ascii a caracter. Esta funcion es String.fromCharCode.

Su uso es muy sencillo, simplemente se colocan los caracteres en valor ascii separados por comas. Tal que así:

Código
  1. String.fromCharCode(X, Y, Z)

Siendo X, Y, Z, los valores. Veamos por ejemplo como sería el texto "XSS":

Código
  1. String.fromCharCode(88,83,83)

Para usarlo junto con nuestro alert, simplemente lo introducimos entre () del alert.


Conclusión

Como hemos podido ver, el bypassing de filtros no es algo fijo, sino que se necesita de una cierta imaginación para poder manejarnos dentro del pequeño espacio que nos deja nuestro filtro. En mi opinión lo mejor es usar HTMLENTITIES para evitar ejecutar código html.

Por último decir que esta obra está bajo licencia de Creative Commons, lo que quiere decir que está permitida su distribución, pero manteniendo su autor original, y esas cosas.


Bibliografía
  • Los poderes Secretos del XSS
  • Rompiendo barreras: Analizando la fuente y encontrando XSS’s

Autor: The X-C3LL
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bypassing Shelll Problemas
Bugs y Exploits
rikrdo_mat 8 4,703 Último mensaje 18 Diciembre 2010, 07:10 am
por berz3k
Bypassing AVs inyectando con shells alfanuméricas
Bugs y Exploits
Shell Root 2 3,321 Último mensaje 29 Diciembre 2010, 02:52 am
por Devilboy.Devil
Ayuda Bypass Magic Quotes && File write bug AlienForm2
Hacking
germnex 0 3,028 Último mensaje 18 Junio 2011, 03:27 am
por germnex
DEP bypassing en Windows
Bugs y Exploits
Ivanchuk 2 3,432 Último mensaje 9 Enero 2012, 22:18 pm
por CloudswX
Color Quotes
Dispositivos Móviles (PDA's, Smartphones, Tablets)
padiuwu 1 3,984 Último mensaje 29 Mayo 2020, 08:51 am
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines