Home xss attack nedir XSS Nedir

XSS Nedir

by erenakkus

XSS Nedir

XSS Nedir Siteler arası komut dosyası çalıştırma (XSS olarak da bilinir), bir saldırganın, kullanıcıların savunmasız bir uygulamayla sahip olduğu etkileşimleri tehlikeye atmasına olanak tanıyan bir web güvenlik açığıdır. Bir saldırganın, farklı web sitelerini birbirinden ayırmak için tasarlanmış aynı menşe politikasını atlatmasına olanak tanır. Siteler arası komut dosyası çalıştırma güvenlik açıkları, normalde bir saldırganın kurban kullanıcı gibi görünmesine, kullanıcının gerçekleştirebileceği herhangi bir eylemi gerçekleştirmesine ve kullanıcının herhangi bir verisine erişmesine izin verir. Kurban kullanıcının uygulama içinde ayrıcalıklı erişimi varsa, saldırgan uygulamanın tüm işlevselliği ve verileri üzerinde tam kontrol sahibi olabilir.

XSS

Bu bölümde, siteler arası komut dosyası yazmanın ne olduğunu açıklayacağız, siteler arası komut dosyası çalıştırma açıklarının farklı çeşitlerini açıklayacağız ve siteler arası komut dosyası çalıştırmanın nasıl bulunacağını ve önleneceğini açıklayacağız.

 

XSS nasıl çalışır? – XSS Nedir

Siteler arası komut dosyası çalıştırma, savunmasız bir web sitesini kullanıcılara kötü amaçlı JavaScript döndürmesi için manipüle ederek çalışır. Kötü amaçlı kod bir kurbanın tarayıcısında yürütüldüğünde, saldırgan uygulamayla etkileşimlerini tamamen tehlikeye atabilir.

 

XSS saldırılarının türleri nelerdir? – XSS Nedir

Üç ana XSS saldırısı türü vardır. Bunlar:

 

 

  • Kötü amaçlı komut dosyasının mevcut HTTP isteğinden geldiği yansıtılan XSS .
  • Kötü amaçlı komut dosyasının web sitesinin veritabanından geldiği depolanan XSS .
  • Güvenlik açığının sunucu tarafı kodundan ziyade istemci tarafı kodunda olduğu DOM tabanlı XSS .

Yansıtılmış siteler arası komut dosyası

Yansıyan XSS , siteler arası komut dosyasının en basit çeşididir. Bir uygulama bir HTTP isteğinde veri aldığında ortaya çıkar ve bu verileri güvenli olmayan bir şekilde anında yanıt içine dahil eder.

 

Aşağıda, yansıtılan bir XSS güvenlik açığının basit bir örneği verilmiştir:

 

 

https://insecure-website.com/status?message=All+is+well.

 

<p>Status: All is well.</p>

 

 

Uygulama, veriler üzerinde başka herhangi bir işlem yapmaz, bu nedenle bir saldırgan kolaylıkla aşağıdaki gibi bir saldırı oluşturabilir:

 

 

https://insecure-website.com/status?message=<script>/*+Bad+stuff+here…+*/</script>

 

<p>Status: <script>/* Bad stuff here… */</script></p>

 

Kullanıcı saldırgan tarafından oluşturulan URL’yi ziyaret ederse, saldırganın komut dosyası, kullanıcının uygulamayla oturumu bağlamında kullanıcının tarayıcısında yürütülür. Bu noktada, komut dosyası herhangi bir eylemi gerçekleştirebilir ve kullanıcının erişimi olan herhangi bir veriyi alabilir.

XSS Nedir Siteler arası komut dosyası çalıştırma (XSS olarak da bilinir), bir saldırganın, kullanıcıların savunmasız bir uygulamayla sahip olduğu etkileşimleri tehlikeye atmasına olanak tanıyan bir web güvenlik açığıdır. Bir saldırganın, farklı web sitelerini birbirinden ayırmak için tasarlanmış aynı menşe politikasını atlatmasına olanak tanır. Siteler arası komut dosyası çalıştırma güvenlik açıkları, normalde bir saldırganın kurban kullanıcı gibi görünmesine, kullanıcının gerçekleştirebileceği herhangi bir eylemi gerçekleştirmesine ve kullanıcının herhangi bir verisine erişmesine izin verir.

 

 

Siteler arası depolanan komut dosyası

Depolanan XSS (kalıcı veya ikinci dereceden XSS olarak da bilinir), bir uygulama güvenilir olmayan bir kaynaktan veri aldığında ortaya çıkar ve bu verileri daha sonraki HTTP yanıtlarına güvenli olmayan bir şekilde dahil eder.

 

Söz konusu veriler, HTTP istekleri aracılığıyla uygulamaya gönderilebilir; örneğin, bir blog gönderisine yapılan yorumlar, bir sohbet odasındaki kullanıcı takma adları veya bir müşteri siparişindeki iletişim bilgileri. Diğer durumlarda, veriler güvenilmeyen diğer kaynaklardan gelebilir; örneğin, SMTP üzerinden alınan mesajları görüntüleyen bir web posta uygulaması, sosyal medya gönderilerini görüntüleyen bir pazarlama uygulaması veya ağ trafiğinden gelen paket verilerini görüntüleyen bir ağ izleme uygulaması.

 

Burada, depolanmış bir XSS güvenlik açığının basit bir örneği verilmiştir. Bir mesaj panosu uygulaması, kullanıcıların diğer kullanıcılara gösterilen mesajlar göndermesine izin verir:

 

 

<p>Hello, this is my message!</p>

 

Uygulama, veriler üzerinde başka herhangi bir işlem yapmaz, bu nedenle bir saldırgan, diğer kullanıcılara saldıran bir mesajı kolayca gönderebilir:

 

 

<p><script>/* Bad stuff here… */</script></p>

 

 

DOM tabanlı siteler arası komut dosyası oluşturma

DOM tabanlı XSS ​​( DOM XSS olarak da bilinir ), bir uygulama, güvenilmeyen bir kaynaktan verileri güvenli olmayan bir şekilde, genellikle verileri DOM’a yazarak işleyen bazı istemci tarafı JavaScript içerdiğinde ortaya çıkar.

 

Aşağıdaki örnekte, bir uygulama, bir giriş alanından değeri okumak ve bu değeri HTML içindeki bir öğeye yazmak için bazı JavaScript kullanır:

 

 

var search = document.getElementById(‘search’).value;

var results = document.getElementById(‘results’);

results.innerHTML = ‘You searched for: ‘ + search;

 

Saldırgan, giriş alanının değerini kontrol edebiliyorsa, kendi komut dosyalarının yürütülmesine neden olan kötü niyetli bir değeri kolayca oluşturabilir:

 

 

You searched for: <img src=1 onerror=’/* Bad stuff here… */’>

 

Tipik bir durumda, giriş alanı URL sorgu dizesi parametresi gibi HTTP isteğinin bir kısmından doldurulur ve saldırganın yansıtılan XSS ile aynı şekilde kötü amaçlı bir URL kullanarak bir saldırı göndermesine izin verir.

 

XSS ne için kullanılabilir?

Siteler arası komut dosyası çalıştırma güvenlik açığından yararlanan bir saldırgan genellikle şunları yapabilir:

 

 

  • Mağdur kullanıcı olarak taklit veya maskeli balo.
  • Kullanıcının gerçekleştirebileceği herhangi bir eylemi gerçekleştirmek.
  • Kullanıcının erişebildiği tüm verileri okumak.
  • Kullanıcının oturum açma kimlik bilgilerini yakalamak.
  • Web sitesini sanal olarak tahrif etmek.
  • Trojan işlevselliğini web sitesine enjekte etmek.

XSS güvenlik açıklarının etkisi

Bir XSS saldırısının gerçek etkisi genellikle uygulamanın niteliğine, işlevselliğine ve verilerine ve tehlikeye atılan kullanıcının durumuna bağlıdır. Örneğin:

 

Tüm kullanıcıların anonim olduğu ve tüm bilgilerin halka açık olduğu bir broşür yazılımı uygulamasında, etki genellikle minimum düzeyde olacaktır.

Banka işlemleri, e-postalar veya sağlık hizmetleri kayıtları gibi hassas verileri tutan bir uygulamada, etki genellikle ciddi olacaktır.

Güvenliği ihlal edilen kullanıcının uygulama içinde yükseltilmiş ayrıcalıkları varsa, bu durumda etki genellikle kritik olacak ve saldırganın savunmasız uygulamanın tam kontrolünü ele geçirmesine ve tüm kullanıcıları ve verilerini tehlikeye atmasına olanak tanıyacaktır.

 

XSS güvenlik açıkları nasıl bulunur ve test edilir- XSS Nedir

XSS güvenlik açıklarının büyük çoğunluğu, Burp Suite’in web güvenlik açığı tarayıcısı kullanılarak hızlı ve güvenilir bir şekilde bulunabilir.

 

Yansıtılmış ve depolanmış XSS’nin manuel olarak test edilmesi, normalde uygulamadaki her giriş noktasına bazı basit benzersiz girdilerin (kısa bir alfanümerik dizgi gibi) gönderilmesini içerir; HTTP yanıtlarında gönderilen girdinin döndürüldüğü her konumu tanımlama; ve uygun şekilde hazırlanmış girdinin rastgele JavaScript çalıştırmak için kullanılıp kullanılamayacağını belirlemek için her bir konumu ayrı ayrı test etmek.

 

