
यह प्रोजेक्ट mholt/archiver पैकेज के असुरक्षित संस्करण का उपयोग करके Zip Slip भेद्यता (CVE-2019-10743) को प्रदर्शित करता है।
Zip Slip एक भेद्यता है जिसे Snyk के सुरक्षा शोधकर्ताओं ने खोजा था। यह पाया गया कि यह भेद्यता कई पैकेजों को प्रभावित कर रही है जिनका उपयोग वास्तविक दुनिया में किया जा रहा है। इस भेद्यता का शोषण इस प्रकार किया जा सकता है जिससे निम्नलिखित समस्याएँ उत्पन्न हो सकती हैं:
mholt/archiver एक Go पैकेज है जो आर्काइव फ़ाइलों और संपीड़ित फ़ाइलों के साथ काम करने के लिए एक सरल और सुसंगत API प्रदान करता है। यह .zip, .tar, .tar.gz, .7z या .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
टिप्पणी: सुनिश्चित करें कि 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 या उसके बाद का उपयोग करें