İframe Nedir ?
Iframe(Inline Frame),sayfa içine farklı kaynaklar (videolar,dökümanlar vb.) yerleştirmenize olanak tanıyan bir html elementidir.
Web sayfalarını tasarlarken kullanılan bir koddur.Mesela bi sayfaya girdiğiniz zamana o sayfada bazı videoların eklendiğini görebilirsiniz muhtemelen o sayfanın tasarımcısı ıframee elementi kullanarak eklemiştir.
<iframe src= “https://www.youtube.com/watch?v=brMaOyrO7KM” width=”1920” height=”1080”></iframe>
Yukarıda belirtilen kodda bulunan “src” source yani kaynak anlamına gelen kelimenin kısaltmasıdır.
“width” ve “height” kelimeleri ise eklediğimiz kaynağın sitemizdeki genişlik ve yüksekliğini ifade eder.
“<iframe>” etiketi iframe elementinin başlangıcını belirtir.”</iframe>” etiketi ise iframe elementinin bittiği kısmı ifade eder.
İframe İnjection Nedir ?
İframe elementinin gereksiz ve fazla kullanılması sonucunda ortaya çıkan bir zafiyettir.
Genellikle iframe injection zafiyetinin bulunduğu bir sitede “xss(cross site scripting)” ve “html(hypertext markup language)” isimli zafiyetlerinde bulunma olasılıkları yüksektir.
Eğer bu zafiyetin yanında html ya da xss gibi çok büyük tehlikelere yol açabilecek zafiyetlerde bulunuyorsa acilen o zafiyetlerin site sahibine bildirilmesi ve kapatılması gerekmektedir.
İframe injection zafiyetini çoğu kişi html injection ile beraber kullanabilmektedir.
İframe İnjection’un Yol Açtığı Riskler
Eğer saldırgan kötü amaçlı bir kişi ise iframe ile o siteye kendi oluşturmuş olduğu zararlı bir siteye ya da o sitenin içerisinde bulunan bir dosyaya yönlendirme yapabilir bunun sonucunda o yönlendirme ile site ziyaretçilerini kendi tuzağına düşürebilir.Bu da hem site sahibi için hemde ziyaretçiler için olduça tehlikeli bir durumdur.
Site kullanıcılarının kişisel bilgileri,kimlik bilgileri,banka bilgileri gibi birçok bilgiyi ele geçirme ve kendi lehine kullanma gibi riskleri oluşturmaktadır.
Phishing vs. saldırılar iframe injection zafiyet ile yapılabilir bu da istenmeyen sonuçlar doğurabilir.
İframe İnjection Korunma Yöntemleri
Mümkün olduğunca iframe elementi olmadan yönlendirme yapmak.
Mecbur olunduğunda gereğinden fazla iframe elementi kullanmamak.
Ssl sertifikası bulunmayan sitelerden dosya yada video yönlendirmesi yapmamak.
Eklenen site yada dosyanın içeriğinin önce analizinin yapılıp ardından eklenmesi.
Eğer bir blog sitesi için bu element kullanılıyorsa site ziyaretçilerine yapılan yönlendirmelere dikkat edilmesi konusunda uyarıda bulunmak.
Şimdi İframe İnjection Uygulama Zamanı..
Burada ParamUrl parametresinde 250 genişlik, 250 yükseklik değerinde robots.txt dosyasının iFrame olarak eklendiğini görüyoruz.
iFrame olarak eklenen robots.txt dosyasının bWAAP sunucusundaki robots.txt dosyası olduğunu gözlemledik.
Burada Url kısmındaki Url kısmında robots.txt kısmını silip youtube linkini yapıştırınca aşağıda gördüğünüz gibi iframe injection uyguluyor ve 250 genişlik, 250 yükseklik değerinde
youtube sayfasına yönlendirmeye çalışıyor.
Bu şekilde bir çalışma mantığı bulunmakta yukarda döndürülen parametreler ile zaafiyeti bulmaya çalıştık. Eğer bu yöntemle görüntülüyemeseydik BurpSuite üzerinden deniyecektik.
Tabi web sitesinde güvenlik duvarı tarzı yapılar olabilir bazı kodları kullanmamıza izin vermiyebilir /, : web site url tarzı kodları yazmamızı engelleyebilir böyle durumlarda da farklı encode yöntemleri denedilebilir.
Şimdi BurpSuit üzerinden deneme yapalım.
Firefox proxy ayarlarımızı aktif edip burpsuitimizi açıyoruz. Isteğimizi yapıyoruz ve burpsuit isteğimiz görüntülendi. Burpsuit üzerinden de zaafiyet sömürülebilir.
İframe mantığı kısaca bu şekildedir.
faydası olması dileğiyle, başka yazılarda görüşmek dileğiyle..