Dom Xss Persistente

Iniciado por Dedalo, Octubre 28, 2014, 02:53:23 PM

Tema anterior - Siguiente tema

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

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
<html>
<script type="text/javascript">
var prueba = location.hash;
document.write(prueba);
</script>
</html>


Guardamos ese código como dom.html (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) lo abrimos y no pasa nada pero si ponemos algo como: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta#"><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
<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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta#"><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
<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...


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Saludos,
Dedalo
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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.



Gracias :) habría que ver como podemos orientarlo!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

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.
;)
[ 1][0][1 ]
[ 1][1 ][0]
[ 0][0][ 0]
                              Trata a los demás como quieres que te traten.
                              Como quieres que te traten, trata a los demás.

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.
[ 1][0][1 ]
[ 1][1 ][0]
[ 0][0][ 0]
                              Trata a los demás como quieres que te traten.
                              Como quieres que te traten, trata a los demás.