Cross-Site Scripting | XSS | Siteler Arası Script Çalıştırma

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Cross-Site Scripting

Bu konuda, Cross-Site Scripting yani XSS'den bahsedeceğiz. Farklı XSS güvenlik açıklarıyla ilgili bilgiler vereceğiz ve nasıl önlenebileceğinden bahsedeceğiz.

XSS Nedir?

XSS web uygulamalarında bulunan bir güvenlik açığıdır ve kullanıcılar tarafından görüntülenen web sayfalarına istemci taraflı kodun enjekte edilmesine imkan verir. Öncelikle aynı kök politikasından bahsedeyim (same origin policy) diye geçer ve web uygulamaları güvenlik modelinde önemli bir unsurdur. Bu politikaya göre bir web tarayıcısı, bir web sayfasında yer alan scriptlerin ikinci bir web sayfası üzerindeki veriye erişimine sadece bu iki sayfa aynı köke sahipse izin vermektedir. Dolayısıyla XSS bu politikayı bir nevi bypasslar. Normalde XSS açıkları saldırganın bir kullanıcının yapabileceği şeyleri yapmak için ve verilerine erişmek için onun kılığına girmesini sağlar. Tam olarak bundan bahsetmeden önce ayrıcalıklı erişimden bahsedeyim ayrıcalıklı erişim, bir kullanıcının erişim düzeyini ifade eder, daha fazla izin gerektirir ve standart kullanıcı erişiminden daha üst düzey bir yeteneğe sahiptir. Az önce bahsettiğim kullanıcıya 'kurban' diyelim ve eğer kurban uygulama üzerinde ayrıcalıklı erişime sahipse yani yetkiliyse saldırgan da bütün sistemi ele geçirebilir.

XSS Nasıl Çalışır?

XSS açıkları manipüle edilerek sitenin kullanıcılara kötü amaçlı JavaScript döndürmesini sağlar. Bu zararlı kod kullanıcının tarayıcısında (browser) yürütüldüğünde kullanıcının uygulamayla etkileşimi tehlikeye atılmış olur. Bu arada eğer zaten XSS'i ben biliyorum diyorsanız konunun en alt kısmına giderek lableri çözmeye geçebilirsiniz.

SbiE5q.png

XSS proof of concept (kavram kanıtı)

Kendi tarayıcınızın rastgele JavaScriptleri yürütmesine neden olan bir payload enjekte ederek çoğu XSS güvenlik açığı onaylanabilir. Bunun için genellikle alert() fonksiyonu kullanılır çünkü kısa, zararsız ve başarıyla çağrıldığında gözden kaçırması oldukça zordur. Aslında konu sonundaki lablerin çoğunu kurbanın tarayıcısında alert() kullanarak çözebilirsiniz. Chrome kullananlar için ufak bir sıkıntı var. 92 sürümünden beri yani 20 temmuz 2021'den itibaren bu engellendi. Bunlar daha gelişmiş XSS saldırılarından bazılarını oluşturmak için kullanıldığından bazen alternatif bir PoC payloadı kullanmanız gerekir. Bu senaryoda da print() fonksiyonunu öneriyoruz. Lablerde tarayıcı olarak Chrome kullanıldığından bu bahsettiğim şeyden etkilenen lableri print() kullanarak çözebilirsiniz.

XSS Saldırı Türleri Nelerdir?

Üç ana XSS saldırı türü vardır:

Reflected XSS, saldırganın scriptinin HTTP isteğinden geldiği saldırı türü
Stored XSS, saldırganın scriptinin web sitesinin veritabanından geldiği saldırı türü
DOM-based XSS, güvenlik açığının sunucu tarafı yerine istemci tarafında olduğu saldırı türü

Reflected Cross-Site Scripting

maxresdefault.jpg


Reflected XSS kötü amaçlı bir payloadın web sitesine yapılan isteğin bir parçası olması durumudur. Cross-Site Scripting'in en basit çeşididir. HTTP isteğinden veri alındığında ortaya çıkar ve bu verileri yanıtına dahil eder örneğe bakalım:

HTTP:
https://insecure-website.com/status?message=All+is+well.
<p>Status: All is well.</p>

Veriler başka bir şekilde işlenmediğinden saldırgan aşağıdaki gibi bir saldırı oluşturabilir:



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

