
Demuestra la vulnerabilidad Zip Slip (CVE-2019-10743) con un servidor basado en Docker y un script de explotación en Python para path traversal mediante archivos ZIP maliciosos.
Este proyecto demuestra la vulnerabilidad Zip Slip (CVE-2019-10743) usando la versión vulnerable del paquete mholt/archiver.
Zip Slip es una vulnerabilidad descubierta por los investigadores de seguridad de Snyk. Se encontró que la vulnerabilidad afecta a múltiples paquetes que se utilizan en producción. La vulnerabilidad puede ser explotada para causar problemas como:
mholt/archiver es un paquete Go que proporciona una API simple y consistente para trabajar con archivos comprimidos y de almacenamiento. Soporta formatos como .zip, .tar, .tar.gz, .7z o .rar.
mholt/archiver../../../../../tmp/hacked.txt)# Iniciar el servidor vulnerable
./docker-run.sh start
# Detener el servidor
./docker-run.sh stop
# Ver logs
./docker-run.sh logs
# Limpiar
./docker-run.sh cleanup
Observación: Asegúrese de que docker-run.sh tenga permisos de ejecución:
# Dar permisos de ejecución
chmod +x ./docker-run.sh
Después de que el contenedor esté funcionando, puede usar un comando similar a este para acceder al entorno de prueba:
# Conectarse al contenedor que ejecuta la aplicación
docker exec -it zipslip-vulnerable-server /bin/bash
# Instalar dependencias de Python
pip3 install -r requirements.txt
# Ejecutar el payload
python3 test_exploit.py -p "../../../../../../tmp/hacked.txt" -c "You were pwned!"
Nota: Los comandos deben ejecutarse dentro del contenedor.
-u, --url: URL del servidor (por defecto: http://localhost:8080)-z, --zip: Nombre del archivo ZIP (por defecto: malicious_test.zip)-p, --path: Nombre de archivo con traversal de rutas (por defecto: ../../../malicious_escaped.txt)-c, --content: Contenido del archivoPara corregir esta vulnerabilidad:
mholt/archiver versión 3.3.2 o posterior