bWAPP – XSS Reflected AJAX/JSON, JSON yanıtı döndüren web sayfasında Cross-Site Scripting saldırısının gösterimidir. Bu açığın örneği için bWAPP kullanacağız. bWAPP kurulumu için buradaki bağlantıya tıklayabilirsiniz.

bWAPP XSS | Reflected (AJAX/JSON) Uygulaması

bWAPP açılır menüsünden Cross-Site-Scripting – Reflected (AJAX/JSON) açığını seçiyoruz ve Hack butonuna basıyoruz. Burada bizden film ismi girilmesini söylüyor. Arama butonu yok çünkü AJAX web sayfası olduğu için sayfayı yeniden yüklemeden web sayfasını güncelleyecek ve client-server etkileşimi gerçekleşecek.

bWAPP XSS

JavaScript alert kullanarak sayfa üzerinde bir örnek gerçekleştirelim.

<script>alert('deneme')</script>
bWAPP XSS

Burada gördüğünüz gibi payloadımız çalışmadı ve soru işareti olarak sonuç aldık çünkü JSON yanıtı JavaScript kodumuzu çift tırnak içine alıyor. Aşağıdaki PHP kodundan da bunu doğrulayabiliriz.

JavaScript kodu çalıştırılamazsa HTML kodu çalıştırmayı deneyebiliriz. Aşağıda bir HTML çalıştırmak için örnek yazıyoruz.

<b>Deneme</b>
bWAPP XSS

Sayfa içerisinde HTML kodu çalıştırabiliyoruz. Script çalıştırabilmek için HTML’de img taginde onError kullanıyoruz. onError, bir veri veya resim yüklenirken hata meydana geldiği zaman tetiklenir. onError içerisine alert ekliyoruz.

<img src=x onerror=alert('Deneme')>
bWAPP XSS

bWAPP – XSS için fonksiyonu img içerisinde AJAX websitesinde çalıştırmayı başardık. Bu hatanın çözümü olarak, PHP kullanılan ortamda özel karakterleri HTML’e dönüştürmek için htmlspecialchars API’si kullanılabilirsiniz.

bWAPP ile alakalı diğer çözümler için buradaki linke tıklayabilirsiniz.