Wapiti es una herramienta gratuita y de código abierto que se utiliza para realizar escaneos de vulnerabilidades en aplicaciones web. Está diseñada para ayudar a los profesionales de la seguridad a identificar posibles fallos en la seguridad de un sitio web mediante la emulación de ataques comunes, como inyecciones SQL, cross-site scripting (XSS), inclusión de archivos locales (LFI) y mucho más.
Wapiti es una herramienta para realizar pruebas de seguridad en aplicaciones web, que sigue un enfoque llamado black-box testing (pruebas de caja negra). Esto significa que no analiza el código fuente de la aplicación, sino que interactúa con la aplicación web de la misma forma que lo haría un usuario, identificando vulnerabilidades en las entradas y salidas de los datos.
Wapiti está disponible en los repositorios oficiales de Kali Linux, por lo que la instalación es simple. Sigue estos pasos:
1. Actualizar los repositorios de Kali Linux:
Asegúrate de tener tus repositorios actualizados antes de instalar cualquier herramienta:
sudo apt update && sudo apt upgrade
2. Instalar Wapiti:
Ejecuta el siguiente comando para instalar Wapiti desde los repositorios:
sudo apt install wapiti
3. Verificar la instalación:
Una vez instalada la herramienta, verifica su instalación ejecutando:
wapiti --version
Esto mostrará la versión de Wapiti que tienes instalada.
El uso básico de Wapiti se enfoca en escanear un sitio web para detectar vulnerabilidades. Para iniciar un escaneo, simplemente proporciona la URL del sitio web objetivo.
wapiti http://ejemplo.com
[+] Parsing http://ejemplo.com
[+] Launching module 'sql'...
[+] Launching module 'xss'...
[+] Launching module 'file'...
[+] Launching module 'backup'...
...
Wapiti analizará el sitio web e intentará detectar posibles vulnerabilidades, explorando formularios, parámetros GET/POST y cookies. Si detecta alguna vulnerabilidad, la reportará en la salida o la guardará en un archivo de informe.
Wapiti ofrece muchas opciones avanzadas para personalizar los escaneos. A continuación, te mostramos las opciones más comunes y útiles.
Puedes especificar el objetivo utilizando la URL del sitio que deseas escanear:
wapiti http://ejemplo.com
Si deseas limitar el escaneo a un determinado subdirectorio del sitio, puedes especificar una URL más precisa:
wapiti http://ejemplo.com/subdirectorio/
Wapiti sigue los enlaces internos del sitio web para explorar diferentes páginas. Puedes definir la profundidad máxima de los enlaces a seguir con la opción --depth
.
Por ejemplo, para limitar el escaneo a una profundidad de 2 niveles, puedes ejecutar:
wapiti http://ejemplo.com --depth 2
Wapiti cuenta con diferentes módulos de escaneo para detectar tipos específicos de vulnerabilidades. Los módulos más comunes incluyen:
sql
).
xss
).
file
).
backup
).
Si solo deseas ejecutar un módulo específico, puedes usar la opción --module
. Por ejemplo, para realizar un escaneo solo de SQL Injection, utiliza:
wapiti http://ejemplo.com --module sql
Para ejecutar múltiples módulos, puedes separarlos por comas:
wapiti http://ejemplo.com --module sql,xss,file
Si necesitas escanear un sitio web que requiere autenticación, puedes proporcionarle a Wapiti cookies o encabezados HTTP personalizados. Esto es útil si necesitas escanear una aplicación web protegida por autenticación de sesión o autenticación por tokens.
wapiti http://ejemplo.com --cookie "PHPSESSID=abc123"
Si tu aplicación utiliza encabezados HTTP para autenticarse (como Authorization), puedes especificarlo con la opción --header
:
wapiti http://ejemplo.com --header "Authorization: Bearer token12345"
Si deseas excluir ciertos archivos, rutas o parámetros de la búsqueda, puedes usar la opción --exclude
:
wapiti http://ejemplo.com --exclude "logout,admin"
Esto evitará que Wapiti siga enlaces que contengan los términos "logout" o "admin".
Para evitar que el escaneo siga enlaces a otros dominios externos, utiliza la opción --scope
. Esto garantiza que Wapiti solo escanee URLs dentro del mismo dominio que especificaste.
wapiti http://ejemplo.com --scope page
Wapiti te permite exportar los resultados del escaneo en varios formatos, como HTML, JSON, XML y TXT. Utiliza la opción -o
para especificar el nombre y formato del archivo de salida.
wapiti http://ejemplo.com -o informe.html
wapiti http://ejemplo.com -o informe.json
Si necesitas realizar el escaneo a través de un proxy (por ejemplo, para ocultar tu IP o realizar pruebas en entornos restringidos), Wapiti te permite especificar los detalles del proxy con la opción --proxy
.
wapiti http://ejemplo.com --proxy http://127.0.0.1:8080
wapiti http://ejemplo.com --proxy socks5://127.0.0.1:1080
Una vez finalizado el escaneo, Wapiti generará un informe detallado con todas las vulnerabilidades encontradas. Dependiendo del formato que elijas, el informe contendrá información como:
<html>
<head>
<title>Informe de Wapiti</title>
</head>
<body>
<h1>Informe de vulnerabilidades para http://ejemplo.com</h1>
<p>Escaneado el: 2023-09-21</p>
<h2>Vulnerabilidades encontradas:</h2>
<ul>
<li><strong>SQL Injection</strong> encontrada en: http://ejemplo.com/search.php?q=test</li>
<li><strong>Cross-Site Scripting (XSS)</strong> encontrada en: http://ejemplo.com/comment.php?id=123</li>
</ul>
</body>
</html>
{
"target": "http://ejemplo.com",
"scan_date": "2023-09-21",
"vulnerabilities": [
{
"type": "SQL Injection",
"url": "http://ejemplo.com/search.php?q=test"
},
{
"type": "Cross-Site Scripting (XSS)",
"url": "http://ejemplo.com/comment.php?id=123"
}
]
}
Wapiti es una herramienta poderosa y fácil de usar para realizar escaneos de vulnerabilidades web desde la línea de comandos. Gracias a su capacidad para detectar múltiples tipos de vulnerabilidades, su soporte para autenticación, y su flexibilidad en cuanto a personalización de los escaneos, Wapiti es ideal para profesionales de seguridad que necesiten realizar auditorías rápidas y detalladas de aplicaciones web.
Jorge García
Fullstack developer