Xss (Cross Site Scripting) JavaScript ve HTML filtrelerinin eksik olduğu zamanlarda kullanıcının girdileri ile oluşan bir zaafiyettir.

Tam kelime anlamı olarak ise: siteler arası komut çalıştırma / çapraz kod çalıştırma olarak bilinen genelde web uygulamalarında rastlanan, kullanıcıların (saldırganların) tarayıcısında zarar verecek kodları ekleme yaparak oluşan bir saldırıdır.

Javascript, Html ve Css tarayıcı tarafından yorumlanan dillerden olduğu için girdi edilen kod doğrudan diğer kullanıcıları da etkileyebilir ve sisteme ciddi zararlar verebilir !

XSS 3 FARKLI DALDA İNCELENİR

1-> Reflected XSS

2-> DOM Based XSS

3-> Stored XSS

REFLECTED XSS NEDİR ?

Giriş alanlarına veya url alanlarına yapılan xss saldırısıdır.Bu saldırı sadece saldırgan tarafından görülür ve diğer kullanıcılar bu saldırıyı göremezler. Genellikle reflected xss saldırılarında girdiler veritabanına yazılmaz.

Örnek olarak herhangi bir girdi yazılabilecek url linkine : <script>alert(1)</script> kodu yazarak “1” diye ekrana hata alırız.

DOM BASED XSS NEDİR ?

Dom (Document Object Model) “Belge Nesnesi Modeli” olarak geçmektedir. Yani bir belge içerisinde bulunan nesnelerden kaynaklıdır diyebiliriz bu xss saldırısına. Biraz daha açmak gerekirse: kullandığımız tarayıcılar internetteki sayfaları bil belge olarak görür ve bu sayfaların (belgelerin) içerisinde yer aldığı tüm elemanları da nesne olarak görür. Bu nesnelere örnek vermek gerekirse: resimler, yazılar, formlar, testler gibi tüm elemanlar… Evet bu dom xss bu nesnelere müdahale etmemizi sağlar.

Ancak şunu bilmek de fayda var: DOM tabanlı xss saldırı esnasında HTML kaynağı ve dönen cevap tamamen aynı olacaktır. Çünkü dom xss sayfada bulunmaz – nesne tabanlı xss – sadece runtime esnasında veya sayfaların dom’u incelenirken gözlemlenebilmektedir..

STORED XSS NEDİR ?

Stored xss türünde ise kullanıcının (saldırganın) girdiği zararlı kod veritabanında veya bir sayfada tutulur. Bu kodlar sonrasında bu sayfalar ziyaret edildiğinde çalıştırılmış olur. EN ZARARLI XSS TÜRÜDÜR. Çünkü chrome, firefox gibi bir çok tarayıcı default ayarlarında gerekli önlemleri alamaz. Bu xss türünün genellikle websitelerinin iletişim, kayıt, mesaj formlarında bulunduğunu unutmayalım.

NOT*** : Xss türlerini 2’ye ayıran uzmanlarda vardır. Anlık değişiklik gösteren ya da database, dosya gibi yerlerde tutulan olarak. Ama ben olayın tam anlamıyla anlanması için 3’e ayrılması taraftarıyım.

Xss türlerinden bahsettiğimize göre olayın daha detaylı ve mantığının kavranması gerektiği için Xss ile cookie çalmakdan bahsedeceğim.

XSS İLE COOKİE ÇALMA 

Yazımızın başında da söylediğim gibi xss ile javascript çalıştırabiliriz. Yani javascript ile uygulamada-websitesinde neye erişim varsa oraya müdahale edebiliriz. Buna document.cookie nesnesi en iyi örnektir…

https://xsshunter.com adresine girip üye olduğunuz takdir de size bir çok payloadı hazır halde verir. Burada verdiği “Basic XSS payload” ile bir çok bilgiye ulaşabiliriz. Örnek olması amacıyla bu kodu filtrelenmemiş bir yere atıp yönetici tarafından görüntülendiğin de – çalıştığında – anlık görüntü, cookieler, html kaynak kodu gibi birçok değere ulaşabiliriz ve yönetici yetkisini alabiliriz.

Ama unutulmaması gerekir ki bu site sadece test amaçlı, eğitim amaçlı açılmıştır. Zararlı saldırı girişlerinde üyeliğiniz silinir..

Xss konusuna genel bir bakış yaptığımızı düşünüyorum bu konuda. İlerleyen günler de daha detaylı makaleleri paylaşacağım. Takip de kalın..

Daha detaylı bilgilendirme için kaynaklar: