NoXss Escáner XSS Soporta Reflected-XSS y DOM-XSS
NoXss Escáner XSS Soporta Reflected-XSS y DOM-XSS

NoXss: Escáner XSS Rápido, Soporta Reflected-XSS y DOM-XSS

NoXss es un escáner de vulnerabilidad cross-site (sitios cruzados) que soporta Reflected XSS y XSS basado en DOM. Es muy rápido y adecuado para probar millones de URLs. El autor ha encontrado algunas vulnerabilidades XSS en el programa Bug Bounty.

El XSS no persistente, también llamado XSS reflejado (Reflected-XSS), es el tipo más básico de vulnerabilidad de cross-site scripting. Una aplicación web vulnerable muestra entradas no validadas recibidas del navegador del usuario y ejecuta cualquier código JavaScript que contenga.

Aprende con EsGeeks

DOM XSS significa Document Object Model-based Cross-site Scripting. Un ataque XSS basado en el DOM es posible si la aplicación web escribe datos en el DOM sin una sanitización adecuada. El atacante puede manipular estos datos para incluir contenido XSS en la página web, por ejemplo, código JavaScript malicioso.

NoXss soporte Reflected-XSS y DOM-XSS
NoXss soporte Reflected-XSS y DOM-XSS

Características

  • Rápido y adecuado para probar millones de URLs
  • Soporta XSS basado en DOM (usa Chrome o Phantomjs) y Reflected XSS
  • Sólo utiliza 8 Payloads basados en la posición de inyección (no fuzz, más preciso, más rápido)
  • Solicitudes asíncronas (usa gevent) y multiproceso
  • Soporta URL, archivo y tráfico desde Burpsuite
  • Filtro de tráfico basado en la interfaz
  • Soporta cabeceras especiales (referer, cookie, token personalizado, etc.)
  • Soporta reexaminar rápidamente por ID

Instalación

Entorno

  • Linux
  • Python2.7
  • Navegador: Phantomjs o Chrome

Ubuntu

apt-get install flex bison phantomjs
pip install -r requirements.txt
Instalar NoXss en Linux
Instalar NoXss en Linux

CentOS

yum install flex bison phantomjs
pip install -r requirements.txt

macOS

brew install grep findutils flex phantomjs
pip install -r requirements.txt

Si quieres escanear utiliza “--browser=chrome“, debes instalar Chrome manualmente. Puedes utilizar “--check” para probar la instalación.

python start.py --check

Uso

python start.py --url url --save
python start.py --url url --cookie cookie --browser chrome --save  
python start.py --url url --cookie cookie --browser chrome-headless --save  
python start.py --file ./url.txt --save  
python start.py --burp ./test.xml --save  
python start.py --file file --filter

Opciones

  • --url : Escanear desde la URL.
  • --id : Volver a escanear desde el archivo *.traffic por el id de la tarea.
  • --file : Escanear URLs desde un archivo de texto (como ./url.txt).
  • --burp : Escanear *.xml (codificado en base64, como ./test.xml) desde el proxy burpsuite.
  • --process : Número de procesos.
  • --coroutine : Número de coroutine.
  • --cookie : Utilizar cookies.
  • --filter : Filtrar las URLs.
  • --browser : Utiliza el navegador (chrome, chrome-headless o phantomjs) para escanear, es bueno en XSS basado en DOM, pero es lento.
  • --save : Guardar los resultados en ./resultado/id.json.
  • --clear : Eliminar los archivos de tráfico después del escaneo.

Cómo escanear los datos de Burpsuite

En el Proxy, “Save items” ==> “test.xml

Escanear datos desde Burpsuite
Escanear datos desde Burpsuite

A continuación, puedes escanear test.xml:

python start.py --burp=./test.xml

Cómo volver a escanear

Después de escanear primero, habrá taskid.traffic y taskid.reflect en ./traffic/:

  • taskid.traffic: El tráfico web de la solicitud (pickled).
  • taskid.reflect: Resultado reflejado (pickled) que incluye parámetros reflejados, posición reflejada, tipo y otros.

NoXss utilizará estos archivos intermedios para volver a escanear:

python start.py --id taskid --save

¿Cómo funciona NoXss?

Payloads

NoXss utiliza sólo 8 payloads para el escaneo. Estos payloads se basan en la posición reflejada del parámetro. Un menor número de payloads lo hace más rápido que el fuzzing.

Asíncrono y multiproceso

NoXss es altamente concurrente por usar coroutine.

Soporta XSS basado en DOM

NoXss puede analizarlo con Phantomjs (por defecto) o con Chrome.

Análisis de archivos

Algunos XSS son difíciles de escanear. NoXss guardará algunos archivos en traffic/ para analizarlos, incluyendo:

  • *.traffic (archivo de tráfico durante el escaneo)
  • *.reflect (resultado reflejado del parámetro)
  • *.redirect (respuesta 30x)
  • *.error (algunos errores ocurridos como tiempo de espera, reinicio de la conexión, etc.)
  • *.multipart (cuando la solicitud es multiforme, no es fácil de escanear)

Ejemplo

Como se ve en la captura de pantalla, la PoC es https://xxx/?proxyAccount=xssjs%22%3B&shareName=duhxams, Eso significa utilizar el payload xssjs%22%3B en el parámetro “proxyAccount”:

Ejemplo con NoXss
Ejemplo con NoXss

A continuación, puedes finalizar el doble uso de la carga útil xssjs";alert(1);//. El exploit final es:

https://xxx.com/?proxyAccount=xssjs";alert(1);//&shareName=duhxams
Más artículos
PhantomDoor Hacking Windows Linux macOS Android backdoor
PhantomDoor: Hacking Windows/Linux/macOS/Android con backdoor