Cross Site Scripting (XSS) Nedir?
  1. Anasayfa
  2. Güvenlik Ürünleri

Cross Site Scripting (XSS) Nedir?

0

Siteler arası komut dosyası çalıştırma/ Çapraz kod çalıştırma Cross Site Scripting (XSS) olarak adlandıran genelde web uygulamalarında bulunan, saldırganın farklı bir kullanıcının tarayıcısında zarar verecek bir kod ekleme saldırısı da denilebilir.

Resim-1

 XSS güvenlik açıkları normalde saldırganın hedef kullanıcının gerçekleştirebileceği tüm eylemleri gerçekleştirmesine ve kullanıcının verilerine erişmesine izin verir. Hedef kullanıcının uygulama içinde erişim yetkisi varsa, saldırgan uygulamanın kontrolünü hedef gibi yönetebilir ve veriler üzerinde tam kontrol sahibi olabilir.
XSS saldırıları VBScript, ActiveX yapılabilir ama en çok HTML VE JavaScript kullanılıyor.

XSS nasıl karşılaşırız

  • XSS hedef kullanıcı tarafından çalıştırılan kötü amaçlı komut dosyası ile yapılabilir.
  • Hedef tarafından görüntülenen sayfanın link ile tıklanacak ve kullanıcın kimlik bilgilerini isteyen sahte sayfa ya da form şeklinde bir sayfa ile olabilir.
  • Hedef tarafından görüntülenen reklam içeren web sitelerinde.
  • Kullanıcıya ya da topluluğa gönderilen kötü niyetli e-postalarla XSS saldırısına maruz kalabilir.

XSS Nasıl Çalışır?


Resim-2


XSS için genelde kullanıcı adı,şifreler gibi bilgileri incelemek için saldırgan bir script dosyası yazar ve bunu web sitesine yükler. Yazılan script gizli bir katman görevi görür. Saldırgan daha sonra hedef kullanıcının tarayıcısı tarafından kaynak kod olarak anlamlandırılacak kötü amaçlı bir satır ekleyebilir. Burada önemli bir noktada olan cookie verilerinen doğru yaralanabilmektir.

Aşağıdaki komut satırları veri tabanından son yorumu alıp,HTML sayfasına ekler.


Resim-3

Bu kod çıktısının
sadece metinden oluştuğunu ve herhangi HTML veya başka bir kod içermediğini düşünelim. Artık XSS için saldırganın kötü niyetli kod içeren yorum ekleyebilir.


Resim-4

Sunucu, web sayfasını ziyaret eden kullanıcılara aşağıdaki HTML kodunu sunar:


Resim-5

Sayfa hedef kullanıcının tarayıcısına yüklendiğinde, saldırganın script dosyası yürütülür. Çoğu zaman, hedef bu durumu fark edemez.

Kullanıcıyı taklit etmek için saldırgan çerezleri bazı yollarla kendi sunucusuna gönderebilir,aşağıdaki gibi komut satırını kullanıcının tarayıcısına eklersek ;


Resim-6

Hedef tarayıcıdaki çerezleri kendimize yönlendirebiliriz.

Siteler Arası Komut Dosyası Saldırı Eklentileri

Saldırganın bir web sitesi ya da uygulama güvenliğini tehlikeye sokmak için bir XSS saldırısı yoluyla kullanabileceği genel kullanılan XSS saldırı komut listesinden bazılarına göz atalım. Kapsamlı bir listesi OWASP tarafından derlenmiştir. “https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet” linkinden eklentilere detaylı bakabilirsiniz.

  1. <script> Etiketi

<script> etiketi basit bir XSS eklentisidir. Bir JavaScript kodu script etiketinin  içine gömebilirsiniz .

Resim-7

  1. JavaScript Etiketleri

JavaScript olay payload gibi birçok farklı eklentide kullanılabilir. Bu sıkça başvuralan XSS saldırı komutudur.

Resim-8

  1. <body> Etiketi

Resim-9

  1. <img> Etiketi

Bazı tarayıcılar <img> snif de bulunan JavaScript’i çalıştırır .

Resim-10

  1. <iframe> Etiketi

<IFRAME> Etiketi mevcut sayfada başka bir HTML sayfası yerleştirmeyi amaçlar. Bir iframe JavaScript içerebilir, ancak iframe’deki JavaScript, tarayıcının CSP nedeniyle ana sayfanın DOM’sine erişemez. Bununla birlikte, iframe’ler kimlik avı saldırılarını kaldırmak için hala çok etkilidir.

Resim-11

  1. <input> Etiketi

Bazı tarayıcılarda type itelik <input> etiket olarak ayarlanan “image” e komut dosyası gizlenebilir.


Resim-12

  1. <link> Etiketi

<link< genellikle dış stil sayfaları bağlamak için kullanılır, bir komut dosyası içerebilir.

Resim-13

  1. <table> Etiketi

Görüntü yerine bir komut dosyasına başvurmak için kullanılabilir.


Resim-14

  1. <div> etiketi

<div> /<Table> ve benzer etiketlerdir. Arka plan belirtmek ve dolayısıyla bir senaryo gömebilirsiniz.

<!-- <div> tag XSS --
<div style="background-image: url(javascript:alert('XSS'))">
									
<!-- <div> tag XSS -->
					
<div style="width: expression(alert('XSS'));">
					
  1. <object> etiketi

<object> Harici bir siteden bir komut dosyası eklemek için kullanılabilir.

Resim-15

Siteler Arası Komut Dosyası Saldırı Türleri

