Dom
Last updated
Last updated
Entramos en la ultima prueba de XSS que es el DOM, en la cual nos encontramos un select
el cual al hacer click nos genera la siguiente url
Como en el reflejado vamos a vamos a probar el ataque básico de alert en la url a ver que sucede.
Y vemos que el ataque tiene efecto.
Vamos al nivel medio y como siempre empezamos a probar por el ataque mas sencillo y vemos que no funciona.
Si nos fijamos en el código, vemos que usa stripos que encuentra la posición de la primera aparición de un substring en un string sin considerar mayúsculas ni minúsculas; por lo que al usar el tag script, nos redirecciona a la url por defecto.
Como hemos visto en otro ejemplo de XSS, vamos a utilizar los eventos de HTML, por lo que probamos la siguiente url
Quedándose como en el anterior caso, pero vamos a inspeccionar el elemento por si sucedió algo.
Podemos observar que, el código que insertamos en la URL se nos ha metido dentro del option, por lo que tenemos que cerrar el option y el select para que lo escriba fuera.
Al hacer esto observamos que la inyección de código a sido exitosa.
Vamos con el ultimo nivel de XSS, si probamos todos los ataques anteriores vemos que el select ni se entera de que esta pasando.
Si nos fijamos en el código, observamos que comprueba con un switch si es un valor valido.
En las URLs existen las anclas que se utilizando usando #. La parte que se se encuentra posterior a la # no se envía al servidor, por lo que no se puede filtrar.
Al probar la anterior url nos encontramos con que se pinta en el select
Esto es debido a una mala programación del JavaScript que renderiza la página.
Que como vemos pinta tal cual llega de la URL lo que hay en default, por lo que si ejecutamos la siguiente URL
Conseguimos realizar el ataque.