Kullanıcı eğer saldırgan tarafından oluşturulan URL'i ziyaret ederse, saldırganın scripti kullanıcının tarayıcısında yürütülür ve bu noktada da script herhangi bir eylemi gerçekleştirebilir ve kullanıcının erişimi olan herhangi bir veriyi alabilir.

Depolanmış XSS (kalıcı veya ikinci dereceden XSS olarak da bilinir), bir uygulama güvenilmeyen bir kaynaktan veri aldığında ve bu verileri daha sonraki HTTP yanıtlarına güvenli olmayan bir şekilde dahil ettiğinde ortaya çıkar.
Söz konusu veriler HTTP istekleri aracılığıyla uygulamaya gönderilebilir; örneğin, bir blog gönderisindeki yorumlar, bir sohbet odasındaki kullanıcı takma adları veya bir müşteri siparişindeki iletişim bilgileri. Diğer durumlarda, veriler diğer güvenilmeyen 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 paket verilerini görüntüleyen bir ağ izleme uygulaması.
Aşağıda depolanmış bir XSS güvenlik açığına basit bir örnek verilmiştir. Bir mesaj panosu uygulaması, kullanıcıların diğer kullanıcılara görüntülenen mesajlar göndermesine olanak tanır:

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

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

Kod:
<p><script>/* Bad stuff here... */</script></p>

DOM Tabanlı Siteler Arası Komut Dosyası Oluşturma

Guvenilir-Turler-ile-DOM-tabanli-siteler-arasi-betik-calistirma-guvenlik-959x615.png

DOM tabanlı XSS (DOM XSS olarak da bilinir), bir uygulama güvenilmeyen bir kaynaktan gelen verileri güvenli olmayan bir şekilde, genellikle verileri DOM'a geri 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'ler kullanmaktadır:

var search = document.getElementById('search').value;
var results = document.getElementById('results');
results.innerHTML = 'You searched for: ' + search;


Saldırgan girdi alanının değerini kontrol edebilirse, kendi komut dosyasının yürütülmesine neden olan kötü amaçlı bir değeri kolayca oluşturabilir:




Kod:
You searched for: <img src=1 onerror='/* Bad stuff here... */'>

Tipik bir durumda, girdi alanı, URL sorgu dizesi parametresi gibi HTTP isteğinin bir kısmından doldurulur ve saldırganın, yansıyan XSS ile aynı şekilde kötü amaçlı bir URL kullanarak bir saldırı gerçekleştirmesine olanak tanır.

XSS ne için kullanılabilir?

XSS-Sedat-Ozdemir.jpg


Siteler arası komut dosyası oluşturma güvenlik açığından yararlanan bir saldırgan genellikle şunları yapabilir:
  • Kurban kullanıcının kimliğine bürünmek veya onun gibi davranmak.
  • Kullanıcının erişebildiği tüm verileri okumak.
  • Kullanıcının gerçekleştirebildiği herhangi bir eylemi gerçekleştirmek.
  • Web sitesinde sanal tahrifat gerçekleştirme.
  • Kullanıcının oturum açma kimlik bilgilerini ele geçirme.
  • Web sitesine truva atı işlevselliği 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 giren kullanıcının durumuna bağlıdır. Örneğin:
  • Tüm kullanıcıların anonim olduğu ve tüm bilgilerin herkese açık olduğu bir broşür yazılımı uygulamasında, etki genellikle minimum düzeyde olacaktır.
  • Bankacılık işlemleri, e-postalar veya sağlık kayıtları gibi hassas veriler içeren bir uygulamada etki genellikle ciddi olacaktır.
  • Güvenliği ihlal edilen kullanıcı uygulama içinde yüksek ayrıcalıklara sahipse, etki genellikle kritik olur 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ır.
XSS Güvenlik Açıkları Nasıl Bulunur Ve Test Edilir?

A_Pentester___s_Guide_to_Cross-Site_Scripting__XSS_-1.png


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ılan ve saklanan XSS için manuel test normalde uygulamadaki her giriş noktasına bazı basit benzersiz girdilerin (kısa bir alfanümerik dize gibi) gönderilmesini, gönderilen girdinin HTTP yanıtlarında döndürüldüğü her konumun tanımlanmasını ve uygun şekilde hazırlanmış girdinin rastgele JavaScript çalıştırmak için kullanılıp kullanılamayacağını belirlemek için her konumun ayrı ayrı test edilmesini içerir. Bu şekilde, XSS'nin gerçekleştiği bağlamı belirleyebilir ve bundan yararlanmak için uygun bir yük seçebilirsiniz.

URL parametrelerinden kaynaklanan DOM tabanlı XSS için manuel test benzer bir süreci içerir: parametreye bazı basit benzersiz girdiler yerleştirmek, bu girdiyi DOM'da aramak için tarayıcının geliştirici araçlarını kullanmak ve istismar edilebilir olup olmadığını belirlemek için her konumu test etmek. Ancak, diğer DOM XSS türlerini tespit etmek daha zordur. URL tabanlı olmayan girdilerdeki "(document.cookie gibi)" veya HTML tabanlı olmayan lavabolardaki "(setTimeout gibi)" DOM tabanlı güvenlik açıklarını bulmak için JavaScript kodunu incelemenin yerini hiçbir şey tutamaz 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üvenliği ilkesi

İçerik güvenliği ilkesi (CSP - content security policy), 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 güvenlik açığından yararlanılmasını engelleyebilir veya azaltabilir. Genellikle CSP, temeldeki güvenlik açığından yararlanmayı sağlamak için atlatılabilir.

Asılı işaretleme enjeksiyonu

Asılı işaretleme enjeksiyonu, input filtreleri veya diğer savunmalar nedeniyle tam olarak siteler arası komut dosyası çalıştırmanın mümkün olmadığı durumlarda domainler arası veri yakalamak için kullanılabilen bir tekniktir. Kullanıcı adına yetkisiz eylemler gerçekleştirmek için kullanılabilecek CSRF tokenleri dahil olmak üzere, diğer kullanıcılar tarafından görülebilen hassas bilgileri yakalamak için genellikle kötüye kullanılabilir.

XSS saldırıları nasıl önlenir?

81137.png



XSS'i engellemek bazı durumlarda önemsizdir ancak uygulamanın karmaşıklığına ve kullanıcı tarafından kontrol edilebilen verileri işleme biçimine bağlı olarak çok daha zor olabilir.
  • Alındığı zaman input'u filtreleyin. Kullanıcı input'unun alındığı noktada, beklenen veya geçerli girdiye göre mümkün olduğunca sıkı bir şekilde filtreleyin.
  • Output verilerini kodlayın. Kullanıcı tarafından kontrol edilebilen verilerin HTTP yanıtlarında çıktılandığı noktada çıktının etkin içerik olarak yorumlanmasını önlemek için kodlayın. Çıktı içeriğine 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-Type ve X-Content-Type-Options başlıklarını kullanabilirsiniz.
  • İçerik güvenliği ilkesi. Son bir savunma hattı olarak, hala meydana gelen herhangi bir XSS güvenlik açığının önem derecesini azaltmak için içerik güvenliği ilkesini (CSP) kullanabilirsiniz.

Siteler arası script çalıştırma hakkında sık sorulan sorular

S.S.S..png


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 meydana gelen 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ına kıyasla daha az istismar edilir.

XSS ve CSRF arasındaki fark nedir? XSS, bir web sitesinin kötü amaçlı JavaScript döndürmesine neden olmayı içerirken CSRF, kurban bir kullanıcıyı yapmak istemedikleri eylemleri gerçekleştirmeye teşvik etmeyi içerir.

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

PHP'de XSS'yi nasıl engellerim? Inputlarınızı izin verilen karakterler olacak şekilde beyaz listeyle filtreleyin ve yazım ipuçlarını veya tip atamayı kullanın. HTML bağlamları için htmlentities ve ENT_QUOTES veya JavaScript bağlamları için JavaScript Unicode kaçışları ile output'larınızı sonlandırın.

Java'da XSS'yi nasıl engellerim? Inputlarınızı izin verilen karakterlerden oluşan bir beyaz listeyle filtreleyin ve çıktınızı HTML için kodlamak üzere Google Guava gibi bir kitaplık kullanın veya JavaScript için JavaScript Unicode çıktıları kullanın.



Çevirmenler: @Gauloran @Beklenmeyen Misafir @Dolyetyus
Orijinal Makale:
 
