9.6 KiB
☁️ HackTricks क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥
-
क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
-
खोजें The PEASS Family, हमारा विशेष संग्रह NFTs
-
प्राप्त करें आधिकारिक PEASS और HackTricks swag
-
शामिल हों 💬 डिस्कॉर्ड समूह या टेलीग्राम समूह या मुझे ट्विटर पर फ़ॉलो करें 🐦@carlospolopm.
-
अपने हैकिंग ट्रिक्स को hacktricks रेपो और hacktricks-cloud रेपो में पीआर जमा करके साझा करें।
PHP फ़ाइल अपलोड
PHP इंजन, RFC 1867 के साथ कोडित फ़ाइल (फ़ाइलें) से प्राप्ति पैकेट प्राप्त करने पर, एक या एक से अधिक अस्थायी फ़ाइलें बनाता है जिनका उपयोग अपलोड की गई फ़ाइलें डेटा संग्रहित करने के लिए किया जाता है। फ़ाइल अपलोड को संभालने वाला PHP स्क्रिप्ट अपलोड की गई अस्थायी फ़ाइल को अपनी इच्छा के स्थान पर ले जाने के लिए move_uploaded_file फ़ंक्शन का उपयोग करने की आवश्यकता होती है (यदि स्क्रिप्ट को फ़ाइल के अस्तित्व की आवश्यकता होती है जब यह समाप्त होता है)। जब स्क्रिप्ट समाप्त होता है, PHP इंजन सभी अस्थायी फ़ाइलें हटा देता है जो अपलोड की गई थीं (यदि स्क्रिप्ट समाप्त होने के बाद भी कोई बची होती है)।
{% hint style="info" %} हमलावद आमतौर पर जानेंगे कि यदि उसने स्थानीय फ़ाइल सम्मिलन पाया है, तो वह अपलोड की जा रही फ़ाइल को लोड करने और RCE प्राप्त करने के लिए उपयोग कर सकता है। {% endhint %}
फ़ाइल तक पहुंचने की मुख्य समस्या मूल रूप से इसके नाम को अनुमान लगाना है (जो "यादृच्छिक" होगा)।
Windows शोषण
Windows पर यादृच्छिक नाम उत्पन्न करने के लिए, PHP ने GetTempFileName
फ़ंक्शन का उपयोग किया है। दस्तावेज़ीकरण में देखने पर हम निम्नलिखित स्पष्टीकरण पा सकते हैं: GetTempFileName फ़ंक्शन निम्नलिखित प्रारूप का एक अस्थायी फ़ाइल नाम बनाता है:
<पथ>\<प्री><यूयूयूयू>.TMP
- पथ है
upload_tmp_dir
जो सामान्यतःC:\Windows\Temp
होता है - प्री आमतौर पर: "php" होता है
- <यूयूयूयू> एक अद्वितीय हेक्स मान है। हालांकि:
- uUnique पैरामीटर के केवल निचले 16 बिट का उपयोग किया जाता है। यदि lpPathName और lpPrefixString पैरामीटर एक जैसे ही रहें, तो यह GetTempFileName को अधिकतम 65,535 अद्वितीय फ़ाइल नामों तक सीमित करता है। इसे ब्रूट-फ़ोर्स किया जा सकता है।
जैसा कि हमने देखा, विंडोज सिस्टम में अस्थायी फ़ाइल को खोजना फेयरली आसान है। और यह और आसान हो जाएगा क्योंकि यहां ब्रूट फ़ोर्स की आवश्यकता नहीं है, धन्यवाद है एक ऐसे FindFirstFile की खासियत के लिए जो विंडोज पर LFI पथों में मास्क (<< के रूप में * और > के रूप में ?) का उपयोग करने की अनुमति देती है। इसके कारण, एक व्यक्ति इस तरह का एक सम्मिलन पथ बना सकता है:
http://site/vuln.php?inc=c:\windows\temp\php<<
GNU/Linux शोषण
फ़ाइल नाम का यादृच्छिक मान निर्मित होने के लिए पर्याप्त है, जिसे ना तो पूर्वानुमानित किया जा सकता है और ना ही ब्रूट-फोर्स किया जा सकता है। अधिक जानकारी के लिए, संदर्भ देखें।
संदर्भ
- https://gynvael.coldwind.pl/?id=376
- https://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को HackTricks में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
-
खोजें The PEASS Family, हमारा विशेष NFT संग्रह।
-
प्राप्त करें आधिकारिक PEASS & HackTricks swag
-
शामिल हों 💬 Discord समूह या टेलीग्राम समूह या मुझे ट्विटर पर फ़ॉलो करें 🐦@carlospolopm.
-
अपने हैकिंग ट्रिक्स साझा करें, hacktricks रेपो और hacktricks-cloud रेपो में पीआर जमा करके।