Merhabalar, ben Eren Can Özmen, sizlere bu yazımda XSS zafiyeti nedir ? türleri nelerdir ? anlatmaya çalışacak ve bu türler üzerinden bazı case’ler gösteceğim. Anlatcak olduğum case’lere bu site üzerinden ulaşabilirsiniz: http://159.89.22.234 . İyi okumalar dilerim.
İlk Adım VPS Deploy Etme
Öncelikle, VPS’i deploy edeceğiniz platformu seçmek gerekiyor. Ben, tamamen bir arkadaşımın tavsiyesi üzerine Digital Ocean’dan VPS deploy ettim. 2 ay kadar kullanabileceğiniz 200 dolar ücretsiz bakiye veriyor. Kurulum işleminde ise sağ üstten “Create” tuşuna basıp basitçe VPS deploy edebilirsiniz. Burada dağıtım olarak LAMP seçmeniz sizin için kolaylık sağlayacaktır. LAMP, size Apache Server, MySQL gibi işinize yarayacak yazılımları paket halinde sunan bir framework’tür.
Nedir Bu XSS
Kısaca cevap verecek olursam, açılımı Cross-Site Scripting olup, anlamı siteler arası komut dosyası çalıştırma denebilir. Zafiyet, kullanıcı girdilerinin doğrulanmaması veya filtrelenmemesi ve diğer kullanıcıların bu girdiler sonucu mağdur olmasıdır. Genelde JavaScript kodlarından kaynaklanan bu durum, çerezlerin ve kredi kartı bilgilerinin çalınması, oturum bilgilerinin ele geçirilmesi gibi ciddi sonuçlar doğurabilmektedir. Genel anlamda üç kategoriye ayrılabilirler:
– Reflected XSS
– Stored XSS
– DOM-based XSS
Reflected XSS
Zararlı kodların bir veritabanı vb. bir yapıda saklanmadığı, doğrudan tetiklendiği XSS türüdür. Saldırıda, saldırgan zararlı kodu web sitesine gönderir ve bu kod hemen kullanıcıya geri yansıtılır. Kabaca bir örnekle, normal bir insanın canı lahmacun çeker ve arama yerine girerek bu aramayı yapar. Ancak kötü niyetli bir kişi arama yerine zararlı kod yazar ve ardından ulaştığı sonucu size gönderir. Bir tıkla istersen 🙂 https://tls.tc/R81dS
Reflected XSS GET isteği ile:
Görüleceği üzere herhangi bir filtreleme veya doğrulama yok. Bu ne demek? Arama yerine yazacağınız zararlı kod çalışacak. Basitçe, input olarak <script>alert(1)</script> yazabilirsiniz ya da yaratıcı biriyseniz baya eğlenebilirsiniz. Bu örnekte GET isteği ile bunu gerçekleştirdim. Farklı durumlara bakacak olursak…
Reflected XSS POST isteği ile:
GET isteğinden farklı olarak Farklı olarak POST isteği ile girdiler gönderilir ve işlenir.
Reflected XSS Header ile:
Burada giden isteğe Burp Suit ile giden isteği manipüle edecek olursak ve user-agnet bilgisini javascript kodu ile değiştirirsek tetikleyebilirsiniz.