URL parametrelerinden kaynaklanan DOM tabanlı XSS’nin manuel olarak test edilmesi, benzer bir süreci içerir: parametreye bazı basit benzersiz girişler yerleştirmek, bu girdi için DOM’da arama yapmak için tarayıcının geliştirici araçlarını kullanmak ve her konumu istismar edip etmediğini belirlemek için test etmek. Ancak, diğer DOM XSS türlerinin algılanması daha zordur. URL tabanlı olmayan girdilerde (örneğin document.cookie) veya HTML tabanlı olmayan havuzlarda (benzer setTimeout) DOM tabanlı güvenlik açıklarını bulmak için, JavaScript kodunu incelemenin yerini hiçbir şey tutmaz ve bu da son derece zaman alıcı olabilir. Burp Suite’in web güvenlik açığı tarayıcısı, DOM tabanlı güvenlik açıklarının tespitini güvenilir bir şekilde otomatikleştirmek için JavaScript’in statik ve dinamik analizini birleştirir.

 

İçerik güvenlik politikası- XSS Nedir

İçerik güvenliği politikası (CSP), siteler arası komut dosyası çalıştırmanın ve diğer bazı güvenlik açıklarının etkisini azaltmayı amaçlayan bir tarayıcı mekanizmasıdır. CSP kullanan bir uygulama XSS benzeri davranış içeriyorsa, CSP bu güvenlik açığından yararlanılmasını engelleyebilir veya önleyebilir. Genellikle, CSP, temeldeki güvenlik açığından yararlanılmasını sağlamak için atlatılabilir.

 

XSS saldırıları nasıl önlenir- XSS Nedir

Siteler arası komut dosyası yazmayı önlemek bazı durumlarda önemsizdir ancak uygulamanın karmaşıklığına ve kullanıcı tarafından kontrol edilebilen verileri işleme yöntemlerine bağlı olarak çok daha zor olabilir.

 

Genel olarak, XSS güvenlik açıklarını etkili bir şekilde önlemek, aşağıdaki önlemlerin bir kombinasyonunu içerir:

 

Varışta filtre girişi. Kullanıcı girdisinin alındığı noktada, beklenen veya geçerli girdiye dayalı olarak olabildiğince sıkı bir şekilde filtre uygulayın.

Çıktıdaki verileri kodlayın. Kullanıcı tarafından kontrol edilebilen verilerin HTTP yanıtlarında çıktığı noktada, etkin içerik olarak yorumlanmasını önlemek için çıktıyı kodlayın. Çıktı bağlamına bağlı olarak bu, HTML, URL, JavaScript ve CSS kodlama kombinasyonlarının uygulanmasını gerektirebilir.

Uygun yanıt başlıklarını kullanın. Herhangi bir HTML veya JavaScript içermesi amaçlanmayan HTTP yanıtlarında XSS’yi önlemek için tarayıcıların yanıtları istediğiniz şekilde yorumlamasını sağlamak için Content-Typeve X-Content-Type-Optionsbaşlıklarını kullanabilirsiniz .

İçerik Güvenliği Politikası. Son bir savunma hattı olarak, hala meydana gelen XSS güvenlik açıklarının ciddiyetini azaltmak için İçerik Güvenliği Politikasını (CSP) kullanabilirsiniz.

 

Siteler arası komut dosyası oluşturma hakkında sık sorulan sorular – XSS Nedir

XSS güvenlik açıkları ne kadar yaygındır? XSS güvenlik açıkları çok yaygındır ve XSS muhtemelen en sık görülen web güvenlik açığıdır.

 

XSS saldırıları ne kadar yaygındır? Gerçek dünyadaki XSS saldırıları hakkında güvenilir veriler elde etmek zordur, ancak muhtemelen diğer güvenlik açıklarından daha az sıklıkla istismar edilmektedir.

 

XSS ve CSRF arasındaki fark nedir? XSS, bir web sitesinin kötü amaçlı JavaScript döndürmesine neden olurken, CSRF, kurban bir kullanıcının yapmayı amaçlamadıkları eylemleri gerçekleştirmesini teşvik etmeyi içerir.

 

XSS ve SQL enjeksiyonu arasındaki fark nedir? XSS, diğer uygulama kullanıcılarını hedefleyen bir istemci tarafı güvenlik açığıdır, SQL enjeksiyonu ise uygulamanın veritabanını hedefleyen bir sunucu tarafı güvenlik açığıdır.

 

PHP’de XSS’yi nasıl engellerim? Girişlerinizi, izin verilen karakterlerden oluşan bir beyaz listeyle filtreleyin ve yazım ipuçlarını veya tür atama kullanın. Çıktılarınızdan HTML bağlamları için htmlentitiesve ile çıkış yapın ENT_QUOTESveya JavaScript bağlamları için JavaScript Unicode çıkışları .

 

Java’da XSS’yi nasıl engellerim? Girişlerinizi izin verilen karakterlerden oluşan bir beyaz listeyle filtreleyin ve çıktınızı HTML bağlamları için HTML kodlamak için Google Guava gibi bir kitaplık kullanın veya JavaScript bağlamları için JavaScript Unicode çıkışları kullanın.

 

 
 
0 comment
0

Leave a Comment