Cansina Herramienta de Descubrimiento de Contenidos Web
Cansina Herramienta de Descubrimiento de Contenidos Web

Cansina: Herramienta de Descubrimiento de Contenidos Web

Cansina es una aplicación de descubrimiento de contenidos web.

Es bien sabido que las aplicaciones web no publican todos sus recursos o enlaces públicos, por lo que la única forma de descubrir estos recursos es solicitándolos y comprobando la respuesta.

El deber de Cansina es ayudarte a hacer peticiones y filtrar e inspeccionar las respuestas para distinguir si se trata de un recurso existente o simplemente de un molesto o disfrazado 404.

Las peticiones de características y los comentarios son bienvenidos.

¡Pruébalo!

Cansina está incluido en BlackArch Linux,

Ejemplo uso de Cansina
Ejemplo uso de Cansina

Velocidad

¿Quieres que Cansina corra más rápido?

Cansina descarga el contenido de la página para su inspección por defecto (Sip, Cansina no corre por velocidad). pero puedes deshabilitar las peticiones GET y hacerlas HEAD (sin descarga del cuerpo de la página). Además, no imprimas la elegante interfaz de la terminal (perderás algunos puntos de hacking).

  • Poner -H para hacer las peticiones más ligeras
  • Poner --no-progress para no imprimir información extravagante en la pantalla
  • Aumentar los hilos por defecto a diez con -t 10 (o incluso más si no le importa el ruido y los intentos fallidos)

Visor de árbol integrado

Cansina integra un visor de árboles (gracias al paquete asciitree) para dar salida a los resultados almacenados en la base sqlite del proyecto (código de estado http 200 por ahora).

./cansina.py -V output/http_testphp.vulnweb.com.sqlite
Visor de árbol de Cansina
Visor de árbol de Cansina

Windows

No se ha probado en Windows. Debería funcionar con --no-progress

Instalación

Ejecuta los siguientes comandos:

git clone --depth=1 https://github.com/deibit/cansina
cd cansina
pip install -r requirements.txt

Desde la versión etiquetada como Py27, Cansina está hecha con Python 3.x en mente.

Última versión con soporte para Python 2.7

Dependencias

Listas de palabras:

Uso

La Wiki está llena de documentación y ejemplos. Pero, como ejemplo rápido:

Hay dos parámetros obligatorios: ‘-u‘ con la URL de destino y ‘-p‘ con la carga útil deseada.

python3 cansina.py -u <site_url> -p <payload_file>

Resumen de ayuda:

python3 cansina.py -h

Opciones

usage: cansina.py -u url -p payload [options]

Cansina is a web content discovery tool. It makes requests and analyze the
responses trying to figure out whether the resource is or not accessible.

optional arguments:
  -h, --help            show this help message and exit
  -A AUTHENTICATION     Basic Authentication (e.g: user:password)
  -C COOKIES            your cookies (e.g: key:value)
  -D                    Check for fake 404 (warning: machine decision)
  -H                    Make HTTP HEAD requests
  -P PROXIES            Set a http and/or https proxy (ex:
                        http://127.0.0.1:8080,https://...
  -S                    Remove ending slash for payloads
  -T REQUEST_DELAY      Time (a float number, e.g: 0.25 or 1.75) between
                        requests
  -U                    Make payload requests upper-case
  -a USER_AGENT         The preferred user-agent (default provided)
  -b BANNED             List of banned response codes
  -B UNBANNED           List of unbanned response codes, mark all response as
                        invalid without unbanned response codes, higher
                        priority than banned
  -c CONTENT            Inspect content looking for a particular string
  -d DISCRIMINATOR      If this string if found it will be treated as a 404
  -e EXTENSION          Extension list to use e.g: php,asp,...(default none)
  -o OUTPUT             Write (append) results in CSV format to a file; -o
                        <filename>
  -p PAYLOAD            A single file, a file with filenames (.payload) or a
                        directory (will do *.txt)
  -s SIZE_DISCRIMINATOR
                        Will skip pages with this size in bytes (or a list of
                        sizes 0,500,1500...)
  -t THREADS            Number of threads (default 4)
  -u TARGET             Target url
  -r RESUME             Resume a session
  -R                    Parse robots.txt and check its contents
  --recursive           Recursive descend on path directories
  --no-persist          Do not Use HTTP persistent connections
  --full-path           Show full path instead of only resources
  --show-type           Show content-type in results
  --no-follow           Do not follow redirections
  --line CONTINUE_LINE  Continue payload in line <n>
  --resumer             Save session in a file
  --headers HEADERS     Set personalized headers: key=value;key=value...
  --capitalize          Transform 'word' into 'Word'.
  --strip-extension     Strip word extension: word.ext into word
  --alpha               Filter non alphanumeric words from wordlist
  --no-progress         Don't show tested words and progress. (For dumb
                        terminals)
  --no-colors           Don't use output colors to keep output clean, e.g.
                        when redirecting output to file

License, requests, etc: https://github.com/deibit/cansina

Características

  • Persistencia de datos con base de datos sqlite
  • Salida opcional en formato CSV
  • Multihilo
  • Multiextensión
  • Cabeceras personalizadas
  • Múltiples listas de palabras de directorios
  • Detección de contenido
  • Filtro de resultados por tamaño
  • Filtro de resultados por contenido
  • Patrón de URL (***) para interpolar cadenas
  • Soporte de SSL
  • Soporte de proxy
  • Autenticación básica
  • Cookie jar
  • Reanudación
  • Recurrencia de rutas
  • Conexiones persistentes
  • Herramientas complementarias

Importante

Esta herramienta está pensada para ser utilizada en un contexto lícito y legal, es decir, por ejemplo, una prueba de penetración para la que se le ha proporcionado autorización previa.

Uno de sus usos legítimos podría ser el descrito en el siguiente artículo:

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda