Google XSS Oyunu Çözümleri – Mehmet INCE | Information Security
Google XSS Oyunu Çözümleri
24/06/2014 24/06/2014 by mehmet ince
Google XSS Oyunu
Google XSS güvenlik açığına karşı ne kadar hassas olduğunu belirten ve insanların bu konuda kendilerini geliştirmelerini sağlayan bir oyun hazırladı. Bu oyunda toplam 6 level bulunmakta. Bu yazının devamını okumadan önce level’ları geçmeye çalışmanızı öneririm.
Level çözümlerinde gerekmediği sürece detaylara değinilmemiştir. Detaylı araştırmalar yapmak için ilgili level’a özgür keyword’ler çözümlerin altında paylaşılmış durumdadır.
Karşımızda iframe ile çağırılmış bir sayfa bulunmakta. Başlangıçta çok kolay bir level bizi beklemekte. Arama kısmına aşağıdaki XSS Payload’ını yazarak level’i geçebilirsiniz.
Keyword : Reflected XSS
Web uygulamaları veri tabanları ile iletişim halindedirler. Eğer veri tabanında bulunan bir değer kullanıcı tarafından oluşturulmuş ise -yazılan yorumlar gibi- ve bu veri encode edilmeden kullanıcı tarafına iletiliyorsa XSS oluşabilir. Bu durumun simüle edildiği bu örnekte yorum kısmına aşağıdaki XSS Payload’ı yazılabilir.
Keyword: Stored XSS
var html = "Image " + parseInt(num) + "<br>"; html += "<img src='/static/level3/cloud" + num + ".jpg' />"; $('#tabContent').html(html);
Görüldüğü üzere tabContent id’li alana bir html image kodu eklenmekte. Bu imaj konu kullanıcı tarafından gönderilen num değerini içermekte. Bu noktada aşağıdaki şekilde img tag’i manipüle edilerek XSS zafiyeti kullanılmış olur.
Keyword: DOM XSS
İlk 3 level’da tüm XSS türlerine giriş yapılmıştı. Bu level biraz daha farklı ve açıkcası beni bir süre düşündürmeyi başarmış bir level oldu.
Yukarıda kod incelendiğinde, kullanıcıdan alınan girdinin startTimer fonksiyonuna parametre olarak aktarıldığı görülmektedir.
Kullanıcı girdisi olarak = 3’+alert(1)+’4
Yazılırsa html kod aşağıdaki şekile gelecektir ve XSS çalışmış olacaktır.
<img src="/static/loading.gif" onload="startTimer('3'+alert(1)+'4');" />
Keyword : HTML Attribute
Bu level’da ki girizahı çok beğenmekteyim. Özellikle her şeyin encoding/escaping olduğunu düşünen developerlara olayı çok güzel simüle eden bir level.
Şimdi linke tıklayın. Bu XSS payload’ında htmlentities vb fonksiyonların encode edeceği hiçbir karakter bulunmamasına rağmen XSS çalışmakta!
html script taglerinin src kısımları önemli alanlardır. Bu alanlara kullanıcı tarafından tanımlanmış değerler geldiği zaman, kullanıcılar farklı kaynaklardan JS include edebilirler. Bunu engellemek için aşağıdaki şekilde bir önlem alınmış bulunmaktadır.
Görüldüğü üzere kullanıcı girdisi eğer http vb bir yapı ile başlıyorsa bu dosyanın çağırılması engellenmektedir. Bunu aşmak için modern browserların url tanımlama imkanları bilinmelidir. IMG, SCRIPT, EMBED gibi taglerin src kısımlarına her zaman http:// ile başlayarak url tanımlaması yapılması zorunlu değildir.
Keyword : XSS html src tag
Categories Penetration TestTags xss
Akademik Bilişim 2014 Mersin – Üniversiteler ve Siber Güvenlik Sunumu
Açık Kaynak Kodlu Yazılımlara Güvenlik Açısından Katkı Sağlamak
Ben seviye 2yi yorumda html calisit umidiyle payloadu icine yerlestirdim ve calisti