Neler yeni
Bughane Academy

Bughane Academy, bug bounty, web güvenliği ve sızma testi alanında kendini geliştirmek isteyenler için kurulmuş Türkçe odaklı bir topluluktur.

Burada; gerçek güvenlik açıkları, recon ve exploit teknikleri, payload & bypass yöntemleri, araçlar, scriptler ve write-up’lar topluluk tarafından paylaşılır ve tartışılır.

Birlikte öğren, birlikte üret, birlikte güçlen.

Reflected XSS via Search Query Parameter

1atakan1

https://www.linkedin.com/in/atakan-ozbudak/
Avcı
Katılım
2 Ocak 2026
Mesajlar
60
Tepkime puanı
283
Puan
53
Merhaba Bughanê Üyeleri!

Bugün Lululemon domaininde tespit ettiğim ve raporladığım ve bounty kazandığım Reflected Cross-Site Scripting (XSS) zafiyetini detaylı teknik analiz ile paylaşıyorum.Screenshot_4.jpg

ZAFİYET DETAYLARI​

  • Hedef: https://uk.perf-nonprod-lululemon.com
  • Endpoint: /en-gb/search?q=
  • Parametre: q
  • Tür: Reflected Cross-Site Scripting (XSS)
  • Payload:
    JavaScript:
    <img src=x onerror=alert(document.cookie)>
  • Etkileşim: Kullanıcının Search butonuna basması veya Enter tuşuna basması gerekiyor.
  • Etkisi: Yetkili kullanıcı adına işlem gerçekleştirme, hassas bilgilerin erişilebilir olması, phishing/social engineering saldırılarının desteklenmesi ve uygulama içerisindeki kullanıcı yetkileri dahilinde kötüye kullanım.

ÇALIŞMA MANTIĞI​

Lululemon'un arama fonksiyonunda kullanılan q parametresi, kullanıcı tarafından kontrol edilebilmektedir.

Saldırgan, q parametresine özel olarak hazırlanmış HTML/JavaScript payload'u yerleştirerek kurban için kötü amaçlı bir URL oluşturabilir.

Örneğin:
Kurban bu URL'yi ziyaret ettiğinde payload doğrudan sayfa açılışında çalışmamaktadır. Ancak sayfa yüklendikten sonra Search butonuna basılması veya Enter tuşuna basılarak aramanın tetiklenmesi sonucunda kullanıcı tarafından kontrol edilen içerik HTML context'inde işlenmekte ve JavaScript kodu çalıştırılmaktadır.

Bu durum, saldırganın kullanıcı etkileşimini sosyal mühendislik veya phishing yöntemleriyle sağlaması halinde zafiyetin istismar edilebilmesine olanak tanımaktadır.


TEKNİK ANALİZ​

Zafiyet aşağıdaki payload kullanılarak doğrulanmıştır:

1.URL-encoded haliyle payload q parametresine gönderilmektedir:

2.Arama işlemi tetiklendiğinde payload tarayıcı tarafından yorumlanmakta ve onerror event handler'ı üzerinden JavaScript kodu çalıştırılmaktadır.

Örnek olarak:
HTML içerisine enjekte edildiğinde src=x değeri geçersiz olduğu için error eventi tetiklenmekte ve onerror içerisindeki JavaScript kodu çalışmaktadır.


ADIM ADIM REPRODUCE​

1. Hazırlanmış URL tarayıcıda açılır:

2. Sayfadaki Search butonuna tıklanır veya Enter tuşuna basılır.

3. Arama işlemi tetiklendiğinde payload'ın çalıştığı ve JavaScript kodunun tarayıcı içerisinde yürütüldüğü gözlemlenir.


ÖNEMLİ NOT​

Bu zafiyetin önemli bir noktası, payload'ın sayfa ilk açıldığında otomatik olarak tetiklenmemesidir.

Kullanıcının Search butonuna basması veya Enter tuşuna basması gerekmektedir.

Ancak bu durum zafiyetin istismar edilemeyeceği anlamına gelmemektedir. Saldırgan, hazırlanmış URL'yi bir phishing veya sosyal mühendislik senaryosuyla kurbana gönderebilir.

Örneğin saldırgan, kurbandan belirli bir ürünü veya kelimeyi aramasını isteyen bir senaryo hazırlayarak kullanıcının arama işlemini gerçekleştirmesini sağlayabilir.


BUSINESS IMPACT​

Reflected XSS başarılı şekilde istismar edildiğinde saldırgan, JavaScript kodunu kurbanın tarayıcısında etkilenen domain'in context'i içerisinde çalıştırabilir.

Bu durum, kurbanın uygulama içerisindeki yetkilerine bağlı olarak:

  • Kurban adına belirli işlemlerin gerçekleştirilmesi,
  • Kullanıcı tarafından erişilebilen hassas bilgilerin okunması,
  • Uygulama içerisindeki verilerin değiştirilmesi,
  • Kurbanla aynı yetki seviyesinde çeşitli işlemlerin gerçekleştirilmesi,
  • Phishing ve sosyal engineering saldırılarının daha güvenilir hale getirilmesi
gibi sonuçlara yol açabilir.

Özellikle yetkili veya ayrıcalıklı bir kullanıcının hedef alınması durumunda etkinin seviyesi daha yüksek olabilir.


ÇÖZÜM ÖNERİSİ​

Kullanıcı tarafından kontrol edilen q parametresi, HTML içerisine yansıtılmadan önce uygun şekilde output encoding / escaping işleminden geçirilmelidir.

Bunun yanında:

  • Kullanıcı girdileri uygun şekilde encode edilmelidir.
  • Kullanıcı kontrollü verilerin doğrudan HTML içerisine eklenmesinden kaçınılmalıdır.
  • Kullanılan output context'ine uygun encoding uygulanmalıdır.
  • Ek bir güvenlik katmanı olarak uygun bir Content Security Policy (CSP) uygulanabilir.
  • Arama parametresinin tüm kullanım noktaları kontrol edilerek benzer XSS yansımalarının bulunmadığından emin olunmalıdır.
 
Merhaba Bughanê Üyeleri!

Bugün Lululemon domaininde tespit ettiğim ve raporladığım ve bounty kazandığım Reflected Cross-Site Scripting (XSS) zafiyetini detaylı teknik analiz ile paylaşıyorum.Ekli dosyayı görüntüle 445

ZAFİYET DETAYLARI​

  • Hedef: https://uk.perf-nonprod-lululemon.com
  • Endpoint: /en-gb/search?q=
  • Parametre: q
  • Tür: Reflected Cross-Site Scripting (XSS)
  • Payload:
    JavaScript:
    <img src=x onerror=alert(document.cookie)>
  • Etkileşim: Kullanıcının Search butonuna basması veya Enter tuşuna basması gerekiyor.
  • Etkisi: Yetkili kullanıcı adına işlem gerçekleştirme, hassas bilgilerin erişilebilir olması, phishing/social engineering saldırılarının desteklenmesi ve uygulama içerisindeki kullanıcı yetkileri dahilinde kötüye kullanım.

ÇALIŞMA MANTIĞI​

Lululemon'un arama fonksiyonunda kullanılan q parametresi, kullanıcı tarafından kontrol edilebilmektedir.

Saldırgan, q parametresine özel olarak hazırlanmış HTML/JavaScript payload'u yerleştirerek kurban için kötü amaçlı bir URL oluşturabilir.

Örneğin:
Kurban bu URL'yi ziyaret ettiğinde payload doğrudan sayfa açılışında çalışmamaktadır. Ancak sayfa yüklendikten sonra Search butonuna basılması veya Enter tuşuna basılarak aramanın tetiklenmesi sonucunda kullanıcı tarafından kontrol edilen içerik HTML context'inde işlenmekte ve JavaScript kodu çalıştırılmaktadır.

