![shell-shockers-hacker.gif](https://www.imagevisit.com/images/2023/07/24/shell-shockers-hacker.gif)
Kullanıcı tarafından yüklenen dosyalar, bilgisayar korsanlarına çevrimiçi uygulamalara erişim noktası sağlayarak, güvenli yönetimlerini yöneticiler ve güvenlik ekibi için kritik bir görev haline getirebilir. Bu dosyalar düzgün bir şekilde doğrulanmazsa, uzaktaki bir saldırgan web sunucusuna kötü amaçlı bir dosya yükleyerek ciddi bir ihlale neden olabilir. Kötü amaçlı dosya yüklemeleri, yetersiz dosya doğrulamasından kaynaklanır. Bu, kod yürütmeyle sonuçlanır. OWASP'ye göre sınırsız dosya yükleme güvenlik açıkları iki tür saldırıya izin verebilir. Web uygulamalarının genellikle bu tür saldırıları daha zor hale getirmek için sınırları vardır, ancak bilgisayar korsanlarının dosya yükleme kısıtlamalarını atlatmak ve ters bir kabuk elde etmek için kullanabilecekleri çeşitli taktikler vardır.
![SERuL7.gif SERuL7.gif](https://resmim.net/cdn/2023/06/11/SERuL7.gif)
Kara Liste ve Bypass
Kara listeye alma, belirli veri dizilerinin, genellikle belirli uzantıların, web uygulaması sunucusuna teslim edilmesinin açıkça yasaklandığı bir tür güvenliktir. Bu, tehlikeli uzantıların, genellikle kabukların web sitenizde yayınlanmasını önlemenin en iyi yöntemi gibi görünebilir, ancak bunları aşmak zor değildir. İşte kara liste filtrelemesinden kaçınmak için bazı alternatif uzantılar.
php.txt, .sh, .pht, .phtml, .phP, .Php, .php7, .php%00.jpeg, .cgi
Sunucu tarafından oluşturulan bir web sayfası olan JSP, web kabukları için başka bir yaygın uzantıdır. ActiveX veya PHP yerine Java kodunu içermesi dışında bir.ASP veya.PHP dosyasıyla karşılaştırılabilir.
.MF, .jspx, .jspf, .jsw, .jsv, xml, .war, .jsp, .aspx
![SERuL7.gif SERuL7.gif](https://resmim.net/cdn/2023/06/11/SERuL7.gif)
Beyaz Liste ve Bypass
İkinci yöntem, beyaz listeleri kullanmaktır. Beyaz liste, adından da anlaşılacağı gibi, kara listenin tersidir. Bu sunucuların beyaz listeleri yalnızca jpeg, gif, png, jpg ve benzerlerine izin verecektir. Bu, sunucunuzu korumak için bir kara liste kullanmaktan daha iyi bir yöntem gibi görünebilir, ancak yine de birkaç yol kullanılarak atlatılabilir. Bu stratejinin de bazı sakıncaları vardır. Bunlar, kullanıcıların bu güvenliği aşmasına izin veren sunucu tarafı kusurlarının kayıtlarıdır ve bunlardan biri:
IIS 6'daki noktalı virgül güvenlik açığı, kullanıcıların test.asp;.jpg gibi adlara sahip dosyaları yüklemesine ve yürütmesine izin veren bir ayrıştırıcı kusurundan kaynaklanır.
Bilgisayar korsanları, resim uzantılı bir ters kabuk kullanarak bir web uygulamasını JPG/PNG uzantılı bir php dosyasını kabul etmesi için kandırabilir:
payload.php.jpg
Beyaz liste filtrelerini atlatmak için boş karakter enjeksiyonu da kullanabiliriz ve dosya kaydedildiğinde karakterlerin dikkate alınmamasına neden olabiliriz; bunu yasaklanmış ve yetkili bir uzantı arasına enjekte etmek baypasa neden olabilir:
payload.php%00.jpg OR payload.php\x00.jpg
Bir beyaz liste yalnızca resimlere izin veriyorsa, gif dosyalarını da kabul edebilir. GIF89a ekleyerek; kabuğunuzun en tepesine kadar, sınırı aşabilir ve kabuğu çalıştırabilirsiniz.
GIF89a; <?php system($_GET['cmd']); ?>
![SERuL7.gif SERuL7.gif](https://resmim.net/cdn/2023/06/11/SERuL7.gif)
Exif Verileri, ExifTool ve Baypass
Dosya yükleme sınırlamalarından kaçınmak için aşağıdaki yaklaşım, herhangi bir fotoğraftaki konum, ad, kullanılan kamera ve çok daha fazlası gibi Exif verilerinden yararlanır. Resim gönderildiğinde, web uygulaması ters kabuk yükü içeren bir yorum çalıştırabilir.
Yükünüzü exiftool gibi bir araçla ekleyebilirsiniz.
Görüntünüze bilgi olarak kısa bir komut shell eklemek şöyle görünebilir:
$ exiftool -DocumentName="<h1>chiara<br><?php if(isset(\$_REQUEST['cmd'])){echo '<pre>';\$cmd = (\$_REQUEST['cmd']);system(\$cmd);echo '</pre>';} __halt_compiler();?></h1>" pwtoken.jpeg
Exiftool, fotoğrafınıza yeni eklenen yorumu aramak için kullanılabilir.
$ exiftool pwtoken.jpeg
Ardından, web uygulaması sunucusuna girdikten sonra, çalıştırılabilir bir dosya yapmak için bir kabuk uzantısı ekleyin:
$ mv catphoto.jpg catphoto.php\x00.jpg
Kara liste ve beyaz listelerin herhangi birinden veya her ikisinden birden kaçınmak için bunu bu makalenin başında sağlanan prosedürlerle birlikte kullanın.
Yama
Dosya uzantısını kontrol ederek ve yalnızca belirli dosyaların yayınlanmasına izin vererek yüklenebilecek dosya türlerini sınırlayın. Kara liste yerine beyaz liste kullanın. php.png gibi çift uzantılardan kaçınılmalıdır. htaccess gibi dosya adı olmayan dosyaları arayın (ASP.NET'te web.config gibi yapılandırma dosyalarını kontrol edin). Yükleme klasörünün izinlerini, içindeki dosyalar çalıştırılamaz olacak şekilde değiştirin. Mümkünse, yüklenen dosyaları yeniden adlandırın.