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
cve-2021-41773-lab — Laboratorio educativo de FastAPI que demuestra el recorrido de directorios y la inclusión local de archivos de CVE-2021-41773, con un servidor vulnerable, código parcheado y ejemplos de payloads codificados para la formación local en seguridad. | Kitploit
Herramientas/GitHubGitHub/kunalkhandelwal-dev/cve-2021-41773-lab
Análisis de VulnerabilidadesExplotación de Aplicaciones WebSeguridad WebAprendizaje y EducaciónLabs y Práctica
GitHubkunalkhandelwal-dev/cve-2021-41773-lab

cve-2021-41773-lab

Laboratorio educativo de FastAPI que demuestra el recorrido de directorios y la inclusión local de archivos de CVE-2021-41773, con un servidor vulnerable, código parcheado y ejemplos de payloads codificados para la formación local en seguridad.

Ver Repositorio
2hace 1 mesAún no revisado

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

CVE-2021-41773 — Laboratorio mínimo con FastAPI

Un pequeño laboratorio FastAPI autónomo que demuestra cómo decodificar la entrada del usuario antes de validar los límites del sistema de archivos puede conducir a un directory traversal y a la inclusión local de archivos (LFI), modelado a partir de los problemas del servidor Apache HTTP CVE-2021-41773.


Características

  • Ejemplos FastAPI mínimos y fáciles de leer: un servidor vulnerable y un servidor parcheado
  • Demuestra bypass con codificación simple (%2e) y doble codificación (%252e)
  • El endpoint raíz incluye payloads rápidos para probar con curl
  • No requiere Docker — se ejecuta localmente con uvicorn

Estructura del repositorio

  • patched_app.py — implementación segura (usa comprobaciones de ruta canónica)
  • vulnerable_app.py — implementación intencionalmente vulnerable
  • secret.txt — archivo secreto fuera de los límites usado como objetivo del exploit
  • webroot/test.txt — archivo público servido por el ejemplo
  • README.md — este archivo

  • Requisitos

    • Python 3.8+
    • pip

    Instalar dependencias de ejecución:

    root@kitploit:~
    pip install fastapi uvicorn
    

    Inicio rápido

    1. Crear y activar un entorno virtual (ejemplo con PowerShell en Windows):
    root@kitploit:~
    python -m venv venv
    .\venv\Scripts\activate
    
    1. Instalar las dependencias:
    root@kitploit:~
    pip install fastapi uvicorn
    
    1. Ejecutar el servidor vulnerable (puerto 8011):
    root@kitploit:~
    uvicorn vulnerable_app:app --port 8011
    

    Abrir http://127.0.0.1:8011/ en el navegador — el endpoint raíz muestra payloads comunes y notas.

    Para observar la corrección, detenga el servidor vulnerable y ejecute el servidor parcheado:

    root@kitploit:~
    uvicorn patched_app:app --port 8011
    

    Ejemplos de peticiones (curl)

    • Acceso normal a un archivo público:
    root@kitploit:~
    curl --path-as-is http://localhost:8011/icons/test.txt
    
    • CVE-2021-41773 (codificación simple) — evita comprobaciones de límites ingenuas:
    root@kitploit:~
    curl --path-as-is "http://localhost:8011/icons/.%2e/secret.txt"
    
    • CVE-2021-42013 (doble codificación) — evita filtros que no decodifican repetidamente:
    root@kitploit:~
    curl --path-as-is "http://localhost:8011/icons/.%252e/secret.txt"
    

    Contra el servidor vulnerable, estos payloads pueden devolver secret.txt. Contra el servidor parcheado deberían ser rechazados (HTTP 403).


    Cómo funciona el parche (a alto nivel)

    1. Decodificar completamente la ruta entrante (manejar múltiples capas de codificación).
    2. Resolver la ruta canónica del sistema de archivos con os.path.realpath().
    3. Verificar que la ruta resuelta esté dentro del directorio webroot previsto — denegar en caso contrario.

    Esto impone el orden correcto: decodificar → canonicalizar → autorizar.


    Seguridad y uso

    Este repositorio es solo para uso educativo y local. No exponga el servidor vulnerable a redes públicas.


    Licencia

    MIT License


    Autor

    Kunal Khandelwal — Security Researcher, Application Security

    Descargar herramienta