Miscellaneous

Mostrando las entradas con la etiqueta javascript. Mostrar todas las entradas
Mostrando las entradas con la etiqueta javascript. Mostrar todas las entradas

miércoles, 3 de agosto de 2016

UnicodeIpObfuscator - Ofuscando una dirección IP con caracteres Unicode

Sencilla tool desarrollada por mí e inspirada en el trabajo de @OsandaMalith (https://goo.gl/BrtoAB) que ofusca una dirección ip de diferentes maneras usando caracteres unicode:

Ejemplo:


Cómo podemos observar la ip 189.247.150.242 (www.google.com) puede ser representada de diferentes maneras entre ellas:

[+] http://0Ⅹℬⓓ.⁰ⅹf7.₀Ⅹ⁹⁶.⁰xf2
[+] http://⁰ⅩⓑD.⁰ⅹℱ⁷.₀Ⓧ9⁶.⁰ˣⓕ²
[+] http://₀Xbd.₀Ⓧf⁷.₀ⓧ₉₆.₀ⅹⒻ²
[+] http://⁰XbⅮ.⓪xⓕ⁷.⁰ⓧ₉⑥.₀ⅩⒻ②
[+] http://⁰XℬⅮ.₀ˣℱ7.0ˣ96.0ⅹf②
[+] http://₀ˣbⅮ.⁰Xf7.⁰ⓧ9₆.₀Ⅹf²
[+] http://₀ˣⒷd.⓪ⓍF⁷.0x₉₆.⓪ˣℱ②
[+] http://₀ˣBⒹ.⁰ⓧf⑦.⁰Ⓧ⑨⑥.⓪ⅹℱ2
[+] http://⁰ⅩbⅮ.0xℱ7.₀ˣ⁹₆.⁰xⓕ₂
[+] http://⁰xbD.₀ⓍⒻ⁷.⁰x9⑥.⁰XF②
[+] http://⁰ˣℬd.₀XF⑦.⓪ⅹ⑨₆.₀ⅹⒻ2
[+] http://⁰xⒷⅮ.₀Ⓧf⑦.⁰Ⓧ₉⑥.⓪Xℱ2
[+] http://⁰ⓧⓑⓓ.⁰ⅹF7.₀x⁹⑥.⁰Ⓧℱ²
[+] http://₀ˣℬⅅ.₀xℱ⑦.⁰Ⓧ9⑥.⁰ⅹⓕ²
[+] http://₀xⒷD.₀ˣF7.₀Ⓧ9⁶.0ⅩF²
[+] http://₀ⅹℬd.⁰Ⅹℱ₇.₀Ⓧ9₆.0ˣⓕ2
[+] http://0xBⒹ.0XⒻ7.₀X⑨⁶.⁰ⓧF2
[+] http://0ⓧⒷⅮ.₀ˣⓕ⑦.₀x9⑥.⁰ⅹf2
[+] http://₀ⅩBⅅ.⁰ⓧⓕ⑦.0Ⓧ⁹6.⁰xℱ②
[+] http://0ˣbⅾ.₀ˣℱ⁷.0ˣ₉⁶.0ⅹℱ2
[+] http://⓪xbⅮ.₀xⒻ⁷.⓪ˣ96.₀ˣⒻ²
[+] http://⓪XBⅮ.⁰ⓧf⁷.⓪Ⅹ₉₆.⁰ˣf②
[+] http://⁰ⅹⒷⓓ.⁰ⅹℱ7.⁰X⑨6.⓪ⓧf2
[+] http://⓪xBⅆ.₀Ⓧℱ⁷.0ⓧ₉⁶.0Ⅹℱ₂
[+] http://⓪xbⅆ.0ˣⓕ7.₀x⑨⑥.⓪Ⅹℱ②
[+] http://⓪ⓧⒷⒹ.₀ⓧf⑦.₀X⑨₆.⓪Ⓧℱ₂
[+] http://⁰xℬⅮ.₀ˣⓕ⑦.⁰Ⓧ⑨6.0ⅹℱ2
[+] http://⁰ⅩⒷD.₀ˣⓕ7.0Ⅹ⑨₆.⁰ⅹⒻ²
[+] http://⁰ⓧⓑⅾ.⓪Ⓧℱ7.0Ⓧ96.₀xℱ²
[+] http://₀XⓑⒹ.₀XF⑦.⁰Ⓧ9₆.0ⓧℱ②
[+] http://0ⅩBⅅ.⁰ⅹF⁷.⁰X96.⁰XⒻ②
[+] http://₀xⓑⅅ.⁰ⓍF₇.0x9₆.⁰Ⅹf2
[+] http://₀Ⓧⓑⅾ.⁰ⓧℱ⁷.⓪x⁹⑥.₀ⓧⒻ²
[+] http://⁰Ⓧℬⅅ.₀ⓍF⁷.₀ⅹ₉⑥.₀Xf₂

Puedes disfrutar y hacer uso de esta utilidad cuando quieras siguiendo este enlace (http://bit.ly/2aSe4dC).

jueves, 12 de mayo de 2016

Gana un auto-subscribe a un canal de youtube con solo visitar un enlace y hacer clic

Hace tiempo que no actualizo este blog (Motivos, excusas, pretextos, blabladas, etc aquí) jeje :P, pero venga que la tierra jamas se detuvo por ello, asi que a lo que se viene...

Y Esta vez les traigo un clickjacking que hace tiempo encontre en youtube, Sí, en youtube (Reportado, pero aún no corregido), y bueno, para los que no sepan a lo que me refiero con esa obscura palabra ("Clickjacking") pueden echar un ojo a este post y darse una idea :).

¿Quedo claro? Sí, ok, pues entonces ahora entenderas lo peligroso (O conveniente) que puede llegar a ser si una falla como esta permite que pesques un auto-subscribe a un canal especifico de youtube.

Pero bueno para no alargar el tema, imagina que tú eres un usuario activo en este sitio web (Youtube), sea como audiencia o creador de contenido ("Youtuber"), es igual, eso no importa, el chiste es que tu eres un usuario activo en dicha red y la gran mayoría de veces tienes abierta tu sesión en youtube y un día como cualquier otro te dispones a mirar e ir a comentar el nuevo vídeo de tu youtuber favorito, pero ¡epa! antes de eso te han enviado por correo un enlace a un vídeo viral y ¡pum! haces clic, notas que no hay nada raro y das play al vídeo,ya esta, ahora automáticamente quedaste suscrito a un canal de youtube, tú no lo sabias, pero ese portal tenia ese objetivo, y detrás de todo el amarillismo, se encontraba un script a la espera de tu clic, y bueno, no es tan preocupante si lo ves desde la perspectiva de audiencia, ya que solo quedas suscrito a un canal o con la suscripción cancelada a dicho canal sin tu consentimiento, pero ¿y si eres creador de contenido? la cosa ya cambia, porque si bien esta falla te puede dar mas suscriptores de igual manera te los puede quitar, así que buzos, ya saben que son requisitos el tener iniciada sesion en un servicio de google y visitar un enlace para explotar esta falla, así que la próxima vez que inicien sesión recuerden no visitar ningún enlace o pueden terminar como este youtuber de asombrados (No aseguro que haya sido víctima de esta falla, pero existe la posibilidad) :).

