July 29, 2026
Bugün Ne Öğrendim? Ağ Güvenlik Duvarlarını “Dosyasız” Geçmek: HTML Smuggling
Sızma testi ve Red Team konularını çalışırken aklıma hep şu takılıyordu: “Tamam, elimizde bir zararlı kod var ama bunu karşı tarafa e-posta…

By Ali
2 min read
Sızma testi ve Red Team konularını çalışırken aklıma hep şu takılıyordu: "Tamam, elimizde bir zararlı kod var ama bunu karşı tarafa e-posta ile göndersek e-posta koruması (Gateway) ya da Firewall daha yoldayken yakalar. İçeri nasıl sokacağız?"
Bugün tam olarak bu sorunun cevabı olan ve mantığını duydum dediğim bir teknik öğrendim: HTML Smuggling.
Mantığını, kendi bilgisayarımda denerken gördüklerimi ve öğrendiklerimi kısa kısa paylaşmak istedim.Klasik mantıkta internetten bir dosya indirdiğinizde, o dosya sunucudan sizin bilgisayarınıza doğru ağ üzerinden akar. Ağdaki güvenlik cihazları da paketin içine bakar: "Aaa bu bir .exe ya da makrolu bir .docm dosyası, dur bunu engelleyeyim" der.
HTML Smuggling'de ise ağdan geçen hiçbir dosya yok!
Süreç şöyle işliyor:
- İndirtmek istediğimiz dosyayı (örneğin zararlı bir Word belgesini) metin haline (Base64) getirip bir HTML sayfasının içine JavaScript değişkeni olarak koyuyoruz.
- Kurban sayfayı açtığında ağdaki Firewall sadece masum bir web sayfası (HTML ve JS) görür. Ortada indirilmeye çalışılan bir dosya olmadığı için "Geçebilirsin" der.
- Dosya, kurbanın kendi tarayıcısının içinde (RAM'de) JavaScript kütüphaneleriyle sıfırdan birleştirilir ve bilgisayarın "İndirilenler" klasörüne düşürülür.
Yani dosyayı dışarıdan içeriye yollamıyoruz, dosyayı içeride kurbanın kendi tarayıcısına yaptırıyoruz.
Kendi Bilgisayarımda Denerken Ne Fark Ettim?
Bunu anlamak için basit bir HTML dosyası hazırlayıp denedim.
Metin dosyamı Base64'e çevirip bir HTML kodunun içine koydum. Sayfayı açıp butona tıkladığımda, internetten hiçbir dosya çekilmediği halde tarayıcı belleğinde oluşturulan dosya anında indirme klasörüme düştü.
Bu testi yaparken şunları öğrendim:
- MIME Türü Çok Önemliymiş: Eğer bir Word belgesi (
.docm) indirteceksek, JavaScript içinde bunun bir Word belgesi olduğunu belirten MIME türünü doğru tanımlamak gerekiyormuş (application/vnd.ms-word.document.macroEnabled.12). Aksi halde indirilen dosya bozuluyor. - Otomatik İndirme Yakalanıyor: Sayfa açılır açılmaz dosyanın pat diye inmesini sağlarsak Windows Defender bunu "Drive-by Download" yani şüpheli otomatik indirme olarak görüp engelleyebiliyor. Ama indirmeyi sayfadaki bir butona tıklama eylemine (
click event) bağlarsak, Defender bunu "Kullanıcı kendi isteğiyle butona bastı" diye yorumluyor.
Defender ve Güvenlik Duvarları Buna Karşı Ne Yapıyor?
İşin en eğlenceli kısmı burası aslında. "Peki Defender bunu hiç mi anlamıyor?" diye araştırdım:
- Ağ Duvarları (Firewall): Gerçekten de kör kalıyor. Çünkü paketlerin içinde dosya yok, sadece HTML metni var.
- Defender / Anti-Virus: Eğer HTML'in içine koyduğunuz Base64 metnini gizlemezseniz, Defender metnin içindeki
.exeveya.zipbaşlangıç imzalarını (TVqQveyaPKgibi) tanıyıp sayfayı engelleyebiliyor. Bunu aşmak için veriyi önceden ufak bir XOR şifrelemesiyle karıştırmak gerekiyormuş. - Diske İndiği An: HTML Smuggling dosyayı ağdan geçiriyor ama dosya diske düştüğü an Defender devreye girip statik tarama yapıyor. Yani diske inen dosyanın kendisi zaten bilinen bir zararlıysa Defender yine yakalıyor.
Özet:
Bu teknik bana şunu öğretti: Güvenlik sadece "zararlı dosyayı tespit etmekten" ibaret değil. O dosyanın hedefe nasıl ulaştırıldığı en az dosyanın kendisi kadar önemli.
Henüz öğrenme aşamasındayım ama Red Team tarafında savunma sistemlerinin mantığını anlayıp onların etrafından dolaşmayı görmek gerçekten ufuk açıcı!