Bu durum, saldırganın kullanıcı etkileşimini sosyal mühendislik veya phishing yöntemleriyle sağlaması halinde zafiyetin istismar edilebilmesine olanak tanımaktadır.


TEKNİK ANALİZ​

Zafiyet aşağıdaki payload kullanılarak doğrulanmıştır:

1.URL-encoded haliyle payload q parametresine gönderilmektedir:

2.Arama işlemi tetiklendiğinde payload tarayıcı tarafından yorumlanmakta ve onerror event handler'ı üzerinden JavaScript kodu çalıştırılmaktadır.

Örnek olarak:
HTML içerisine enjekte edildiğinde src=x değeri geçersiz olduğu için error eventi tetiklenmekte ve onerror içerisindeki JavaScript kodu çalışmaktadır.


ADIM ADIM REPRODUCE​

1. Hazırlanmış URL tarayıcıda açılır:

2. Sayfadaki Search butonuna tıklanır veya Enter tuşuna basılır.

3. Arama işlemi tetiklendiğinde payload'ın çalıştığı ve JavaScript kodunun tarayıcı içerisinde yürütüldüğü gözlemlenir.


ÖNEMLİ NOT​

Bu zafiyetin önemli bir noktası, payload'ın sayfa ilk açıldığında otomatik olarak tetiklenmemesidir.

Kullanıcının Search butonuna basması veya Enter tuşuna basması gerekmektedir.

Ancak bu durum zafiyetin istismar edilemeyeceği anlamına gelmemektedir. Saldırgan, hazırlanmış URL'yi bir phishing veya sosyal mühendislik senaryosuyla kurbana gönderebilir.

Örneğin saldırgan, kurbandan belirli bir ürünü veya kelimeyi aramasını isteyen bir senaryo hazırlayarak kullanıcının arama işlemini gerçekleştirmesini sağlayabilir.


BUSINESS IMPACT​

Reflected XSS başarılı şekilde istismar edildiğinde saldırgan, JavaScript kodunu kurbanın tarayıcısında etkilenen domain'in context'i içerisinde çalıştırabilir.

Bu durum, kurbanın uygulama içerisindeki yetkilerine bağlı olarak:

  • Kurban adına belirli işlemlerin gerçekleştirilmesi,
  • Kullanıcı tarafından erişilebilen hassas bilgilerin okunması,
  • Uygulama içerisindeki verilerin değiştirilmesi,
  • Kurbanla aynı yetki seviyesinde çeşitli işlemlerin gerçekleştirilmesi,
  • Phishing ve sosyal engineering saldırılarının daha güvenilir hale getirilmesi
gibi sonuçlara yol açabilir.

Özellikle yetkili veya ayrıcalıklı bir kullanıcının hedef alınması durumunda etkinin seviyesi daha yüksek olabilir.


ÇÖZÜM ÖNERİSİ​

Kullanıcı tarafından kontrol edilen q parametresi, HTML içerisine yansıtılmadan önce uygun şekilde output encoding / escaping işleminden geçirilmelidir.

Bunun yanında:

  • Kullanıcı girdileri uygun şekilde encode edilmelidir.
  • Kullanıcı kontrollü verilerin doğrudan HTML içerisine eklenmesinden kaçınılmalıdır.
  • Kullanılan output context'ine uygun encoding uygulanmalıdır.
  • Ek bir güvenlik katmanı olarak uygun bir Content Security Policy (CSP) uygulanabilir.
  • Arama parametresinin tüm kullanım noktaları kontrol edilerek benzer XSS yansımalarının bulunmadığından emin olunmalıdır.
Elinize emeğinize sağlık tebrik ederim eğitim videosu poc eklerseniz daha iyi olur
 
Geri
Üst