← Back to list

Web Uygulamalarının Arka Kapısı: File Upload Injection ve Gelişmiş Bypass Teknikleri

Modern web uygulamalarında profil resmi yüklemek, CV paylaşmak veya video göndermek artık standart bir özellik. Ancak bir sızma testi…

bovsec · 2026-06-01 16:22 · 0 claps · 2.2 min read
#file-upload #file-upload-vulnerability
Open on Medium ↗
Wiki topics: 🔒 · Cybersecurity

Web Uygulamalarının Arka Kapısı: File Upload Injection ve Gelişmiş Bypass Teknikleri

Photo by Florian Olivo on Unsplash

Photo by Florian Olivo on Unsplash

Modern web uygulamalarında profil resmi yüklemek, CV paylaşmak veya video göndermek artık standart bir özellik. Ancak bir sızma testi uzmanı olarak biliyoruz ki, kullanıcıdan dosya kabul edilen her nokta, doğru yapılandırılmadığında tüm sunucunun ele geçirilmesine (RCE) yol açabilecek bir File Upload Injection girişidir.

1. File Upload Injection Nedir?

Bu zafiyet, bir web uygulamasının yüklenen dosyaların tipini, içeriğini veya boyutunu yeterince doğrulamaması sonucu ortaya çıkar. Saldırgan, sunucu tarafında çalışan (PHP, ASPX, JSP gibi) zararlı bir script’i (Web Shell) yükleyerek sistem üzerinde komut çalıştırabilir.

2. Kritik Endpointler: Nereye Bakmalıyız?

Dosya yükleme fonksiyonu her zaman “Upload” butonuyla karşımıza çıkmaz. Şu alanlar her zaman radarınızda olmalı:

  • Profil fotoğrafı ve avatar güncellemeleri.
  • CV, fatura veya doküman yükleme panelleri.
  • E-posta ekleri ve destek talebi (support ticket) kısımları.
  • Görsel işleme (Image manipulation) yapan API servisleri.

3. Sömürü Teknikleri ve Filtreleri Aşma (Bypass)

Geliştiriciler genellikle dosya uzantısına veya Content-Type başlığına bakarak basit filtreler koyarlar. İşte bu filtreleri aşmak için kullanabileceğimiz profesyonel teknikler:

  • Uzantı Manipülasyonu (Blacklist Bypass): Sunucu .php uzantısını engelliyorsa, büyük-küçük harf varyasyonlarını (.PHP, .PhP) veya alternatif uzantıları (.phtml, .php5, .php7) deneyin.
  • Çift Uzantı ve Null Byte:
  • dosya.jpg.php (Bazı regex filtreleri sadece .jpg kısmına bakabilir).
  • dosya.php%00.jpg (Null byte kullanımıyla sunucu tarafında dosya .php olarak kaydedilebilir).
  • Content-Type Spoofing: Burp Suite kullanarak isteği yakalayın ve Content-Type: application/x-php değerini image/jpeg olarak değiştirin.
  • Gelişmiş .htaccess Sömürüsü: Eğer sunucu Apache ise, bir .htaccess dosyası yükleyerek .jpg veya .png uzantılı dosyaların PHP olarak çalıştırılmasını sağlayabilirsiniz.
  • Görsel İçine Zararlı Kod Enjekte Etme: exiftool kullanarak bir görselin yorum satırlarına (metadata) PHP kodu ekleyebilir ve sunucuyu bu dosyayı çalıştırmaya zorlayabilirsiniz.

4. Senaryo: İstemci Taraflı (Client-Side) Filtreyi Atlatma

Bazen uygulamalar sadece tarayıcı üzerinde (JavaScript ile) dosya tipini kontrol eder. Bu en kolay aşılan yöntemdir.

  1. Analiz: Sayfa kodlarını inceleyerek dosya yüklemesini engelleyen JS fonksiyonunu bulun.
  2. Müdahale: Burp Suite’i açın, Proxy ayarlarından JS dosyalarını yakalayıp (intercept) filtreleme kodunu silin veya isteği tarayıcıya ulaşmadan manipüle edin.
  3. Yükleme: Filtre devre dışı kaldığında zararlı script’inizi (Web Shell) başarıyla yükleyin.

5. En Yaygın Payload Örnekleri

  • Basit PHP Shell: <?php system($_GET['cmd']); ?>
  • Bypass için .htaccess: AddType application/x-httpd-php .lol (Artık .lol uzantılı dosyalar PHP olarak çalışır!).
  • GIF Frame Flood (DoS): 10¹⁰ frame içeren bir GIF yükleyerek sunucunun kaynaklarını tüketebilirsiniz.

6. Güvenli Dosya Yükleme İçin Tavsiyeler

Raporunuzu yazarken şu savunma mekanizmalarını önermeyi unutmayın:

  • Whitelist Kullanın: Sadece iş kritik uzantılara (.pdf, .jpg) izin verin, zararlıları engellemekle (blacklist) uğraşmayın.
  • Dosyaları Yeniden Adlandırın: Yüklenen dosyaların ismini sunucu tarafında rastgele karakterlerden (UUID/GUID) oluşturun.
  • Webroot Dışında Depolama: Dosyaları web sunucusunun erişebildiği dizinin (webroot) dışında veya tamamen farklı bir dosya sunucusunda saklayın.
  • Boyut ve İstek Sınırı: “Zip Bomb” saldırılarına karşı boyut limitleri belirleyin.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

.php2, .php3, .php4, .php5, .php6, .php7, .phps, .pht, .phtm, .phtml ,shell.php.abcdde
file.php%20 ,file.php%0a  ,file.php%00   ,file.php%0d%0a  ,file.php/  ,file.php.\  ,file.php….  ,file.pHp5….
file.png.php  ,file.png.pHp5  ,file.php#.png  ,file.php%00.png  ,file.php\x00.png  ,file.php%0a.png
file.php%0d%0a.png  ,file.phpJunk123png

Bu rehber, OWASP File Upload Cheat Sheet ve profesyonel sızma testi pratikleri temel alınarak hazırlanmıştır.


메타데이터
post_id
af08552f29d1
slug
web-uygulamalarının-arka-kapısı-file-upload-injection-ve-gelişmiş-bypass-teknikleri-af08552f29d1
url
https://medium.com/@bovsec/web-uygulamalar%C4%B1n%C4%B1n-arka-kap%C4%B1s%C4%B1-file-upload-injection-ve-geli%C5%9Fmi%C5%9F-bypass-teknikleri-af08552f29d1
canonical_url
https://medium.com/@bovsec/web-uygulamalar%C4%B1n%C4%B1n-arka-kap%C4%B1s%C4%B1-file-upload-injection-ve-geli%C5%9Fmi%C5%9F-bypass-teknikleri-af08552f29d1
author_url
https://medium.com/@bovsec
status
ok
fetched_at
2026-06-09 15:37:30