XSS saldırısı gerçekleştirmenin temel amacı, başka kullanıcıların kimliğini çalmaktır. Bunun yöntemleri anlatıldığı gibi, çerezler, makers vs. olabilir. XSS, hedef için sahte sayfaları veya formları görüntülemek için de kullanılabilir. Ancak, bu saldırıyı yapmak için bazı sınıflandırmalar mevcuttur.

  1. YANSIYAN XSS

Bu, saldırı kodların girilmesinden sonra kötü amaçlı sonuçlar ortaya çıkar. Yansıtılan XSS kodu kalıcı olarak kaydedilmez. Bu durumda, kötü amaçlı kod herhangi bir web sitesi sonucuna yansıtılmaktadır. Saldırı kodu sahte URL’ye veya HTTP parametrelerine eklenebilir.

Hedef kullanıcıyı farklı şekillerde etkileyebilir örneğin; sahte sayfa göstererek veya kötü amaçlı bir e-posta göndererek.


Resim-16

 

  1. SAKLANAN XSS

Bu saldırı yansıyan XSS salsırısına göre daha riskli sayılabilir ve daha fazla hasar verebilir.

Bu tür saldırılarda, kötü amaçlı kod veya komut dosyası web sunucusuna (örneğin veritabanına) kaydedilir ve kullanıcıların uygun işlevleri aradığı her seferde çalıştırılır. Bu şekilde depolanan XSS saldırısında belirili hedef kullanıcı yoktur çok sayıda kullanıcı bu saldırıdan etkilenir. Ayrıca komut dosyası web sunucusunda depolandığından, web sitesini daha uzun süre etkiler.

Depolanan XSS saldırısı gerçekleştirmek için, kötü amaçlı komut dosyası güvenlik açığı bulunan giriş formu aracılığıyla gönderilmelidir ( Örneğin, yorum alanı veya inceleme alanı). Bu şekilde uygun komut dosyası veritabanına kaydedilir ve sayfa yükünde veya uygun işlev çağrısı üzerinde yürütülür.

En son kullanıcı görüşünün yüklendiği bir sayfamız olduğunu düşünün. Bu nedenle, görüş ya da yorum alanına aşağıda gösterildiği gibi komut dosyası ile yazılacaktır.


 

Resim-17

En son kullanıcı görüşü sayfada görüntüleneceği için veritabanına kaydedilecek ve sayfa yükünde yürütülecektir. Bir web sitesi XSS’e karşı savunmasızsa, sayfada yükleme çerezleri içeren açılır pencere görüntülenir. Bu senaryo oldukça basit ve daha az zararlıdır. Ancak, bu komut dosyası yerine, daha zararlı bir kod girilebilir.

  1. DOM XSS

Bu tür bir saldırı DOM ortamı değiştirilirken meydana gelir, ancak taraf kodu değişmez. DOM ortamı hedef kullanıcı tarayıcısında değiştirildiğinde, taraf kodu farklı şekilde çalışır.


Resim-18

XSS Test Araçları

Siteler Arası Komut Dosyası saldırısı en popüler riskli saldırılardan biri olduğundan, otomatik olarak sınamak için birçok araç vardır. Nessus ve Nikto gibi olası XSS ​​saldırılarının güvenlik açıklarını kontrol etmek için çeşitli tarayıcılar bulabiliriz. Her ikisi de oldukça güvenilir olarak kabul edilir.

XSS’yi Önleme Yolları

Bu tür bir saldırı en tehlikeli ve riskli olanlardan biri olarak kabul edilir. Bu saldırının popülaritesi nedeniyle, onu önlemenin birçok yolu var.

Yaygın olarak kullanılan ana önleme yöntemleri şunlardır:

  • Veri doğrulama
  • Filtreleme
  • Kaçan

Kullanıcı tarafından girilen her şey tam olarak doğrulanmalıdır, çünkü kullanıcının girişi çıktıya giden yolu bulabilir. Veri doğrulama, sistemin güvenliğini sağlamak için temel olarak adlandırılabilir.

Filtreleme fikri, kullanıcının girişinde riskli anahtar kelimeler aramak ve bunları kaldırmak veya boş dizelerle değiştirmektir.

Bu anahtar kelimeler olabilir:

  • <script> </script> etiketleri
  • Javascript komutları
  • HTML işaretlemesi

Bir diğer olası önleme yöntemi ise kaçan karakterlerdir . Bu uygulamada uygun karakterler özel kodlarla değiştiriliyor. Örneğin, <kaçan karakter <gibi görünebilir. Karakterlerden kaçmak için uygun kütüphaneler bulabileceğimizi bilmek önemlidir.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

https://www.mshowto.org

TAGs: Cross Site Scripting nedir?,XSS nedir ?

 

Bu İçeriğe Tepkin Ne Oldu?
  • 9
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Namık Kemal Üniversitesi Elektronik ve Haberleşme Mühendisliği ana dalından mezunum. Mezun olmadan önce proje bazlı PCI Elektronik, NKÜ teknokentte, öğrenciliğim son yılında ise İstanbul Büyükşehir Belediyesi Elektronik Sistemler Müdürlüğünde proje öğrenciliği yaparak haberleşme ve bilgi teknolojileri sektöründe altyapımı daha iyi hazırlama fırsatım oldu. Mezun olduktan sonra Belbim A.Ş.de information Security Engineer olarak görev almaktayım.Hobi olarak embedded systems ve satellite intelligence alanlarında kendimi geliştirmeye devam ediyorum.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir