
Questo progetto dimostra la vulnerabilità Zip Slip (CVE-2019-10743) utilizzando la versione vulnerabile del pacchetto mholt/archiver.
Zip Slip è una vulnerabilità scoperta dai ricercatori di sicurezza di Snyk. È stato riscontrato che la vulnerabilità ha un impatto su diversi pacchetti utilizzati in ambienti reali. La vulnerabilità può essere sfruttata e può portare a problemi come:
mholt/archiver è un pacchetto Go che fornisce un'API semplice e uniforme per lavorare con file di archivio e file compressi. Supporta formati come .zip, .tar, .tar.gz, .7z o .rar.
mholt/archiver../../../../../tmp/hacked.txt)# Start the vulnerable server
./docker-run.sh start
# Stop the server
./docker-run.sh stop
# View logs
./docker-run.sh logs
# Clean up
./docker-run.sh cleanup
Osservazione: assicurarsi che docker-run.sh abbia i permessi di esecuzione:
# Give execution rights
chmod +x ./docker-run.sh
Dopo che il container è avviato e in esecuzione, puoi usare un comando simile al seguente per accedere all'ambiente di test:
# Connect to the container that is running the application
docker exec -it zipslip-vulnerable-server /bin/bash
# Install Python dependencies
pip3 install -r requirements.txt
# Execute the payload
python3 test_exploit.py -p "../../../../../../tmp/hacked.txt" -c "You were pwned!"
Nota: i comandi devono essere eseguibili all'interno del container.
-u, --url: URL del server (predefinito: http://localhost:8080)-z, --zip: Nome del file ZIP (predefinito: malicious_test.zip)-p, --path: Nome file con path traversal (predefinito: ../../../malicious_escaped.txt)-c, --content: Contenuto del filePer correggere questa vulnerabilità:
mholt/archiver versione 3.3.2 o successiva