Red Dev Blog

En este blog encontrarás artículos relacionados con el desarrollo, hacking y el blue team

Blog Red Team Blue Team Desarrollo About
31 May 2023

Cross Site Scripting(XSS)

by RedDev

¿Qué es el XSS?

Denominamos XSS a la vulnerabilidad relacionada con la ejecución de código en una página donde tenemos un campo input, es decir donde podemos introducir texto, y encontramos alguna forma de que quede reflejado en el contenido, esto se denomina XSS reflejado, o La gracia de este caso es que este texto que introducimos, es interpretado como código HTML, por lo que podemos introducir scripts em javascript para poder por ejemplo robar las cookies de inicio de sesión y de esta forma logearnos con su cuenta.

image

¿Cómo se explota esta vulnerabilidad?

Imaginemos de que tenemos un blog, en el que nos encontramos una sección de comentarios, como el que tenemos al final de la sección, allí se quedarán guardados nuestros scripts, donde los ejecutarán otras personas al visualizar nuestro comentario, a esto se le llama Stored XSS o XSS persistente:

Detectemos la vulnerabilidad

Podeis probar introducir cualquier texto, y este se mostrará en la sección de comentarios, pero lo realmente interesante, viene al introducir por ejemplo la etiqueta h1 de html, la cual marca el texto como un título, podeis introducirlo y ver los cambios que genera.

<h1>Hola</h1>

Ahora, que hemos detectado la vulnerabilidad en la página, introduzcamos un script de javascript para que la página nos salude.

<script>alert('He hackeado la página')</script>

Al introducir este script, nos aparecerá un cuadrito con el mensaje. Pero en el caso de por ejemplo mandar un mensaje al administrador, podríamos enviar sus cookies de sesión a nuestro servidor, y de esta forma conseguir logearnos con su cuenta. Por ejemplo con el siguiente script, saldrá tu IP como anteriormente el mensaje

<script>
fetch('https://api.ipify.org?format=json')
        .then(function(response) {
          return response.json();
        })
        .then(function(data) {
          alert('data.ip');
        })
        .catch(function(error) {
          console.log(error);
        });
        </script>

### Comentarios

Esta página no es vulnerable a estos ataques ya que es de tipo estática, es decir no se recompila tras su creación como podéis comprobar, aunque podéis probar estos scripts en GOOGLE XSS Game



tags: XSS - Web - OWASP - TOP10 - pentesting