martes, 8 de noviembre de 2016

BruteXSS - Identificación de Cross-site Scripting

BruteXSS desarrollada por Shawar Khan, es una herramienta escrita en python (que sólo necesita de dos dependencias Colorama y Mechanize) y que permite identificar de forma automatizada inyecciones de tipo Cross-site Scripting. Esta herramienta es posiblemente una de las más sencillas en cuanto a manejo y uso para la explotación de estas vulnerabilidades. Se trata de una herramienta que facilita el ataque a través de un asistente pudiendo parametrizar si los payloads XSS serán enviados por método GET o POST y si se utilizará el diccionario de payloads por defecto que tiene, o uno propio.

Ejemplo GET
COMMAND:  python brutexss.py
METHOD:   g
URL:      http://www.site.com/?parameter=value
WORDLIST: wordlist.txt

Ejemplo POST
COMMAND:   python brutexss.py
METHOD:    p
URL:       http://www.site.com/file.php
POST DATA: parameter=value&parameter1=value1
WORDLIST:  wordlist.txt

Img 1: BruteXSS - Ataque de Cross-site Scripting iniciado. Método POST.
La lista de payloads que tiene por defecto cuenta con un total de 25 tipos de XSS. Algo más que suficiente para realizar ataques de XSS.

Img 2: Payloads por defecto.
Tras lanzar la aplicación contra la URL a la que atacar se irán probando cada uno de los Payloads hasta determinar si alguno de ellos fue explotado satisfactoriamente. Además si la URL tiene más de un parámetro irá probando los payload del diccionario de forma recursiva.

Img 3: XSS explotado con BruteXSS.

Img 4: PoC XSS explotado con BruteXSS

Al estar diseñado en "formato" asistente ni tan siquiera tiene opciones de configuración del tipo -h --help.  Esto ya hace entender que la ejecución de la aplicación se hace de forma muy intuitiva.
Esta aplicación aun no se se encuentra en Kali Linux, aunque no creo que tarde mucho en estarlo. Igualmente se trata de una herramienta ligada al  Netsparker.

BruteXSS: https://github.com/shawarkhanethicalhacker/BruteXSS

Prueba de concepto en video