Ya para terminar dejo un enlace que satisface a los escépticos y los hace suscriptores de mi canal en youtube, los pasos a seguir para que la prueba de concepto rinda frutos son los siguientes:
  1. Inicia sesión en algún servicio de google (Youtube, blogger, gmail, etc)
  2. Regresa a esta entrada y haz clic aquí
  3. Haz clic en cualquier parte de la ventana que te abrió el enlace anterior y listo, ahora estas suscrito a mi canal y eres el afortunado suscriptor #googol, te acabas de ganar un auto... subscribe, ok no :P.
Bueno, ahora que no tengo más que contarles, me despido y ¡happy hacking!, ah, se me olvidaba, pueden cambiar el valor del parametro get id_c y probar con otros canales (Y no, no es vulnerable a XSS) ahora si, hasta la próxima :).

lunes, 28 de diciembre de 2015

Aprovechando parámetros GET para ejecutar un XSS reflejado

Imaginemos que estamos en un tienda virtual y nos topamos con un formulario de búsqueda que solicita dos campos, categoría y producto respectivamente, ademas, usa el método GET del protocolo HTTP para enviar los datos, es decir , usa la url, algo parecido a lo que se ve en la siguiente imagen para ser mas precisos:


Podemos ver claramente que el script php que va a procesar este formulario (Atributo action del formulario) es "vulnerable.php", cuyo código fuente es el siguiente:


