Underc0de

[In]Seguridad Informática => Seguridad web y en servidores => Mensaje iniciado por: Dedalo en Octubre 28, 2014, 02:53:23 PM

Título: Dom Xss Persistente
Publicado por: Dedalo en Octubre 28, 2014, 02:53:23 PM
Resulta que en estos días he tenido unos flashes de ideas en la cabeza que me han llevado a hacer algunas pruebas con javascript... Por mas que encontré el término por algunas páginas no encontré un ejemplo real de esto y con un poco de imaginación llegué a algo interesante... DOM-Based Xss PERSISTENTES... Primero un ejemplo rápido de DOM Xss...

Código (javascript) [Seleccionar]
<html>
<script type="text/javascript">
var prueba = location.hash;
document.write(prueba);
</script>
</html>


Guardamos ese código como dom.html (http://localhost/dom.html) lo abrimos y no pasa nada pero si ponemos algo como: http://localhost/dom.html#"><img src=x onerror=prompt(1337)> tenemos un bonito prompt... ahora... he estado haciendo pruebas con localStorage y WebSQL y bueno miren la siguiente situación.

Código (javascript) [Seleccionar]
<html>
<script type="text/javascript">
var msg;
var prueba = location.hash;
window.localStorage.prueba = prueba;
msg = window.localStorage.prueba;
document.write(msg);
</script>
</html>


Creamos un archivo con ese contenido y lo guardamos como dom1.html ingresamos y nos sale undefined verdad? ahora pongan http://localhost/dom1.html#"><img src=X onerror=prompt(1337)> como pueden ver salta el lindo prompt... se guardó en local y luego lo mostró en el sitio pero, ¿cómo confirmar esto?

Código (javascript) [Seleccionar]
<html>
<script type="text/javascript">
var msg;
msg = window.localStorage.prueba;
document.write(msg);
</script>
</html>


creamos un documento llamado dom2.html con el contenido de arriba e ingresamos... casi como magia verdad? como pueden ver se ha mostrado el contenido del xss de un documento en el otro debido a que estaba guardado temporalmente...

Me pareció interesante compartirlo porque se me ocurren algunas formas interesantes de explotación imagen solamente que este storage vulnerable esté en un util.js que se use en todas las páginas...


FUENTE (https://blog.dedalo.in/post/2014/10/27/Dom-Xss-Persistente) - Tweet Oficial (https://twitter.com/SeguridadBlanca/status/526754342192562176)


Saludos,
Dedalo
Título: Re:Dom Xss Persistente
Publicado por: blackdrake en Octubre 28, 2014, 08:25:48 PM
Muy bueno Dedalo, es más, se podría hacer algo de ingeniería social con esto, solo hay que pensar en algo... Jajaja

Saludos.
Título: Re:Dom Xss Persistente
Publicado por: Dedalo en Octubre 29, 2014, 02:52:47 PM
Gracias :) habría que ver como podemos orientarlo!
Título: Re:Dom Xss Persistente
Publicado por: G5 en Octubre 31, 2014, 01:17:11 AM
buen post. pero una suposicion, esto lo podriamos aprovechar de un sitio web "X" que maneje formularios y validacion lado cliente con .js pero dicho codigo quedaria alojado  por lo cual puede ser aprovechado para un desface pero no para pasar inalvertido segun mi punto de vista, aun que es un buen tema ya que se rompe el codigo con buen potencial aprobechable.
;)
Título: Re:Dom Xss Persistente
Publicado por: G5 en Octubre 31, 2014, 01:21:06 AM
bueno algo que se me acaba de ocurrir es una inyeccion  por medio de document.write mandar info a otro lugar, capturar cookies tambien, contraseñas y demas, pero se limita por el punto de vista anterior, que seria muy ruidoso, pero si sirve para un pentest dando a conocer que es vulnerable o para una especie de desface.