teknik

XSS nedir? Siteler arası komut dosyası çalıştırma saldırıları açıklandı

XSS nedir? Siteler arası komut dosyası çalıştırma saldırıları açıklandı

 

Bir XSS saldırısı durumunda, saldırganlar, yapmaması gereken bir şeyi yapmaya zorlamak için bir web formuna veya web uygulaması URL’sine kötü amaçlı kod enjekte eder.


 
 

Siteler Arası Komut Dosyası Çalıştırma (XSS), bir bilgisayar korsanının bir web formuna veya bir web uygulamasının url’sine kötü amaçlı kod eklediği bir siber saldırıdır. JavaScript veya PHP gibi bir komut dosyası dilinde yazılmış bu kötü amaçlı kod, yüklemeye çalıştığınız sayfayı yok etmekten parolalarınızı veya diğer oturum açma kimlik bilgilerinizi çalmaya kadar her şeyi yapabilir.

XSS, modern internetin önemli bir yönünü kullanır; bu, çoğu web sayfasının, sayfalar yüklenirken, bazen tarayıcının kendisinde kod yürütülerek oluşturulduğu gerçeğidir. Bu, bu tür saldırıları önlemeyi zorlaştırabilir.

Ayrıca kontrol edin:

XSS saldırısı nasıl çalışır?

Herkes kötü amaçlı kod içeren bir web sitesi oluşturabilir. Siteler arası komut dosyası çalıştırma saldırısı durumunda, saldırgan, başka birinin web sitesini ziyaret ettiğinde kodunun kurbanın bilgisayarına ulaşması için her şeyi düzenler. Adındaki “haç” da buradan gelir. XSS saldırıları, gizlice kod koymak için bir web sunucusuna ayrıcalıklı erişim gerektirmeden bunu başarır. Bunun yerine, saldırganlar modern web sitelerinin çalışma biçiminden yararlanır.

Biri sizden web’in nasıl çalıştığına dair basit ve basit bir açıklama isterse, muhtemelen onlara şöyle bir şey söyleyebilirsiniz: Bir web sayfası oluşturmak isteyen kişi bir HTML belgesi yazar ve onu bir web sunucusuna yerleştirir; Kullanıcı bu sayfaya erişmek istediğinde tarayıcısını sunucu adresine yönlendirir, tarayıcı HTML kodunu indirir ve yorumlar ve kullanıcının web sayfasının bir kopyasını oluşturur.

Bu açıklama yanlış değil, ancak bazı yönler modası geçmiş (ve on yıldan fazla bir süredir var). Birincisi, hepsi olmasa da çoğu web sayfası bugün dinamiktir – yani, her ziyaretçiye aynı statik HTML’yi göstermezler, bunun yerine tarayıcı erişim istediğinde sunucunun veritabanındaki bilgilerden anında oluşturulurlar. Tarayıcının sunucudan aldığı sayfa genellikle istekle gönderilen bilgilere bağlıdır – bazen siteye erişmek için kullanılan URL’de parametre biçimini alan bilgiler. Web siteleri yalnızca metin ve grafiklerin nasıl görüntüleneceğini açıklayan HTML ve Basamaklı Stil Sayfalarından (CSS) oluşmakla kalmaz, aynı zamanda genellikle JavaScript olmak üzere komut dosyası dillerinde yazılmış yürütülebilir kodlar da içerir.

Bir XSS saldırısında, bilgisayar korsanı, kullanıcının bilgisayarında kötü amaçlı kod yürütmek için kullanıcı ile web sitesi arasındaki bu etkileşimi kullanır. ama nasıl? Aşağıdaki URL’yi göz önünde bulundurun:

https://www.google.com/search?q=CSO+çevrimiçi

Bunu tarayıcınızın adres çubuğuna girin ve “CSO Online” için Google arama sonuçlarını göreceksiniz. Aslında, göreceğiniz sayfa, tarayıcınızın arama çubuğuna veya Google ana sayfasına “CSO Online” girdiğiniz gibi görünür. Diğer şeylerin yanı sıra, bu ifadenin dağlardaki arama çubuğu da dahil olmak üzere sayfanın çeşitli yerlerinde göründüğünü fark edeceksiniz:

XSS nedir?  Siteler arası komut dosyası çalıştırma saldırılarını netleştirin

Ya bu URL, masum ve başarılı “CSO çevrimiçi” ifadesi yerine bunun gibi kötü amaçlı JavaScript kodu içeriyorsa?

https://www.google.com/search?<script>doEvil()</script>

doEvil() burada gerçekten kötü bir iş çıkarıyor. Google’ın, bu url’den döndürdüğünüz sayfada “CSO Online” ifadesini görüntülemek yerine, kötü javascript’i oluşturmakta olduğunuz sayfaya dinamik olarak entegre edeceğinden ve bu komut dosyasının tarayıcınızda yürütülmekte olduğundan endişe duyabilirsiniz. , karışıklığa neden oluyor . Google, çalışanları arasında çok sayıda yetenekli BT güvenlik uzmanına sahip olduğundan ve biraz sonra bahsedeceğimiz iyileştirici önlemler uyguladığından endişeleriniz yersiz olacaktır. Ancak her site çok dikkatli değildir ve bu size bu tür saldırıların nasıl çalıştığı hakkında bir fikir verir.

Ataki XSS

XSS saldırıları birkaç kategoriye ayrılır: yansıyan saldırılar, DOM tabanlı saldırılar ve depolanan saldırılar. İşte nasıl farklı oldukları:

  • Refleks saldırılar: Zayıf saldırılar olarak da bilinen kötü amaçlı JavaScript kodu, kurbanın tarayıcısından Google’a gönderilir, ardından yürütülebilir bir biçimde geri yansıtılır ve hiçbir zaman Google’ın sunucularında depolanmaz. Bu saldırılar genellikle, kötü niyetli bağlantının daha eğlenceli bir şey olarak gizlendiği ve kurbana e-posta veya SMS yoluyla gönderildiği bir kimlik avı dolandırıcılığının parçasıdır.
  • DOM tabanlı saldırılar: Bu, tarayıcıların temel HTML veya JavaScript kodundan nasıl bir web sayfası oluşturduğunu tanımlayan standart bir API olan Document Object Model adlı bir refleks saldırı türüdür. Çoğu DOM saldırısı, kötü amaçlı kodun hiçbir zaman sunucuya gönderilmemesi farkıyla, daha önce açıklanan refleks saldırısına benzer: bunun yerine tarayıcının kendisinde yürütülen bazı JavaScript işlevlerine parametre olarak iletilir; bu, koruma mekanizmalarının çalıştığı anlamına gelir. sunucu tarafında kullanıcıyı koruyamazlar. Ayrıntılarla ilgileniyorsanız, PortSwigger, DOM saldırılarının nasıl çalıştığına dair daha ayrıntılı bir açıklamaya sahiptir.
  • Saklanan saldırılar: aksi takdirde kalıcı; Saldırgan, kötü amaçlı kodu web sunucusuna kaydetmek için web sitesinin etkileşimli özelliklerini kullanır. Tipik bir örnekte, saldırgan kötü amaçlı JavaScript içeren bir blog gönderisine yorum bırakır. Birisi bu sayfayı bir sonraki yüklediğinde, kod yürütülecektir.
  • XSS saldırısına karşı güvenlik açığı

Bir web sitesini XSS saldırısına karşı savunmasız kılan nedir? Umarım şimdiye kadar yaptığımız tartışma bir miktar rehberlik sağlamıştır. Web uygulamanız safça kullanıcı girdisi alıyorsa, kötü amaçlı yürütülebilir kod olup olmadığını kontrol etmiyorsa ve bu verileri bir sayfa oluşturmak veya başka işlemler gerçekleştirmek için kullanıyorsa, bu tür saldırılara karşı savunmasızdır.

Ve riskler harika. Tarayıcı güvenliğinin ana yönü, bir sayfada yürütülen bir komut dosyasının diğer sayfadaki verilere ancak her iki tarafın da aynı Köken’e sahip olması durumunda (URI, ana bilgisayar adı, ve numara bağlantı noktası). Ancak, kurban web sitesine erişirken tarayıcıda kötü amaçlı JavaScript çalıştırılabilirse, tarayıcı JavaScript’in savunmasız web sitesiyle bir kaynak paylaşan diğer web sitelerinden verilere erişmesine izin verir. JavaScript, çerezlere ve diğer özel oturum bilgilerine erişebilir; bu, kurbanın internet hesaplarını hacklemek için iyi bir reçetedir.

Yükler XSS

Kötü amaçlı yazılım açısından yük, saldırganın gerektirdiği eylemleri gerçekleştiren yürütülebilir bir koddur. Bir XSS saldırısı durumunda, yük, saldırganın kurbanın tarayıcısını çalıştırması için kandırmak için çalıştırdığı bir komut dosyası kodudur.

GitHub’daki Payloadbox deposunda çok sayıda XSS yük şablonu listesi var. JavaScript’e aşina iseniz, onu incelemek size XSS saldırganlarının kirli işlerini nasıl yaptıkları hakkında bir fikir verebilir. Bununla birlikte, bir XSS saldırısı, yükü kesip URL’ye yapıştırmanın ötesine geçer: saldırganın, saldırıyı planlamak için yararlanmak istediği web uygulamasının belirli işlevlerini ve güvenlik açıklarını anlaması gerekir. Daha derine inmek ve bazı XSS ​​saldırı örnekleri görmek istiyorsanız, bir XSS saldırısını gösteren komut dosyası koduna derinlemesine bakmak için OWASP XSS web sitesine bakın.

XSS Koruması ve Önleme

Bir web uygulaması veya etkileşimli web sitesi oluşturuyor veya bakımını yapıyorsanız, olası siteler arası komut dosyası çalıştırma saldırılarından kaçınmak için tasarımınızda göz önünde bulundurmanız gereken üç ana teknik vardır.

  • Giriş verilerinin sterilizasyonu. Kötü amaçlı kodun girdi olarak iletilmesini ve kullanıcıya iade edilmesini önlemenin açık cevabı, komut dosyasını girdi olarak kabul etmemek. Girişinizi kesinlikle bunu göz önünde bulundurarak filtrelemelisiniz, ancak bunu söylemek yapmaktan daha kolay; Küçük yürütülebilir kod parçaları filtrelerden geçebilir. Bu sorunla başa çıkmanın bir yolu, kara liste yaklaşımı yerine beyaz liste kullanmaktır – örneğin, tüm kötü amaçlı kodların bir web formuna beslenmesini engelleyecek bir filtre yazmaya çalışmak yerine, başvurunuzu kabul etmek için yazmanız gerekir. veri belirli zamanlarda Formatlar (telefon numaraları, e-posta adresleri vb.) yalnızca istediğiniz bu olduğunda.
  • Çıktıdan kaçış. Öte yandan sorunun çözümü bu. Bir web uygulaması, kullanıcı girdisini bir web sayfasına geri gönderirse, o sayfada yürütülebilir hale gelmemesini sağlamak için bu veriler filtrelenmelidir. Kullanıcı HTML etiketlerini girdi olarak girerse, uygulamanın geçersiz kılınan karakterleri kullanması gerekir, böylece bu etiketler sayfanın HTML’si ile bütünleşmek yerine sonuç sayfasında metin olarak görünür.
  • Standart İçerik Güvenliği Politikası (CSP). CSP, metin girişinin dışında “beyaz listeye alma” yaklaşımını komut dosyası alanına alır: bir web uygulaması yalnızca kullanıcının güvenli olduğunu belirttiği kodu çalıştırmalıdır. Google’ın CSP’yi uygulamaya yönelik bazı harika kaynakları vardır.

XSS testi