¡Bueno!, es claro que no se necesita ser un genio para entender que este código es vulnerable a XSS reflected, a simple vista se puede notar que las variables $categoria y $producto pueden ser manipuladas por un usuario malintencionado y por ende llevar a la ejecución arbitraria de código del lado del cliente, pero echemos mejor un ojo a las siguientes imágenes:


En este primer caso no se ve riesgo alguno, ya que lo que se paso vía get desde los parámetros categoría y producto, fue "juguetes" y "Cubo de rubik" respectivamente, pero, ¿qué pasa si enviamos en cualquiera de los parámetros algo como esto:

<script>alert(/XSS HERE/)<script>

Pues probemos, pero ahora no usemos el formulario, si no que directamente modifiquemos la url y manipulemos los parámetros categoría y producto, es decir, hagamos que nuestra url tenga un aspecto parecido a este:

http://domain/vulnerable.php?categoria=<script>alert(/XSS HERE/)</script>&producto=<script>alert(/XSS HERE/)</script>

Esto es lo que obtenemos si visitamos nuestra url desde el navegador firefox:


¡Bingo!, hemos logrado ejecutar código javascript, si ese enlace se lo enviamos a una persona y lo visita, el limite de lo que podemos lograr hacer es directamente proporcional al grado de sofisticación de nuestro script inyectado, para fines prácticos el mio solo muestra un alert :P.

Pero, y si el navegador es google chrome? pues nos jodimos temporalmente, porque gracias a la inexistencia de la cabecera X-XSS-Protection dentro del código vulnerable, el XSS-Auditor de chrome bloquea automáticamente este intento de Cross-Site-Scripting y no ejecuta nuestro hermoso alert :( como se observa en la siguiente imagen:

Auditor XSS de chrome, evitando se ejecute nuestro alert
Pero epa, les dije que la joda era temporal así que intentemos ver si logramos hacer saltar ese alert... Sabemos que nuestro código imprime nuestras dos variables get (Categoría y Producto), así que usemos el poder del conjunto he intentemos armar una carga útil (Payload) usando ambas, como primer intento probemos lo siguiente:

?categoria=<script>&producto=</script>


mmm, nuevamente el mensaje del xss-auditor, aunque por ningún lado se ve nuestro alert, y esto se debe a que estamos metiendo en orden incorrecto las etiquetas <script></script> , si miramos bien el código de vulnerable.php vemos que imprime primero la variable producto y después la variable categoría, así que hagamos un segundo intento pero ahora con esto:

?categoria=</script>&producto=<script>alert()


Ok, esta vez si que vemos algo parecido a nuestro payload, no se lanzo el mensaje del xss-auditor pero si un error de sintaxis, ya que después del alert esta el texto "en la categoría", intentemos ver que logramos si comentamos ese string basura:

?categoria=</script>&producto=<script>alert()/*


Pues ahí esta, otro intento fallido, pensemos... ¿Y si metemos ese string basura dentro de una variable?, es decir, junk='en la categoría', venga que por un ultimo intento no perdemos nada, así que probemos nuestro nuevo payload:

?categoria=';alert(junk)</script>&producto=<script>junk='


¡Eureka!, ahí esta nuestro deseado alert, sin mensajes del xss-auditor y sin ningún error de sintaxis que frene su ejecución, como ven no ha sido imposible, y ahora tenemos una url como prueba de concepto:

http://hlabdlinux/XSS_Reflected/vulnerable.php?categoria=';alert(a)</script>&producto=<script>a='

No es el caso, pero en una aplicación en producción, una falla de este tipo puede ser aprovechada por un usuario mal intencionado y en vez de un simple alert puede redireccionar a portales infectados con malware, obtener cookies, hacer campañas de phishing, conocer la ip del cliente, entre muchas otras cosas más, que como investigadores nosotros no haremos, ya que lo expuesto anteriormente solo es con fines educativos y como recordatorio de que ...
"Si estáis tratando de resolver un problema del que sois un experto, cuanta mayor sea la dificultad del problema, más se agudizarán y aumentarán vuestros talentos".