File Upload
Kabul edilen diğer uzantılar:
PHP: .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc
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
Bypassing blacklisting protection
Case 1: Engellenen uzantının adını büyük harf olarak değiştir. (.php yerine .PHP)
Case 2: Alternatif uzantıları dene. Örneğin, bir geliştirici php, html, exe uzantılarını engelleyebilir. Saldırganlar, kısıtlamaları aşmak ve kötü amaçlı dosyalar yüklemek için php1, php2, php3, php4, php5, php6, phtml vb. gibi alternatif uzantıları kullanmaya devam edebilir.
Case 3: Yüklenen dosyanın adını path trevarsal payloadı koyarak dene. Bazen sunucu bulunan dizine dosya kaydetmeye izin vermez ama bir üst dizine payloadı koyabiliriz. Dosya adı ../../shell.php gibi bir isim olabilir.
Case 4: Content-type'ı değiştir. Yüklenen dosya eğer php ise content type application/x-httpd-php olarak gözükür. Bunu burp ile araya girerek, image/png veya image/jpeg olarak değiştir.
Case 5: Magic Byte ekle ya da exiftool ile dosya tipini değiştir.
exiftool -Comment="<?php echo 'START ' . file_get_contents('/home/carlos/secret') . ' END'; ?>" <YOUR-INPUT-IMAGE>.jpg -o polyglot.php
Bypassing whitelist protection
Case 1: Uygulama yalnızca belirtilen dosya adının olup olmadığını kontrol eder. Yani shell.png.php olması biri sorun oluşturmaz çünkü içerisinde png var.
Case 2: Null byte.
exploit.jpg%00.php or exploit.jpg\00.php
Dosya Adını Kullanarak Sömürme
DoS (Denial of Service) from Filename
Case 1: Sisteme yüklenen dosyanın adını çok çok uzun bir şey yapmayı dene. Sistemde her hangi bir sınır konulmamışsa bu dosya yüklenirken sunucu cevap vermeyecek duruma gelir.
Case 2: Dosya boyutunu çok büyük bir şey deneyerek DoS saldırısı yapabiliriz.
XSS (Cross Site Scripting)
Dosya adı direkt olarak bir yerde bastırılıyorsa buraya xss payloadı yazarak dosya adından xss'i tetikleyebiliriz.
Diğer Zafiyetler
../../../tmp/lol.png
>>> path traversalsleep(10)-- -.jpg
>>> SQL injection<svg onload=alert(document.domain)
>>> XSS; sleep 10;
>>> Command InjectionYüklenen png, png gibi dosyaların uzantısını php vs gibi shell uzantısı yapmayı dene.
Last updated