Merhaba arkadaşlar: gameofturk.com sayfasındaki keşfettiğim xss açığını anlatacağım.
Başlayalım:
#1#
XSS açıkları kısaca sayfaya enjekte edilen form elementlerin valuelerindeki html etiketleridir desek doğru olur.
Xss açıkları için formları kontrol etmek en doğru yöntemdir.
Kayıt olma formunu ele alıyoruz.
Xss açığı formdaki elementlerinin hepsi olabilir anlamak için hepsini denemeliyiz.
"<", ">" etiketlerini kullanarak kayıt olmaya çalıştım ve kayıt olmadı yani çalışmıyor.
Bu demek oluyor ki: <hikmet></hikmet> adında bir kullanıcı adı alamam.
Fakat ' (tırnak) işareti çalışmakta yani: hacii_' adında bir kullanıcı adı alabiliriz.
Sayfaya axa kullanıcı adıyla kayıt oldum ve giriş yaptığımda benim kullanıcı adım: axa yazıyor ve birde karakterin skin resmi var hemen aşağıdaki resime bakın göreceksiniz:
Başlayalım:
#1#
XSS açıkları kısaca sayfaya enjekte edilen form elementlerin valuelerindeki html etiketleridir desek doğru olur.
Xss açıkları için formları kontrol etmek en doğru yöntemdir.
Kayıt olma formunu ele alıyoruz.
Xss açığı formdaki elementlerinin hepsi olabilir anlamak için hepsini denemeliyiz.
"<", ">" etiketlerini kullanarak kayıt olmaya çalıştım ve kayıt olmadı yani çalışmıyor.
Bu demek oluyor ki: <hikmet></hikmet> adında bir kullanıcı adı alamam.
Fakat ' (tırnak) işareti çalışmakta yani: hacii_' adında bir kullanıcı adı alabiliriz.
Sayfaya axa kullanıcı adıyla kayıt oldum ve giriş yaptığımda benim kullanıcı adım: axa yazıyor ve birde karakterin skin resmi var hemen aşağıdaki resime bakın göreceksiniz:
axa skinini benim profil resmine vermiş. Hemen profil resmini merak ettim ve inceledim. Resimin kaynağına baktım.
Resimlerin kaynağı belli oldu cravatar.eu sayfasından oyuncuların skini geliyor.
Çalışma mantığı şu: cravatar.eu/avatar/isim/büyüklük
Yani isiminizi img src kısmına /avatar/isiminiz/büyüklük yeşil yazan yere enjekte edecek.
Peki ben tırnak işaretli bir isimle giriş yaptığımda örneğin hikmet' isimli bir kullanıcı adıyla giriş yapıyorum sonuç aşağıdaki resimde.
Resim yok çünkü resimin kaynağı bulunamadı ve hikmet' isimli kullanıcı adımı hikmet\\\' diye yazdı. PHP string fonksiyonlarından birisiyle alakalı herhalde herneyse, bence ilginç.
Hemen resimin kaynağını <img src= > kısmını inceliyelim aşağıdaki resime bakın:
src kısmını inceleyin yeşil ile işaretli yeri gördünüz mü 80.png yazıyor bundan bahsediyorum
Bu ne demek nasıl oldu ? hikmet' kullanıcı adımızın sonundaki tırnak ' işareti src= kısmını bitirdi kapattı ve ondan sonra yazılacakları src ' ın dışına yazdı. Yani tırnak işaretini anlamamız gerek inceleyin:
hikmet (tırnaksız isim):
<img src='avatar/hikmet/80.png'> // url doğru resim yüklendi.
hikmet' (tırnaklı isim):
<img src='avatar/hikmet' 80.png'> // url yanlış resim yüklenmedi.
Tırnak işareti işte src kısmını bitirdi ve 80.png yi dışarıya yazdırdı.
Yani sonuç src= kısmından çıktık ve <img> etiketinin içindeyiz.
şu an buna height= özelligini verebiliriz test edelim:
İsmimi 'height:599px yaptım ve sonuç :
Son düzenleme: