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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Seguridad (Moderador: r32)
| | |-+  Historia de un pequeño fallo descubierto accidentalmente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Historia de un pequeño fallo descubierto accidentalmente  (Leído 1,143 veces)
Ethicalsk

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Historia de un pequeño fallo descubierto accidentalmente
« en: 24 Noviembre 2017, 03:56 am »

Muy buenas! Quería mostrarles un pequeño fallo que encontré con ayuda del administrador de brutelogic.com.br . El tipo es un genio del XSS, encontró XSS en casi todas las páginas de empresas de antivirus, en facebook, en amazon y otras empresas de las más grandes, y además por lo poco que llegué a hablar con él parece ser una excelente persona porque yo siendo un novato del tema, me respondió por twitter enseguida, y me dio una mano todo el tiempo, ademas de hablarme con mucha humildad. Si les interesa el hacking web les recomendaría leer sus artículos, yo estoy terminando de leerlos y explica técnicas y conceptos muy buenos para hacer XSS.

Bueno, empecemos con la historia. Resulta que estaba probando si se podía ejecutar javascript a través del bot de telegram, enviando el mensaje sendMessage con el parámetro --parse-html que parsea el html de lo que uno le manda en --text. Según decía la documentación solo se podían mandar tags del tipo <b>, <pre>, entre otros, y al mismo tiempo convertía a html entities la mayoría de caracteres especiales. Probe algo como <b onclick=alert>clickear aqui</b> y se llegó a mandar, pero si abría un paréntesis, para lograr el alert(1), o ejecutar cualquier otra función, no lo mandaba. Entonces googlie: "javascript without parentheses" y me encontré con ésto:



No lo podía creer!!! A simple vista me pareció que google no estaba filtrando bien el contenido que indexaba, y que el payload XSS de alguna página de hacking se llegaba a ejecutar. Pero era demasiado raro para ser cierto... Probé buscar varias veces "javascript without parentheses" a través Chrome v62 con mi pc de escritorio y siempre me saltaba el alert(1). Haciéndolo desde firefox no pasaba, y desde Chrome v62 de mi portatil tampoco pasaba, ni del Chrome del celular... Luego probé borrando las cookies del Chrome de mi pc de escritorio (en el único navegador que pasaba), y seguía pasandome aún sin las cookies... No entendía el por qué. Entonces me comuniqué a través de Twitter con el administrador de brutelogic.com.br, y me pidió que buscara alert(1) en el DOM... Yo antes lo había buscado en el source y parecía estar bien filtrado, pero no tuve en cuenta las modificaciones que javascript puede hacer en el DOM... Resulta que el alert provenía de su mismisima cheat sheet de XSS!!! Pero solo en el navegador de mi pc de escritorio podía ver todo el tag del script coloreado (script funcional) dentro del DOM, en los demás navegadores (incluyendo el navegador de éste tipo) solo se veía negro, como texto, como si no se estuviera ejecutando... Ahi les muestro una comparativa. A la izquierda está el DOM del navegador con el que salta el alert y a la derecha el navegador de brute y el Chrome de mi notebook:



También pueden ver como se deforma el contenido de la página de Brute, ya que en ese espacio en blanco estaría habiendo una caja que creó el tag <svg>. Hasta ahora sabíamos de donde provenía pero no que lo generaba. Entonces me dio la idea de revisar las extensiones de mi navegador...

Y ahí estaba el problema. Probé deshabilitandolas a todas y ahí dejó de saltarme el alert. Luego probé activando una por una para encontrar cuál era la culpable. Resultó ser gInfinity 2.4.1, una extensión con muy pocos usuarios que sirve para mostrar las páginas sucesivas de los resultados de Chrome una debajo de otra sin tener que clickear el boton 2,3,4,5, etc para cambiar de página. Aca su enlace para el que quiera chusmearla:

https://chrome.google.com/webstore/detail/ginfinity/dgomfdmdnjbnfhodggijhpbmkgfabcmn

Luego me aconcejó que revisara el código fuente para darme cuenta del fallo, y busqué la ubicación donde están las extensiones, y resulta que constaba de 3 archivos javascript:

options.js,  gInfinity.js, background.js

Primero revisé gInifinity.js, comentando de a partes hasta que dejara de saltarme el alert, luego terminé ubicando la parte del código que generaba problemas. Estaba agregando un <span> al DOM, cuyo contenido era parte del DOM original pero ésta vez sin estar encodeado! Toda la extensión en si modifica el DOM en exceso, y luego terminan pasando cosas como éstas... Aca les muestro la sección de código que genera problemas. Comentando la línea remarcada en rojo, el error no ocurre:




El ataque que se podría hacer aprovechando ésto es lograr que el javascript que queramos que se ejecute en los usuarios de la extensión, se logre indexar dentro del contenido de google.com, para que se ejecute al buscarlo y lograr obtener cookies de google.com, redireccionar, enganchar con beef, o cualquier otra técnica de XSS que se nos ocurra... Lo mas jugoso obviamente son las cookies, pero habría que ver bien cuales están protegidas por HttpOnly, y demás para determinar que es lo más dañino que se pueda llegar a hacer...

De todas formas la extensión es usada por 7,608 usuarios, lo que significa que no es una vulnerabilidad crítica. Es una vulnerabilidad bastante pequeña, pero es curiosa y poco usual, por lo menos para lo que yo estoy acostumbrado a ver. Y esta bueno ver como uno empieza haciendo algo y termina encontrando otra cosa que nunca hubiera esperado y aprendiendo cosas en el camino. Antes de ésto no tenía ni idea de lo que era una extensión de Chrome ni como funcionaba por ejemplo :p

Asi que bueno, espero que les haya gustado la historia, como les dije no es una falla importante pero está bueno para ver como las vulnerabilidades pueden estar en todos lados y hasta toparnos con ellas accidentalmente...

Saludos!


« Última modificación: 24 Noviembre 2017, 10:08 am por Ethicalsk » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Descubierto un fallo en los procesadores Intel en S.O de 64 bits
Noticias
wolfbcn 1 1,561 Último mensaje 18 Junio 2012, 18:00 pm
por crazykenny
Un fallo en la web de Verizon deja al descubierto los SMS de usuarios
Noticias
wolfbcn 0 777 Último mensaje 22 Octubre 2013, 13:54 pm
por wolfbcn
Descubierto un grave fallo de seguridad en Android 4.4.2
Noticias
wolfbcn 0 1,303 Último mensaje 16 Abril 2014, 18:26 pm
por wolfbcn
Descubierto un fallo grave de seguridad en Telegram
Noticias
wolfbcn 0 1,095 Último mensaje 29 Abril 2014, 21:27 pm
por wolfbcn
Descubierto un nuevo fallo en iOS 7
Noticias
wolfbcn 0 802 Último mensaje 8 Mayo 2014, 14:08 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines