¿Qué se puede lograr con un sitio que es vulnerable a XSS y SQLi?

5

Un comentario sobre otra pregunta formulada (simplemente):

  

Hay formas en las que XSS y SQLi se pueden usar juntos.

Este es nuevo para mí, y tengo curiosidad por saber qué vectores de ataque adicionales podrían abrirse en un sitio web que es doblemente vulnerable a estos dos ataques. El único caso de uso que se me ocurre es si la vulnerabilidad de SQLi está presente en las páginas a las que solo pueden acceder usuarios autorizados: en ese caso, el XSS podría brindarle los privilegios que necesita para hacer que SQLi se desarrolle. Sin embargo, probablemente será imposible encontrar una vulnerabilidad de este tipo sin ser autenticado (en cuyo caso no necesita XSS), por lo que no creo que ese sea el escenario que el comentarista original tenía en mente.

¿Alguna otra idea sobre cómo estos dos pueden construirse y lograr algo juntos que podría no ser posible para una de estas vulnerabilidades individualmente?

    
pregunta Conor Mancone 10.08.2017 - 16:07
fuente

2 respuestas

7

Hay dos formas en que XSS y SQLi podrían interactuar. El comentario que citó es de esta pregunta y es claramente con respecto al primer punto.

SQLi a través de XSS

Si sabe que una aplicación es vulnerable a la inyección de SQL, pero no tiene los permisos necesarios para acceder al componente vulnerable, es posible que pueda aprovechar una vulnerabilidad de XSS existente y así obtener un usuario más privilegiado para realizar el SQL inyección para usted.

Como señala, la búsqueda de vulnerabilidades en componentes a los que no tiene acceso puede no ser tan fácil. Sin embargo, todavía hay al menos dos casos en que esto puede suceder fácilmente:

  • software de código abierto
  • Acceso temporal al código fuente (tal vez a través de un auditor externo, a través de filtraciones de correo electrónico, a través de un ex empleado descontento, a través de vulnerabilidades en su control de fuente, ...)

Para inyecciones muy simples, un atacante también puede simplemente adivinar un ataque (tal vez un atacante sepa que su aplicación no se defiende contra SQLi en absoluto, pero todas las inyecciones en los componentes a los que tienen acceso están usando una base de datos de usuarios con permisos restringidos ; aquí podrían ser capaces de adivinar los nombres de script y parámetros de otros componentes y explotarlos a través de XSS).

Teóricamente, también podría imaginar una configuración en la que los usuarios más privilegiados siempre estén utilizando una conexión de base de datos con un usuario más privilegiado de la base de datos, por lo que incluso una inyección en componentes públicos puede ser más potente si se explota a través de un usuario más privilegiado a través de XSS. / p>

Los últimos ejemplos son un poco artificiales, pero ciertamente posibles. Probablemente hay otros ejemplos también.

XSS a través de SQLi

En este caso, tiene una inyección SQL, pero no puede lograr nada interesante con ella. La inyección puede realizarse con un usuario de base de datos muy restringido, que, por ejemplo, solo puede leer datos ya disponibles públicamente (pero no puede leer otros datos, escribir datos, escribir o leer archivos del sistema, ejecutar comandos, etc.) tampoco existen vulnerabilidades en los dbms puedes explotar).

En este caso, es posible que pueda realizar un ataque XSS reflejado o almacenado a través de SQLi.

    
respondido por el tim 10.08.2017 - 17:45
fuente
2

Un ejemplo:

  • foro donde todos pueden publicar comentarios
  • los comentarios se desinfectan antes de colocarlos en la base de datos, es decir, se detectará cualquier intento de incluir un script
  • SQLi permite el acceso directo a la base de datos y, por lo tanto, hace posible agregar un comentario que no esté limpio o modificado en el comentario existente de esta manera, y de esta manera agregar un script al comentario
  • el sistema del foro asume comentarios desinfectados en la base de datos y solo mostrará el comentario tal como está almacenado en la base de datos, es decir, incluye el script - > XSS almacenado
respondido por el Steffen Ullrich 10.08.2017 - 17:39
fuente

Lea otras preguntas en las etiquetas