Son düzenleme:
  • Beğen
Tepkiler: 419

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 1

  • Bu lab çok basit arama(Search) kısmında basit bir reflected xss açığı içeriyor alert() fonksiyonunu kullanarak xss saldırısı gerçekleştirin.

lab linki için TIKLA
 
Son düzenleme:

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 2

  • Bu lab yorum kısmında stored xss açığı içeriyor yine oldukça basit bir lab. Labi çözmek için blog yazısını görüntüleyip bir yorum yapın yorumda da alert fonksiyonunu kullanın.

lab linki için: TIKLA
 
Son düzenleme:

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 3

  • Bu lab arama kısmında dom xss açığı içeriyor. Verileri sayfaya yazan javascript fonksiyonu 'document.write' kullanılıyor. Sitenin urlsini kullanarak kontrol edebileceğiniz location.search'ten gelen datayla document.write fonksiyonu çağrılıyor. Labı çözmek için alertı kullanarak xss saldırısı gerçekleştirin yine bir önceki labteki gibi.

lab linki için: TIKLA
 
Son düzenleme:

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 4

  • Bu lab dom xss açığı içeriyor yine arama kısmında. yine location.search'ten gelen data kullanılarak bir div elementinin HTML içeriğini değiştiren innerHTML var.
  • Bu labi çözmek için xss saldırısı gerçekleştirin ve yine alert fonksiyonunu kullanmalısınız.

lab linki için: TIKLA
 

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 5

  • Submit feedback sayfasına gidin orada dom xss açığı var jQuery kütüphanesinden $ kullanıyor anchor elementi bulmak için ve location.search'ten gelen datayı kullanarak href özelliğini değiştiriyor. javascript:alert(document.cookie) kullanacaksınız.

not: Anchor elementi, HTML'de bağlantılar oluşturmak için kullanılan bir etikettir.

lab linki için: TIKLA
 

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 6

  • Bu lab home page sayfasında (ana sayfa) dom xss açığı içeriyor. location.hash özelliği ile verilen başlıktaki posta otomatik scroll yapmak için jQuery'den $() kullanıyor. Bu labi çözmek için print() fonksiyonunu kullan (kurbanın tarayıcısında kullanılacak)

lab linki için: TIKLA
 
Son düzenleme:

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 7
  • Bu lab <> işaretlerinin html kodlaması ile ifade edildiği arama kısmında (search butonunun yanındaki kutucuk) reflected xss açığı içeriyor. bu labı çözmek için yine alert fonksiyonunu kullanarak xss saldırısı gerçekleştirmeniz lazım.
  • HTML encoded kullanmak, potansiyel çapraz site komut dosyası (XSS) saldırılarını engellemeye yardımcı olur. Bu sayede, özel karakterler ve işaretler doğru bir şekilde gösterilir ve HTML belgesinin yapısını bozmazlar. Sizin alert() fonksiyonunu tetikleyebilmeniz kurbanda da çalışacağı anlamına gelmiyor. payloadınızı farklı özelliklerle enjekte etmeniz gerekebilir

lab linki için: TIKLA
 

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 9

bu lab arama kısmında reflected xss açığı içeriyor. yine html encoded bundan yukarıdaki yorumlarımda bahsetmiştim. reflection kısmı yani yansıma JavaScript stringinde gerçekleşiyor.

lab linki: TIKLA
 

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab 10

  • bu labe gidin ürünler var view details butonuna tıklayın detayları göster anlamına geliyor. açılan sayfada biraz aşağı kaydırın check stock diye bir buton var onun yanındaki kısımda (seçme özelliği) dom xss açığı mevcut. sitenin urlsini kontrol edebileceğiniz location.searchten gelen datayla document.write fonksiyonu çağrılıyor. Yine alert kullanarak çözebilirsiniz.

lab linki: TIKLA
 

Gauloran

Moderasyon Ekibi Lideri
7 Tem 2013
8,204
678
Lab1: Açılı parantez ve çift tırnak HTML kodlu AngularJS ifadesinde DOM XSS

Bu laboratuvar, arama işlevi içindeki bir AngularJS ifadesinde DOM tabanlı siteler arası komut dosyası oluşturma güvenlik açığı içermektedir.

AngularJS, ng-app özniteliğini (AngularJS yönergesi olarak da bilinir) içeren HTML düğümlerinin içeriğini tarayan popüler bir JavaScript kütüphanesidir. HTML koduna bir yönerge eklendiğinde, JavaScript ifadelerini çift küme parantezleri içinde çalıştırabilirsiniz. Bu teknik, açılı parantezler kodlanırken kullanışlıdır.

Bu laboratuvarı çözmek için, bir AngularJS ifadesini çalıştıran ve alert fonksiyonunu çağıran bir siteler arası komut dosyası saldırısı gerçekleştirin.

LabLink; Lab: DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encoded | Web Security Academy

Lab2: Yansıtılmış DOM XSS

Bu laboratuvarda yansıtılan bir DOM güvenlik açığı gösterilmektedir. Yansıyan DOM güvenlik açıkları, sunucu tarafı uygulaması bir istekten gelen verileri işlediğinde ve verileri respond'da yansıttığında ortaya çıkar. Sayfadaki bir komut dosyası daha sonra yansıtılan verileri güvenli olmayan bir şekilde işler ve sonuçta tehlikeli bir veri havuzuna yazar.

Bu laboratuvarı çözmek için alert() işlevini çağıran bir enjeksiyon oluşturun.

LabLink;Lab: Reflected DOM XSS | Web Security Academy

Lab3: Saklanan DOM XSS

Bu laboratuvar, blog yorum işlevindeki depolanmış bir DOM güvenlik açığını göstermektedir. Bu laboratuvarı çözmek için alert() işlevini çağırarak bu güvenlik açığından yararlanın.

LabLink;Lab: Stored DOM XSS | Web Security Academy

Lab4: Çoğu etiket ve özniteliğin engellendiği HTML içeriğine yansıtılmış XSS

Bu laboratuvar, arama işlevinde yansıtılmış bir XSS güvenlik açığı içerir ancak yaygın XSS vektörlerine karşı koruma sağlamak için bir web uygulaması güvenlik duvarı (WAF) kullanır.

Laboratuvarı çözmek için, WAF'ı atlayan ve print() işlevini çağıran bir siteler arası komut dosyası saldırısı gerçekleştirin.

LabLink;Lab: Reflected XSS into HTML context with most tags and attributes blocked | Web Security Academy

Lab5: Özel olanlar hariç tüm etiketlerin engellendiği HTML bağlamına yansıtılmış XSS

Bu laboratuvar, özel olanlar hariç tüm HTML etiketlerini engeller.

Laboratuvarı çözmek için, özel bir etiket enjekte eden ve document.cookie dosyasını otomatik olarak uyaran bir siteler arası komut dosyası saldırısı gerçekleştirin.

LabLink; Lab: Reflected XSS into HTML context with all tags blocked except custom ones | Web Security Academy

Lab6: Bazı SVG biçimlendirmelerine izin verilen yansıtılmış XSS

Bu laboratuvarda basit bir yansıtılmış XSS güvenlik açığı vardır. Site genel etiketleri engeller ancak bazı SVG etiketlerini ve olaylarını kaçırmaktadır.

Laboratuvarı çözmek için alert() fonksiyonunu çağıran bir siteler arası komut dosyası saldırısı gerçekleştirin.

LabLink; Lab: Reflected XSS with some SVG markup allowed | Web Security Academy

Lab7: Kanonik bağlantı etiketinde yansıtılmış XSS

Bu laboratuvar, kullanıcı girdisini kanonik bir bağlantı etiketinde yansıtır ve açılı parantezlerden kaçar.

Laboratuvarı çözmek için, ana sayfaya uyarı işlevini çağıran bir öznitelik enjekte eden bir siteler arası komut dosyası saldırısı gerçekleştirin.

Saldırınıza yardımcı olması için, simüle edilen kullanıcının aşağıdaki tuş kombinasyonlarına basacağını varsayabilirsiniz:

ALT+SHIFT+X
CTRL+ALT+X
Alt+X

Bu laboratuvar için amaçlanan çözümün yalnızca Chrome'da mümkün olduğunu lütfen unutmayın.

LabLink; Lab: Reflected XSS in canonical link tag | Web Security Academy

Lab8: Tek tırnak ve ters eğik çizgi kaçmış bir JavaScript dizesine yansıtılmış XSS

Bu laboratuvar, arama sorgusu izleme işlevinde yansıyan bir siteler arası komut dosyası güvenlik açığı içermektedir. Yansıma, tek tırnak işaretleri ve ters eğik çizgileri atlanmış bir JavaScript dizesi içinde gerçekleşir.

Bu laboratuvarı çözmek için JavaScript dizesinin dışına çıkan ve alert işlevini çağıran bir siteler arası komut dosyası saldırısı gerçekleştirin.

LabLink; Lab: Reflected XSS into a JavaScript string with single quote and backslash escaped | Web Security Academy

Lab9: Açılı parantezler ve çift tırnaklı HTML kodlu bir JavaScript dizisine Reflected XSS saldırısı

Bu laboratuvar, arama sorgusu izleme işlevinde açılı parantezlerin ve çift tırnakların HTML kodlu olduğu ve tek tırnakların kaçtığı yansıtılmış bir siteler arası komut dosyası güvenlik açığı içerir.

Bu laboratuvarı çözmek için JavaScript dizesinden ayrılan ve alert işlevini çağıran bir siteler arası komut dosyası saldırısı gerçekleştirin.

LabLink; Lab: Reflected XSS into a JavaScript string with angle brackets and double quotes HTML-encoded and single quotes escaped | Web Security Academy

Lab10: Açılı ayraçlar, çift tırnak ile HTML kodlu, tek tırnak ve ters eğik çizgi ile onclick olayına depolanan XSS saldırısı


Bu laboratuvar, yorum işlevinde depolanmış bir siteler arası komut dosyası çalıştırma güvenlik açığı içermektedir.

Bu laboratuvarı çözmek için, yorum yazarının adına tıklandığında uyarı işlevini çağıran bir yorum gönderin.

LabLink; Lab: Stored XSS into onclick event with angle brackets and double quotes HTML-encoded and single quotes and backslash escaped | Web Security Academy

çeviren: @Beklenmeyen Misafir
 
Moderatör tarafında düzenlendi:

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 21: Köşeli parantezler, tek tırnak, çift tırnak, ters eğik çizgi ve ters tikler içeren Unicode-escaped şablon içerisine XSS saldırısı

Bu laboratuvar, arama blog fonsiyonunda bir reflected XSS güvenlik açığı içermektedir. Yansıma (reflection), açılı ayraçlar ([]), HTML kodlu tek ve çift tırnaklı (' ve ") ve ters tırnak işaretli (`) bir şablon dizesi içinde gerçekleşir. Bu laboratuvarı çözmek için, şablon dizesinin içindeki alert fonksiyonunu çağıran bir XSS komut dosyası çalıştırabileceğiniz bir saldırı gerçekleştirin.

Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 22: Tanımlama bilgilerini (cookie'leri) çalmak için XSS'ten yararlanma

Bu laboratuvar, blog yorumları fonksiyonunda saklanan bir XSS güvenlik açığı içermektedir. Simüle edilmiş bir kurban kullanıcı tüm yorumları gönderildikten sonra görüntüler. Laboratuvarı çözmek için kurbanın cookie'sini ele geçirin, ardından kurbanın kimliğine bürünmek için bu cookie'leri kullanın.

Not: Akademi platformunun üçüncü taraflara saldırmak için kullanılmasını önlemek amacıyla güvenlik duvarımız laboratuvarlar ve isteğe bağlı harici sistemler arasındaki etkileşimleri engeller. Laboratuvarı çözmek için Burp Collaborator'ın varsayılan default sunucusunu kullanmalısınız.

Bazı kullanıcılar bu laboratuvar için Burp Collaborator gerektirmeyen alternatif bir çözüm olduğunu fark edebilirler. Ancak bu çözüm, cookie'yi dışarı çalmaktan çok daha kaba ve tercih edilmeyen bir yoldur.


Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 23: Parolaları çalmak için XSS'ten yararlanma

Bu laboratuvar, blog yorumları fonksiyonunda saklanan bir XSS güvenlik açığı içermektedir. Simüle edilmiş bir kurban kullanıcı tüm yorumları gönderildikten sonra görüntüler. Laboratuvarı çözmek için güvenlik açığından yararlanarak kurbanın kullanıcı adını ve parolasını çalın ve ardından kurbanın hesabına giriş yapmak için bu kimlik bilgilerini kullanın.

Not: Akademi platformunun üçüncü taraflara saldırmak için kullanılmasını önlemek amacıyla güvenlik duvarımız laboratuvarlar ve isteğe bağlı harici sistemler arasındaki etkileşimleri engeller. Laboratuvarı çözmek için Burp Collaborator'ın varsayılan default sunucusunu kullanmalısınız.

Bazı kullanıcılar bu laboratuvar için Burp Collaborator gerektirmeyen alternatif bir çözüm olduğunu fark edebilirler. Ancak bu çözüm, kimlik bilgilerini çalmaya kıyasla çok daha kaba ve tercih edilmeyen bir yoldur.


Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 24: CSRF gerçekleştirmek için XSS'den yararlanma

Bu laboratuvar, blog yorumları işlevinde saklanan bir XSS güvenlik açığı içermektedir. Laboratuvarı çözmek için bir CSRF saldırısı gerçekleştirmek için güvenlik açığından yararlanın ve blog yazısı yorumlarını görüntüleyen birinin e-posta adresini değiştirin.

Aşağıdaki kimlik bilgilerini kullanarak kendi hesabınıza giriş yapabilirsiniz:
Kullanıcı:
wiener
Şifre: peter

Uyarı: Eğer konuları ve eğitim setimizi sırası ile okuyorsanız lütfen bu laboratuvarın henüz ele almadığımız konuların biraz anlaşılmasını gerektirdiğini unutmayın. Sıkışırsanız endişelenmeyin; bilginizi daha da geliştirdikten sonra tekrar çözmeyi deneyin.

İpucu: Halihazırda başka bir kullanıcı tarafından alınmış bir e-posta adresini kaydedemezsiniz. Güvenlik açığını test ederken kendi e-posta adresinizi değiştirirseniz kurbana teslim ettiğiniz son exploit için farklı bir e-posta adresi kullandığınızdan emin olun.


Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 25: String'siz AngularJS sandbox kaçışı ile reflected XSS

Bu laboratuvar, AngularJS'yi $eval fonksiyonunun bulunmadığı ve AngularJS'de herhangi bir dize kullanamayacağınız alışılmadık bir şekilde kullanır.

Laboratuvarı çözmek için sandbox'tan kaçan ve
$eval fonksiyonunu kullanmadan alert fonksiyonunu çalıştıran bir XSS saldırısı gerçekleştirin.

Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 26: String'siz AngularJS sandbox kaçışı ve SCP ile reflected XSS

Bu laboratuvarda CSP ve AngularJS kullanılmaktadır.

Laboratuvarı çözmek için CSP'yi atlatan, AngularJS sandbox'undan kaçan ve
document.cookie'yi uyaran bir XSS saldırısı gerçekleştirin.

Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 27: Event handler'ları ve engellenen href attribute'leri ile reflected XSS

Bu laboratuvar, bazı beyaz listeye alınmış etiketlerle birlikte bir reflected XSS güvenlik açığı içermektedir ancak tüm olaylar ve bağlantı href nitelikleri engellenmiş durumdadır.

Laboratuvarı çözmek için tıklandığında
alert fonksiyonunu çağıran bir vektörü enjekte edecek bir XSS saldırısı gerçekleştirin.

Simülasyondaki laboratuvar kullanıcısını vektörünüze tıklamaya teşvik etmek için vektörünüzü "Tıkla" (Click) kelimesiyle etiketlemeniz gerektiğini unutmayın. Örneğin:

HTML:
<a href="">Click me</a>

Lab linki:
 

Dolyetyus

Özel Üye
21 Nis 2020
1,208
677
Delft
Lab 28: Bazı karakterlerin engellendiği bir JavaScript URL'sinde Reflected XSS

Bu laboratuvar input'unuzu bir JavaScript URL'sine yansıtır ancak her şey göründüğü gibi değil. Bu başlangıçta önemsiz bir meydan okuma gibi görünüyor ancak uygulama, XSS saldırılarını önlemek amacıyla bazı karakterleri engellemekte.

Laboratuvarı çözmek için
alert mesajının herhangi bir yerinde bulunan 1337 dizesiyle alert fonksiyonunu çağıran bir XSS saldırısı gerçekleştirin.

Lab linki:
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.