XSS saldırıları için güvenlik açığı testi, bir web uygulamasının güvenliğini sağlamanın önemli bir yönüdür. OWASP, DOM saldırılarını önlemek veya siteler arası komut dosyası çalıştırmayı tersine çevirmek için uygulamaların nasıl test edilebileceğini ayrıntılandıran kaynaklara sahiptir. Bir XSS sayfası arıyorsanız, OWASP ayrıca, bazı XSS ​​savunma filtrelerini atlamak için kullanılabilecek XSS saldırı kodu içeren bir belgeye sahiptir; Kendi sistemlerinizde gerçekleştirebileceğiniz sızma testlerinde çok değerli olduğunu kanıtlayacaktır.

XSS ve CSRF

CSRF’nin XSS ile aynı bağlamda kullanıldığını duyabilirsiniz. XSS gibi bir kullanıcının tarayıcısını hedef alan bir saldırı olan Siteler Arası İstek Sahteciliğinin kısaltmasıdır. Temel fark, CSRF’nin kullanıcı için kimliği doğrulanmış bir oturum kullanması (belki de banka hesaplarına giriş yapmış olmaları), XSS’nin etkili olması için kimliği doğrulanmış bir oturuma ihtiyacı olmamasıdır.

Diyelim ki bir kullanıcı aynı anda hem Twitter’a hem de internet bankacılığına giriş yaptı ve şuna benzeyen bir Twitter bağlantısına tıkladı:

http://www.yourbank.com/sendmoney,do?from=you&to=attacker&amount=5000

Bankanızın oturum belirteçlerini yönetme biçimine ve kullandığınız tarayıcıya bağlı olarak, aniden çok daha kötü hale gelebilirler. XSS daha tehlikeli bir saldırı vektörüdür, ancak hem XSS hem de CSRF’ye karşı savunma yapmak önemlidir. OWASP, CSRF’ye karşı koruma önlemleri hakkında bir bilgi sayfası hazırlamıştır.

Yakın Zamandaki ve Kötü Ünlü XSS Saldırıları

En eski ve en ünlü siteler arası komut dosyası saldırılarından biri 2005 yılında, girişimci MySpace kullanıcısı Sammy Kamkar’ın profiline, siteyi ziyaret eden herkesin kimliğini otomatik olarak doğrulayacak JavaScript kodunu girebileceğini fark etmesi ve bu kodu web sitenizin profillerine kopyalamasıyla gerçekleşti. yeni arkadaşlar, Bu sayede bu sayfaları ziyaret eden herkes onun da arkadaşı olacak. (Senaryo, Kamkar’ın yeni arkadaşlarının her birinin “ilk sekize” girmesini sağladı – bunu anlamaktan korkuyoruz, orada olmalısınız, ama bize inanın, önemliydi.) 24 saat içinde bir milyondan fazla arkadaş edindi ve MySpace’i tüm siteyi kısa bir süreliğine kapatmaya zorladı.

Sözde Sami solucanının çoğunlukla zararsız olduğu ortaya çıktı. Ancak, diğerleri daha sinir bozucuydu:

• Ebay’de yıllardır bilgisayar korsanlarının kullanıcı oturum açma bilgilerini çalmasına izin veren XSS güvenlik açıkları vardı

• XSS saldırganları 2019’da Fortnite oyuncularından V-Bucks çalmayı başardı.

• Hacking grubu Magecart, 2018’de British Airways’e bir XSS saldırısıyla saldırdı ve yüz binlerce kullanıcı kimliğini çaldı

Ve siteler arası komut dosyası oluşturma bugün ciddi bir tehdit olmaya devam ediyor. 2021 itibariyle, Zimbra e-posta platformu Wordpress’te ve açık kaynaklı BT yönetim platformu Nagios’ta XSS güvenlik açıkları bulundu. Bilgisayar korsanlarının genellikle saldırı tekniklerini tek başına kullanmadığını unutmayın: siteler arası komut dosyası oluşturma, ALPACA olarak bilinen TLS joker saldırısının yakın zamanda keşfedilen karmaşık bir biçiminin bir bileşenidir. Tehlikeli tehditlerden kaçınmak için XSS güvenlik açıklarını kapattığınızdan emin olun.

Kaynak: STK

.

Ayrıca izle

Elon Musk, Ukrayna’da Starlink hizmetini ücretsiz veriyor

İlgili Makaleler

Başa dön tuşu