CROSS SITE SCRIPTING (XSS) – PRUEBAS DE VULNERABILIDAD

ByDrok3r

CROSS SITE SCRIPTING (XSS) – PRUEBAS DE VULNERABILIDAD

Comparte este contenido en tus redes sociales!

XSS

 

Antes de comenzar a leer este post te recomiendo leer: Cross Site Scripting – Introducción

 

Una vez localizada la sección en la página web la cual pueda recibir texto por parte del usuario y que este lo pueda mostrar como resultado, pasaremos a realizar pruebas para de esta manera determinar si esta sección es vulnerable al XSS.

Este sitio web es completamente vulnerable a multitud de ataques web, el cual usaremos para explicar esta sección. También usaremos el Mantra de OWASP.

En el caso de este sitio encontramos el apartado para hacer búsquedas. Como podemos ver de resultado nos devuelve nuestra entrada y aparte nos la muestra en la url “search.aspx?txtSearch=drok3r” en esta sección es donde comprobaremos si la pagina es vulnerable a XSS

Para esto ingresamos el siguiente código:

<script>alert("Hacked!!!")</script>

Este código lo que hace es mostrar una alerta en la página web la cual contenga el texto dentro de las casillas. Algunos pentesters o atacantes suelen llamarlos “payload”

Como podemos ver, la pagina es vulnerable a XSS

Sin embargo el código anterior puede que no funcione en la mayoría de los casos debido a ciertos filtros de seguridad Anti-XSS los cuales rechazan o imposibilitan el uso de ciertos caracteres o de palabras en concreto. La mayoría de estos filtros, bloquean caracteres como <>, “”, (), ; , /.

Por otro lado algunos bloquean las etiquetas de forma completa <script> esto dificulta en gran medida verificar si la pagina es vulnerable a XSS por lo que pasaríamos a comprometer su seguridad y brincarnos su filtro Anti XSS.

QUE SE PUEDE HACER AL DETECTAR UNA VULNERABILIDAD XSS

Como siempre se ha dicho, las posibilidades dependerán de la imaginación del atacante, en el post anterior se hizo mención de que es lo se podría realizar con un ataque de XSS de una manera muy general. Sin embargo lo que se puede hacer es:

  • Infectar el navegador de un usuario
  • Phishing
  • Realizar X acción en la página web
  • Modificar o crear perfiles en la aplicación web ya sean de usuarios comunes o administradores
  • Defacement
  • Ataques DDoS
  • Utilización de Gusano XSS

Sin embargo las posibilidades dependerán en su gran mayoría dependerán de las funciones que ofrezca el sitio vulnerable.

MÉTODOS PARA EXPLOTAR XSS

Existen distintos métodos o tecnias para explotar un XSS, su nombre dependerá de las zonas de código de la aplicación web donde quedara nuestro código JavaScript malicioso.

1.- El código se copia entre dos etiquetas HTML.

Este es el método mas snecillo, pues solo debemos de inyectar el código.

[PAYLOAD]: <script>alert(“HACKED”)</script>

2.- Código dentro de una etiqueta “value” de una etiqueta <input>

Este es el ejemplo mencionado con anterioridad, en donde la inyección se realiza en el buscador de la aplicación web

 [PAYLOAD]: /><script>alert(‘hacked’)</script>

HTML: <input type=”text” name=”search” value=”[PAYLOAD]”

<input type=”text” name=”search” value=”/>

<script>alert(‘hacked’)</script>

Como podemos ver, nuestro payload quedo dentro de “” por lo que esto nos puede generar ciertos problemas, por lo cual podemos cerrar la etiqueta anteponiendo “/> o remplazando las comillas dobles de nuestro payload por unas comillas simples: <script>alert(‘hacked’)</script>

Recomiendo probar ambas.

Por lo cual nos quedaría como resultado:

<input type=”text” name=”search” value=””/>
<script>alert(“hacked”)</script>;<div class=””>

3.- Código dentro de un comentario en HTML

En este caso, buscamos mensajes de depuracion en el codigo HTML, algunas desarroladores tienen la mala costumbre de dejar algo como esto:

<!-- Se realizo la busqueda "[search]" -->

[search] es la cadena de texto buscada, en donde podemos introducir nuestro codigo malicioso, en donde deberemos de cerrar los caracteres del comentario, nos quedaria algo como lo siguiente:

--><script>alert("hacked")</script><!--

El resultado final seria:

<!-- Se realizo la busqueda "--><script>alert("hacked")</script><!---" --->

4.- Código dentro de código

Algo muy comun cuando las paginas utilizan las entradas de los usuarios para generar algun tipo de evento, por medio de JavaScript o el simple hecho de almacenar la informacion. algo como:

<script>var search="[busqueda]"</script>

 

En este ejemplo no es necesario incluir las etiquetas <script>, pues podemos directamente poner el codigo. No poner las etiquetas nos puede ayudar a evadir los filtros Anti-XSS.

";alert"("Hacked")//

Las diagonales al final nos ayudan a comentar el resto de la linea del JavaScript original para que este no interfiera con el codigo.

Resultado final

<script> var search="[busqueda]"="";alert("Hacked");//";</script>

 

 

EXTRA

También podemos realizar pruebas de inyección de código HTML, de igual manera que en el XSS solo que en lugar de mandar condigo en JavaScript mándalos código en HTML. Por ejemplo si nuestra aplicación web a auditar nos permite realizar búsquedas dentro de ella misma, si en el resultado incluye o muestra nuestra búsqueda “Resultados de <TEXTO>“.

Ejemplo:

Si buscamos “hola” en www.ejemploHTML.com  nos devolverá lo siguiente:

Resultados de la búsqueda hola

Y en la url tenemos:

https://ejemplo.HTML.com/Search.php?q=hola

Podemos ver que en la url nos muestra nuestra búsqueda o el texto que ingresamos para ser buscado…

Lo podemos hacer para comprobar que esta pagina es vulnerable a inyección de código HTML solo debemos incluir en nustra busqueda etiquetas HTML.

Por ejemplo en lugar de buscar “hola” buscaremos “<b>hola</hola>” en html las etiquetas <b> o <strong> hacen que el texto que contengan se muestre en negritas, por lo que cuando hagamos esta busqueda nos debería devolver el siguiente resultado:

Resultados de la búsqueda hola

Y en la url tenemos:

https://ejemplo.HTML.com/Search.php?q=hola

Si en la parte de la pagina nos muestra el texto introducido en negrita, quiere decir que la pagina es vulnerable a inyecciones de código HTML. Muy similar al XSS.

En el video anterior muestro una vulnerabilidad de XSS e inyeccion de codigo HTML

 

 

Pagina Vulnerable:

[ http://demo.testfire.net/default.aspx ]

Comentarios de Facebook

About the author

Drok3r author