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.
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
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
- requests
- Python 3
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
Uno de sus usos legítimos podría ser el descrito en el siguiente artículo:
cansina (este enlace se abre en una nueva ventana) por deibit (este enlace se abre en una nueva ventana)
Web Content Discovery Tool