diff --git a/pentesting-web/file-upload/README.md b/pentesting-web/file-upload/README.md index 7e49657e9..5f5296112 100644 --- a/pentesting-web/file-upload/README.md +++ b/pentesting-web/file-upload/README.md @@ -32,15 +32,15 @@ Diğer yararlı uzantılar: * **Coldfusion:** _.cfm, .cfml, .cfc, .dbm_ * **Flash**: _.swf_ * **Perl**: _.pl, .cgi_ -* **Erlang Yaws Web Server**: _.yaws_ +* **Erlang Yaws Web Sunucusu**: _.yaws_ -### Dosya uzantısı kontrollerini atlama +### Dosya uzantısı kontrollerini atlatma 1. Eğer uygulanıyorsa, **önceki uzantıları kontrol edin.** Ayrıca bazı **büyük harfler** kullanarak test edin: _pHp, .pHP5, .PhAr ..._ 2. _**Yürütme uzantısından önce geçerli bir uzantı eklemeyi kontrol edin** (önceki uzantıları da kullanın):_ * _file.png.php_ * _file.png.Php5_ -3. **Sonuna özel karakterler eklemeyi deneyin.** Tüm **ascii** ve **Unicode** karakterlerini **bruteforce** etmek için Burp kullanabilirsiniz. (_Daha önce belirtilen **uzantıları** de kullanmayı deneyebilirsiniz_) +3. **Sonuna özel karakterler eklemeyi deneyin.** Tüm **ascii** ve **Unicode** karakterlerini **bruteforce** etmek için Burp'u kullanabilirsiniz. (_Daha önce bahsedilen **uzantıları** de kullanmayı deneyebilirsiniz_) * _file.php%20_ * _file.php%0a_ * _file.php%00_ @@ -50,7 +50,7 @@ Diğer yararlı uzantılar: * _file._ * _file.php...._ * _file.pHp5...._ -4. **Sunucu tarafındaki uzantı ayrıştırıcısını kandırarak korumaları atlamayı deneyin**; uzantıyı **iki katına çıkararak** veya uzantılar arasında **gereksiz** veriler (**null** baytları) ekleyerek. _Daha iyi bir yük oluşturmak için **önceki uzantıları** de kullanabilirsiniz._ +4. **Sunucu tarafındaki uzantı ayrıştırıcısını kandırarak** korumaları atlatmayı deneyin, örneğin **uzantıyı iki katına çıkararak** veya uzantılar arasında **gereksiz** veriler (**null** baytları) ekleyerek. _Daha iyi bir yük hazırlamak için **önceki uzantıları** de kullanabilirsiniz._ * _file.png.php_ * _file.png.pHp5_ * _file.php#.png_ @@ -62,9 +62,9 @@ Diğer yararlı uzantılar: 5. Önceki kontrol için **bir başka uzantı katmanı ekleyin**: * _file.png.jpg.php_ * _file.php%00.png%00.jpg_ -6. **Geçerli uzantıdan önce exec uzantısını koymayı deneyin** ve sunucunun yanlış yapılandırılmış olmasını umun. (Herhangi bir uzantıya sahip olan Apache yanlış yapılandırmalarını istismar etmek için yararlıdır; _**.php**_ ile bitmeyen her şey kod çalıştırır): +6. **Geçerli uzantıdan önce exec uzantısını koymayı deneyin** ve sunucunun yanlış yapılandırılmış olmasını umun. (Herhangi bir uzantı ile **.php** olan Apache yanlış yapılandırmalarını istismar etmek için yararlıdır, ancak .php ile bitmek zorunda değildir): * _ör: file.php.png_ -7. **Windows'ta NTFS alternatif veri akışı (ADS)** kullanarak. Bu durumda, yasaklı bir uzantıdan sonra ve izin verilen bir uzantıdan önce bir iki nokta karakteri “:” eklenecektir. Sonuç olarak, sunucuda **yasaklı uzantıya sahip boş bir dosya** oluşturulacaktır (örneğin, “file.asax:.jpg”). Bu dosya daha sonra başka teknikler kullanılarak düzenlenebilir, örneğin kısa dosya adını kullanarak. “**::$data**” deseni de boş olmayan dosyalar oluşturmak için kullanılabilir. Bu nedenle, bu desenin ardından bir nokta karakteri eklemek de daha fazla kısıtlamayı atlamak için yararlı olabilir (örneğin, “file.asp::$data.”) +7. **Windows'ta NTFS alternatif veri akışı (ADS)** kullanma. Bu durumda, yasaklı bir uzantıdan sonra ve izin verilen bir uzantıdan önce bir iki nokta karakteri “:” eklenecektir. Sonuç olarak, sunucuda **yasaklı uzantıya sahip boş bir dosya** oluşturulacaktır (örneğin “file.asax:.jpg”). Bu dosya daha sonra başka teknikler kullanılarak düzenlenebilir, örneğin kısa dosya adını kullanarak. “**::$data**” deseni de boş olmayan dosyalar oluşturmak için kullanılabilir. Bu nedenle, bu desenden sonra bir nokta karakteri eklemek de daha fazla kısıtlamayı atlatmak için yararlı olabilir (örneğin “file.asp::$data.”) 8. Dosya adı sınırlarını aşmayı deneyin. Geçerli uzantı kesilecektir. Ve kötü niyetli PHP kalacaktır. AAA<--SNIP-->AAA.php ``` @@ -78,19 +78,19 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA<--SNIP 232 A-->AAA.php.png ``` -### İçerik Türü, Sihirli Numara, Sıkıştırma ve Yeniden Boyutlandırmayı Atlama +### İçerik Türü, Sihirli Numara, Sıkıştırma ve Yeniden Boyutlandırmayı Atlatma -* **Content-Type** kontrollerini atlamak için **Content-Type** **başlığının** **değerini** ayarlayın: _image/png_ , _text/plain , application/octet-stream_ -1. Content-Type **kelime listesi**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt) -* **Sihirli numara** kontrolünü atlamak için dosyanın başına **gerçek bir görüntünün** **baytlarını** ekleyin ( _file_ komutunu karıştırın). Veya shell'i **meta veriler** içine yerleştirin:\ +* **Content-Type** kontrollerini atlatmak için **Content-Type** **başlığının** **değerini** ayarlayın: _image/png_, _text/plain_, application/octet-stream_ +1. Content-Type **kelime listesi**: [https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/content-type.txt) +* **Sihirli numara** kontrolünü atlatmak için dosyanın başına **gerçek bir resmin baytlarını** ekleyin ( _file_ komutunu karıştırın). Veya shell'i **meta veriler** içine yerleştirin:\ `exiftool -Comment="' >> img.png` -* Eğer görüntünüze **sıkıştırma ekleniyorsa**, örneğin bazı standart PHP kütüphaneleri kullanarak [PHP-GD](https://www.php.net/manual/fr/book.image.php), önceki teknikler işe yaramayacaktır. Ancak, sıkıştırmayı **hayatta tutacak** bazı metinler eklemek için **PLTE parçası** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir. +* Eğer resminize **sıkıştırma ekleniyorsa**, örneğin bazı standart PHP kütüphaneleri kullanarak [PHP-GD](https://www.php.net/manual/fr/book.image.php), önceki teknikler işe yaramayacaktır. Ancak, sıkıştırmayı **hayatta tutacak** bazı metinler eklemek için **PLTE chunk** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir. * [**Kod ile Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php) -* Web sayfası ayrıca **görüntüyü yeniden boyutlandırıyor** olabilir, örneğin PHP-GD fonksiyonları `imagecopyresized` veya `imagecopyresampled` kullanarak. Ancak, sıkıştırmayı **hayatta tutacak** bazı metinler eklemek için **IDAT parçası** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir. +* Web sayfası ayrıca resmi **yeniden boyutlandırıyor** olabilir, örneğin PHP-GD fonksiyonları `imagecopyresized` veya `imagecopyresampled` kullanarak. Ancak, sıkıştırmayı **hayatta tutacak** bazı metinler eklemek için **IDAT chunk** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir. * [**Kod ile Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php) -* Görüntü yeniden boyutlandırmayı **hayatta tutacak** bir yük oluşturmak için başka bir teknik, PHP-GD fonksiyonu `thumbnailImage` kullanmaktır. Ancak, sıkıştırmayı **hayatta tutacak** bazı metinler eklemek için **tEXt parçası** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir. +* Resim **yeniden boyutlandırmayı** **hayatta tutacak** bir yük oluşturmak için başka bir teknik, PHP-GD fonksiyonu `thumbnailImage` kullanmaktır. Ancak, sıkıştırmayı **hayatta tutacak** bazı metinler eklemek için **tEXt chunk** [**burada tanımlanan teknik**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) kullanılabilir. * [**Kod ile Github**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_tEXt\_png.php) ### Diğer Kontrol Edilecek İpuçları @@ -99,25 +99,25 @@ AAA<--SNIP 232 A-->AAA.php.png * Geri kapıyı çalıştırmak için bir **Yerel Dosya Dahil Etme** zafiyeti bulun. * **Olası Bilgi sızıntısı**: 1. **Aynı dosyayı** **birden fazla kez** (ve **aynı anda**) **aynı isimle** yükleyin. -2. **Zaten var olan** bir **dosya** veya **klasör** adıyla bir dosya yükleyin. -3. **“.”, “..” veya “…”** gibi bir adı olan bir dosya yükleyin. Örneğin, Apache'de **Windows**'ta, uygulama yüklenen dosyaları “/www/uploads/” dizinine kaydederse, “.” dosya adı “/www/” dizininde “uploads” adında bir dosya oluşturacaktır. -4. **NTFS**'te kolayca silinmeyen bir dosya yükleyin, örneğin **“…:.jpg”**. (Windows) -5. **Windows**'ta **geçersiz karakterler** içeren bir dosya yükleyin, örneğin `|<>*?”` adında. (Windows) -6. **Windows**'ta **rezerv** (**yasaklı**) **adlar** içeren bir dosya yükleyin, örneğin CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 ve LPT9. -* Ayrıca, **bir yürütülebilir dosya** (.exe) veya **.html** (daha az şüpheli) yüklemeyi deneyin; bu dosya, kurban tarafından yanlışlıkla açıldığında **kod çalıştıracaktır**. +2. **Zaten var olan** bir **dosya** veya **klasör** ismiyle bir dosya yükleyin. +3. **“.”, “..” veya “…”** gibi bir isme sahip bir dosya yükleyin. Örneğin, Apache'de **Windows**'ta, uygulama yüklenen dosyaları “/www/uploads/” dizinine kaydederse, “.” dosya adı “/www/” dizininde “uploads” adında bir dosya oluşturacaktır. +4. **NTFS**'te kolayca silinmeyebilecek bir dosya yükleyin, örneğin **“…:.jpg”**. (Windows) +5. **Windows**'ta ismi `|<>*?”` gibi **geçersiz karakterler** içeren bir dosya yükleyin. (Windows) +6. **Windows**'ta **rezerv** (**yasaklı**) **isimler** içeren bir dosya yükleyin, örneğin CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8 ve LPT9. +* Ayrıca, **kötü niyetli kodu** çalıştıracak bir **yürütülebilir** (.exe) veya **.html** (daha az şüpheli) dosyayı **yüklemeyi** deneyin. ### Özel uzantı ipuçları Eğer bir **PHP sunucusuna** dosya yüklemeye çalışıyorsanız, [kod çalıştırmak için **.htaccess** ipucuna bir göz atın](https://book.hacktricks.xyz/pentesting/pentesting-web/php-tricks-esp#code-execution-via-httaccess).\ Eğer bir **ASP sunucusuna** dosya yüklemeye çalışıyorsanız, [kod çalıştırmak için **.config** ipucuna bir göz atın](../../network-services-pentesting/pentesting-web/iis-internet-information-services.md#execute-config-files). -`.phar` dosyaları, Java için `.jar` gibi, ancak PHP için kullanılabilir ve **bir php dosyası gibi kullanılabilir** (php ile çalıştırarak veya bir script içinde dahil ederek...) +`.phar` dosyaları, Java için `.jar` gibi, ancak PHP için olup, **bir php dosyası gibi kullanılabilir** (php ile çalıştırarak veya bir script içinde dahil ederek...) -`.inc` uzantısı bazen yalnızca **dosya içe aktarmak** için kullanılan php dosyaları için kullanılır, bu nedenle bir noktada, biri **bu uzantının çalıştırılmasına izin vermiş olabilir**. +`.inc` uzantısı bazen yalnızca **dosyaları içe aktarmak için** kullanılan php dosyaları için kullanılır, bu nedenle, bir noktada, biri **bu uzantının çalıştırılmasına izin vermiş olabilir**. ## **Jetty RCE** -Eğer bir XML dosyasını Jetty sunucusuna yükleyebilirseniz, [**yeni \*.xml ve \*.war otomatik olarak işlenir**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Bu nedenle, aşağıdaki resimde belirtildiği gibi, XML dosyasını `$JETTY_BASE/webapps/` dizinine yükleyin ve shell'i bekleyin! +Eğer bir Jetty sunucusuna bir XML dosyası yükleyebilirseniz, [**yeni \*.xml ve \*.war otomatik olarak işlenir**](https://twitter.com/ptswarm/status/1555184661751648256/photo/1)**.** Bu nedenle, aşağıdaki resimde belirtildiği gibi, XML dosyasını `$JETTY_BASE/webapps/` dizinine yükleyin ve shell'i bekleyin! ![https://twitter.com/ptswarm/status/1555184661751648256/photo/1](<../../.gitbook/assets/image (1047).png>) @@ -127,7 +127,7 @@ Bu zafiyetin detaylı bir keşfi için orijinal araştırmaya bakın: [uWSGI RCE Uzak Komut Yürütme (RCE) zafiyetleri, `.ini` yapılandırma dosyasını değiştirme yeteneğine sahip olan uWSGI sunucularında istismar edilebilir. uWSGI yapılandırma dosyaları, "sihirli" değişkenleri, yer tutucuları ve operatörleri dahil etmek için belirli bir sözdizimi kullanır. Özellikle, `@(filename)` olarak kullanılan '@' operatörü, bir dosyanın içeriğini dahil etmek için tasarlanmıştır. uWSGI'de desteklenen çeşitli şemalar arasında, "exec" şeması özellikle güçlüdür ve bir sürecin standart çıktısından veri okumaya olanak tanır. Bu özellik, bir `.ini` yapılandırma dosyası işlendiğinde Uzak Komut Yürütme veya Rastgele Dosya Yazma/Okuma gibi kötü niyetli amaçlar için manipüle edilebilir. -Aşağıdaki örnekte, çeşitli şemaları gösteren zararlı bir `uwsgi.ini` dosyası düşünün: +Aşağıdaki zararlı `uwsgi.ini` dosyası örneğini düşünün, çeşitli şemaları sergileyen: ```ini [uwsgi] ; read from a symbol @@ -183,21 +183,21 @@ Not edin ki **başka bir seçenek** bu kontrolü atlamak için düşündüğün ## Dosya yüklemeden diğer güvenlik açıklarına -* **filename**'i `../../../tmp/lol.png` olarak ayarlayın ve bir **path traversal** elde etmeye çalışın -* **filename**'i `sleep(10)-- -.jpg` olarak ayarlayın ve bir **SQL injection** elde edebilirsiniz -* **filename**'i `` olarak ayarlayın ve bir XSS elde edin -* **filename**'i `; sleep 10;` olarak ayarlayın ve bazı komut enjeksiyonlarını test edin (daha fazla [komut enjeksiyon hileleri burada](../command-injection.md)) -* [**XSS** resim (svg) dosya yüklemede](../xss-cross-site-scripting/#xss-uploading-files-svg) -* **JS** dosya **yükleme** + **XSS** = [**Service Workers** istismarı](../xss-cross-site-scripting/#xss-abusing-service-workers) -* [**XXE svg yüklemede**](../xxe-xee-xml-external-entity.md#svg-file-upload) -* [**Open Redirect** svg dosyası yükleyerek](../open-redirect.md#open-redirect-uploading-svg-files) -* [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) adresinden **farklı svg payload'ları** deneyin\*\*\*\* -* [Ünlü **ImageTrick** güvenlik açığı](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/) +* **filename**'i `../../../tmp/lol.png` olarak ayarlayın ve bir **path traversal** elde etmeye çalışın. +* **filename**'i `sleep(10)-- -.jpg` olarak ayarlayın ve bir **SQL injection** elde edebilirsiniz. +* **filename**'i `` olarak ayarlayın ve bir XSS elde edin. +* **filename**'i `; sleep 10;` olarak ayarlayın ve bazı komut enjeksiyonlarını test edin (daha fazla [komut enjeksiyon hileleri burada](../command-injection.md)). +* [**XSS** resim (svg) dosya yüklemede](../xss-cross-site-scripting/#xss-uploading-files-svg). +* **JS** dosya **yükleme** + **XSS** = [**Service Workers** istismarı](../xss-cross-site-scripting/#xss-abusing-service-workers). +* [**XXE svg yüklemede**](../xxe-xee-xml-external-entity.md#svg-file-upload). +* [**Open Redirect** svg dosyası yükleyerek](../open-redirect.md#open-redirect-uploading-svg-files). +* [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet) adresinden **farklı svg payload'ları** deneyin. +* [Ünlü **ImageTrick** güvenlik açığı](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/). * Eğer **web sunucusunu bir URL'den bir resmi yakalamaya yönlendirebilirseniz**, bir [SSRF](../ssrf-server-side-request-forgery/) istismar etmeye çalışabilirsiniz. Eğer bu **resim** bazı **kamusal** sitelerde **kaydedilecekse**, [https://iplogger.org/invisible/](https://iplogger.org/invisible/) adresinden bir URL belirtebilir ve **her ziyaretçinin bilgilerini çalabilirsiniz**. -* [PDF-Adobe yüklemesi ile **XXE ve CORS** atlatma](pdf-upload-xxe-and-cors-bypass.md) +* [PDF-Adobe yüklemesi ile **XXE ve CORS** atlatma](pdf-upload-xxe-and-cors-bypass.md). * XSS için özel olarak hazırlanmış PDF'ler: [aşağıdaki sayfa **PDF verilerini enjekte ederek JS yürütme** elde etmenin nasıl olduğunu sunmaktadır](../xss-cross-site-scripting/pdf-injection.md). Eğer PDF yükleyebilirseniz, verilen talimatları takip ederek rastgele JS yürütecek bazı PDF'ler hazırlayabilirsiniz. -* \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) içeriğini yükleyerek sunucunun herhangi bir **antivirüs** programı olup olmadığını kontrol edin -* Dosya yüklerken herhangi bir **boyut limiti** olup olmadığını kontrol edin +* Sunucunun herhangi bir **antivirüs** programı olup olmadığını kontrol etmek için \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) içeriğini yükleyin. +* Dosya yüklerken herhangi bir **boyut limiti** olup olmadığını kontrol edin. İşte yükleme yaparak elde edebileceğiniz şeylerin ilk 10 listesi (buradan [buraya](https://twitter.com/SalahHasoneh1/status/1281274120395685889)): @@ -237,7 +237,7 @@ tar -cvf test.tar symindex.txt ``` ### Farklı klasörlerde aç -Açma işlemi sırasında dizinlerde beklenmedik dosya oluşturulması önemli bir sorundur. Bu yapılandırmanın, kötü niyetli dosya yüklemeleri yoluyla OS düzeyinde komut yürütmeye karşı koruma sağlayacağına dair ilk varsayımlara rağmen, ZIP arşiv formatının hiyerarşik sıkıştırma desteği ve dizin geçiş yetenekleri istismar edilebilir. Bu, saldırganların kısıtlamaları aşmasına ve hedef uygulamanın açma işlevini manipüle ederek güvenli yükleme dizinlerinden çıkmasına olanak tanır. +Açma işlemi sırasında dizinlerde dosyaların beklenmedik bir şekilde oluşturulması önemli bir sorundur. Bu yapılandırmanın, kötü niyetli dosya yüklemeleri yoluyla OS düzeyinde komut yürütmeye karşı koruma sağlayacağına dair ilk varsayımlara rağmen, ZIP arşiv formatının hiyerarşik sıkıştırma desteği ve dizin geçiş yetenekleri istismar edilebilir. Bu, saldırganların kısıtlamaları aşmasına ve hedef uygulamanın açma işlevini manipüle ederek güvenli yükleme dizinlerinden çıkmasına olanak tanır. Bu tür dosyaları oluşturmak için otomatik bir istismar [**evilarc on GitHub**](https://github.com/ptoomey3/evilarc) adresinde mevcuttur. Araç aşağıdaki gibi kullanılabilir: ```python @@ -295,7 +295,7 @@ root@s2crew:/tmp# zip cmd.zip xx*.php ## ImageTragic -Bu içeriği bir resim uzantısıyla yükleyerek açığı kullanın **(ImageMagick , 7.0.1-1)** ( [exploit](https://www.exploit-db.com/exploits/39767) formundan) +Bu içeriği bir resim uzantısıyla yükleyerek açığı kullanın **(ImageMagick , 7.0.1-1)** ( [exploit](https://www.exploit-db.com/exploits/39767) formu) ``` push graphic-context viewbox 0 0 640 480 @@ -312,7 +312,7 @@ Daha fazla bilgi için: [https://www.idontplaydarts.com/2012/06/encoding-web-she ## Poliglot Dosyalar -Poliglot dosyalar, siber güvenlikte benzersiz bir araç olarak hizmet eder ve aynı anda birden fazla dosya formatında geçerli olarak var olabilen kamuflajlar gibi davranır. İlginç bir örnek, hem GIF hem de RAR arşivi olarak işlev görebilen bir [GIFAR](https://en.wikipedia.org/wiki/Gifar)dır. Bu tür dosyalar bu eşleşme ile sınırlı değildir; GIF ve JS veya PPT ve JS gibi kombinasyonlar da mümkündür. +Poliglot dosyalar, siber güvenlikte benzersiz bir araç olarak hizmet eder ve aynı anda birden fazla dosya formatında geçerli olarak var olabilen bukalemunlar gibi davranır. İlginç bir örnek, hem GIF hem de RAR arşivi olarak işlev görebilen bir [GIFAR](https://en.wikipedia.org/wiki/Gifar)dır. Bu tür dosyalar bu eşleşme ile sınırlı değildir; GIF ve JS veya PPT ve JS gibi kombinasyonlar da mümkündür. Poliglot dosyaların temel yararı, dosyaları türüne göre tarayan güvenlik önlemlerini aşabilme yetenekleridir. Çeşitli uygulamalarda yaygın uygulama, potansiyel olarak zararlı formatların (örneğin, JS, PHP veya Phar dosyaları) riskini azaltmak için yalnızca belirli dosya türlerinin yüklenmesine izin vermektir—JPEG, GIF veya DOC gibi. Ancak, bir poliglot, birden fazla dosya türünün yapısal kriterlerine uyarak bu kısıtlamaları gizlice aşabilir. @@ -345,7 +345,7 @@ GCP Hacking'i öğrenin ve pratik yapın: {% endhint %}