Cross Site "Scripter" (XSSer) es un framework automático para detectar, explotar y reportar vulnerabilidades de tipo Cross-Site Scripting (XSS) en aplicaciones Web. Contiene opciones para tratar de saltear ciertos filtros, y varias técnicas de inyección de código.

Este artículo explica cómo instalar XSSer y cómo escanear un target en búsqueda de vulnerabilidades XSS utilizando esta herramienta.



Los ataques Cross-site scripting (XSS) permiten inyectar scripts que se ejecutan del lado cliente en páginas Web vistas por otros usuarios. Típicamente son utilizados para el robo de sesiones y vulnerar políticas same-origin.

Generalmente estos ataques se explotan inyectando código JavaScript en variables GET/POST que toman contenido y lo imprimen directamente en la salida (sin sanitizar). Este tipo de ataque básico se denomina XSS reflejado. Un clásico ejemplo es la inyección en cuadros de búsqueda, donde la palabra buscada aparece literalmente en los resultados de la búsqueda.

Sin embargo también es posible inyectar variables que guardan su contenido directamente en bases de datos. Contenido que luego es leído y enviado a una salida por otro script. Este ataque se denomina XSS persistente, pues el payload queda almacenado en el servidor Web. Un ejemplo típico es el caso de inyección de código JavaScript en comentarios en foros/blogs.

Las herramientas automáticas pueden ayudar a detectar rápidamente las vulnerabilidades más evidentes. Aunque, nada tiene mayor efectividad (al momento de detectar y explotar vulnerabilidades) que un ataque manual realizado de manera artesanal por un auditor o especialista en seguridad informática.

Este artículo presenta XSSer, su instalación y uso básico para auditar una aplicación Web.

Instalación de XSSer

Descargar la última versión de XSSer desde el sitio oficial:

root@devuan:~# wget https://xsser.03c8.net/xsser/xsser_1.7-1.tar.gz

XSSer está desarrollado en Python. Instalar las dependencias necesarias para su correcto funcionamiento:

root@devuan:~# apt-get install python-pycurl python-xmlbuilder python-beautifulsoup python-geoip

Extraer el paquete:

root@devuan:~# tar xzf xsser_1.7-1.tar.gz
root@devuan:~# cd xsser_1.7-1/xsser-public/

Instalar XSSer ejecutando el script setup.py:

root@devuan:~/xsser_1.7-1/xsser-public# python setup.py install

XSSer tiene muchas opciones y parámetros. Para poder trabajar inmediatamente, sin necesidad de examinar todos los parámetros y opciones una por una, cuenta con una interfaz gráfica. Para lanzar XSSer en modo gráfico ejecutar:

root@devuan:~/xsser_1.7-1/xsser-public# xsser --gtk

Escaneo básico de una aplicación Web

Para comenzar un scan que permita detectar vulnerabilidades en todo un sitio o aplicación Web, sólo basta especificar su URL en el cuadro de texto próximo a "Fly mode(s)" y seleccionar el modo "Intruder":

Tildar las casillas "ALL" y "Local only" para que se audite el completamente el objetivo. Luego presionar el botón "Aim!" para establecer la línea de comando, la cual podrá ser modificada a gusto. Finalmente presionar el botón "FLY!!!" para comenzar el scan:

Al finalizar, muestra un resumen en la parte inferior, el cual incluye la duración, total de conexiones, total de inyecciones, falsos positivos y vulnerabilidades. En este ejemplo no se encontró ninguna, lo cual no significa que no existan, sólo significa que la herramienta no pudo detectarlas:

Las opciones avanzadas se encuentran en la pestaña "Configure". Por defecto utiliza, para este tipo de escaneo, 10 hilos de ejecución (cantidad de solicitudes HTTP concurrentes) con un delay de 5 segundos entre solicitudes (para no sobrecargar al servidor target) y el User-Agent correspondiente al bot de Google (para disimular).

Adicionalmente soporta diferentes mecanismos de autenticación, ataques blind XSSl, exploits a distintos WAF (Web Application Firewall, como por ejemplo PHPIDS y ModSecurity), técnicas avanzadas de ofuscación y más.

En el modo "Explorer", XSSer tiene la posibilidad de utilizar dorks y buscar víctimas potenciales en motores de búsqueda.

Es importante destacar que los ataques XSS suelen ser un tanto menospreciados por los administradores de sistemas, pues no afectan a los sistemas directamente sino a sus usuarios. Sin embargo no es aceptable que nuestros usuarios sean víctimas de ataques a través de nuestros sitios Web. Por otro lado, más allá de no comprometer directamente a un servidor, los ataques XSS pueden ser el primer eslabón de una cadena de escalada de privilegios. Imaginen que a través de un ataque XSS se robe una sesión de un usuario administrador de la aplicación Web, el cual tiene privilegios para subir contenido al sitio, por ejemplo imágenes. Pero a causa de una pobre validación de entrada en la aplicación el atacante logra subir código ejecutable al servidor, por ejemplo una shell PHP. Las consecuencias podrían llegar a ser desastrosas.

DISCLAIMER: Las técnicas explicadas en este artículo tienen fines informativos y educativos. El uso de estas técnicas para atacar, dañar, penetrar o perjudicar de alguna forma sistemas de terceros es ilegal y puede estar penada por la ley en diferentes países.


Tal vez pueda interesarte


Compartí este artículo