[Owasp-turkey] ilginç bir xss vakası

Serkan Özkan serkanozkan at gmail.com
Sat Jul 16 02:35:04 EDT 2011


Bence buna jquery açığı değil mevcut api'lerin yanlış kullanılması, yani
geliştirici hatası demek daha doğru olur. Örneğin Bedirhan'ın gönderdiği
örnekte text() fonksiyonu yerine html() fonksiyonu kullanılmış olsa bu açık
oluşmayacaktı.


2011/7/15 Canberk BOLAT <canberk.bolat at gmail.com>

> Sanirim JQuery konusunda bahsettikleri 0day bu acik. Birkac yerde duymustum
> JQuery'de zafiyetler var diye
>
> 15 Temmuz 2011 15:01 tarihinde Bedirhan Urgun <bedirhanurgun at gmail.com>yazdı:
>
> selectmenu meselesinde jquery plugin'i HTML yaziyor (normal select
>> element'ini eski degerleri ile yeni element olusturarak ile DOM'a ekliyor).
>> Dolayisiyla ilk akla gelen append() metodunu kullaniyor. Dolayisiyla
>> developer HTMLEncode kullanmis ama kar etmiyor.
>> text() yerine html() kullanabilir asagidaki gibi. Ama bu case'de de
>> developer HTMLEncode kullanmis olmali.
>>
>> http://www.webguvenligi.org/jquerytext/index2.php
>>
>>
>> 15 Temmuz 2011 14:34 tarihinde Ferruh Mavituna <ferruh at mavituna.com>yazdı:
>>
>> Buradaki sorun bence append() kullanilmasi,  sonucta eger HTML
>>> yazmayacaksan text() kullanman gerekli eger HTML() yazacaksan o zaman
>>> encoding olayini halletmeyi / sorunlarini cozmek zorunda oldugunu goz onunde
>>> bulunduracaksin.
>>>
>>>
>>> Daha seksisi yazilabilir sanirim, ama ozetle o konuda soyle olmasi
>>> lazimdi:
>>>
>>>        var strr = $("#str").text();
>>>>
>>>>       $("#str2").text($("#str2").text()+strr);
>>>>
>>>>
>>> Text() i kullanmamak SQL Querylerinde kendi parameterised query'ler
>>> kullanmak yerine kendi filtreni yazmak gibi.
>>>
>>> JQuery'ye bunu yapan appendText() diye bir fonksiyon eklemek muhtemelen
>>> en verimlisi olacaktir.
>>>
>>> 2011/7/15 Bedirhan Urgun <bedirhanurgun at gmail.com>
>>>
>>>> aynen. yani jquery'nin text metodu htmlencoded stringi alip decode
>>>> ediyor (http://api.jquery.com/text/), cunku calisma prensibi xml
>>>> element icindeki text alanlari okuyup string olarak vermek (dolayisiyla &lt;
>>>> gibi html kodlanmis stringi < seklinde okuyor). index.php'nin PHP kodunu
>>>> veriyorum (http://pastebin.com/xPPx3p7W), guvenlik prensiplerine output
>>>> encoding acisindan uyulmus.
>>>>
>>>> Simdi gelelim developer'lari ilgilendiren ilginc noktaya. Yukaridaki
>>>> konuyu gercek hayata uyarlayalim. Guvenlik konusuna ilgili ve farkinda bir
>>>> developer, uygulamasinin cikti noktalarinda HTMLEncode kullanmasi
>>>> gerektigini biliyor. Her klasik html output ettigi yere framework'un kendine
>>>> sagladigi otomatik veya manuel HTMLEncode metodunu kullanir.
>>>>
>>>> Sonra arayuzu afilli olsun diye de guzel gorunen *html select*ler
>>>> yapmak icin jquery plugin'i selectmenu<http://www.filamentgroup.com/lab/jquery_ui_selectmenu_an_aria_accessible_plugin_for_styling_a_html_select/>'yu
>>>> kullanmak ister. Ama selectmenu kendi icinde jquery text'i kullanir ve js
>>>> rendering islemi sirasinda inanilmaz bir sekilde XSS olusur. :) Sonra
>>>> demezler mi, "bize HTMLEncode deyip duruyorsun, hala XSS olusuyor" diye.
>>>>
>>>> http://www.webguvenligi.org/jquerytext/selectmenu.php
>>>>
>>>> Bence JQuery'nin bu text metodu sakat. Tek basina olasilik dusuk
>>>> olabilir ama icinde kullanildigi pluginlerle beraber risk gayet iyi. Cunku
>>>> innerHTML veya appendChild gibi DOM'un kaba metotlari ile hem IE hem de
>>>> FF'de XSS calistirmak kolay degil. Ama JQuery append diyor, tak calisiyor.
>>>>
>>>> Sonuc olarak yapacak sey ya plugin'i kullanmamak ya da double encode
>>>> etmek. Double encode... kotu seyler cagristiriyor degil mi?
>>>>
>>>>
>>>>
>>>> 15 Temmuz 2011 12:08 tarihinde Serkan Özkan <serkanozkan at gmail.com>yazdı:
>>>>
>>>> Jquery'nin text fonksiyonunun str id'li div'in içeriğini, içerik
>>>>> normalde html encoded olmasına rağmen, döndürürken html decode edilmiş
>>>>> olarak döndürmesinden kaynaklanıyor.
>>>>> Ekteki ekran görüntüsü input alanına </div><h1>XSS</h1><div>
>>>>> gönderildikten sonra chrome javascript konsolundan alınmıştır.
>>>>>
>>>>>
>>>>> 2011/7/15 Canberk BOLAT <canberk.bolat at gmail.com>
>>>>>
>>>>>> Zafiyet JQuery'nin append methodunun ilgili text'i HTML olarak encode
>>>>>> etmesinden mi kaynaklanıyor? Sadece tahmin :)
>>>>>>
>>>>>> 15 Temmuz 2011 11:59 tarihinde Deniz CEVIK <denizcev at gmail.com>yazdı:
>>>>>>
>>>>>> Bu durum XSS saldırıları için request yolla sonra response'u analiz et
>>>>>>> tarzında çalışan otomatik zafiyet tarayıcılarının yetersiz olduğunun
>>>>>>> göstergesi. Bu tip yazılımlar scriptden kaynaklanan problemleri
>>>>>>> bulabilmek için bir browser gibi isteğin neye yol açtığını simüle
>>>>>>> etmeleri gerekiyor. Yada manual kontrol. scriptler analizleri de bu
>>>>>>> bakımdan önem taşıyor.
>>>>>>>
>>>>>>> İyi Çalışmalar.
>>>>>>>
>>>>>>> 2011/7/15 Bedirhan Urgun <bedirhanurgun at gmail.com>:
>>>>>>> > dogru bir sekilde bulabilmesi icin runtime analiz yapmasi lazim.
>>>>>>> nolamaz,
>>>>>>> > false pozitif uretir o :)
>>>>>>> > hangi aracmis bu (ozelden atabilir misin)...
>>>>>>> >
>>>>>>> > 15 Temmuz 2011 11:34 tarihinde Deniz CEVIK <denizcev at gmail.com>
>>>>>>> yazdı:
>>>>>>> >>
>>>>>>> >> :) otomatik araçlar buluyor.
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> http://www.webguvenligi.org/jquerytext/index.php?searchterm=%23%3Cimg+src%3D%2F+onerror%3Dalert%281%29%3E
>>>>>>> >>
>>>>>>> >> 2011/7/15 Bedirhan Urgun <bedirhanurgun at gmail.com>:
>>>>>>> >> > merhaba,
>>>>>>> >> > Asagidaki uygulamadaki XSS'i manuel olarak cok rahat
>>>>>>> bulabilirsiniz
>>>>>>> >> > (otomatik olarak zannetmiyorum), ama burda acikligin asil
>>>>>>> kaynagi nedir?
>>>>>>> >> > diye bisey sorsam...
>>>>>>> >> >
>>>>>>> >> > http://www.webguvenligi.org/jquerytext/index.php
>>>>>>> >> >
>>>>>>> >> > --
>>>>>>> >> > Bedirhan Urgun
>>>>>>> >> > http://www.webguvenligi.org
>>>>>>> >> > http://www.owasp.org/index.php/Turkey
>>>>>>> >> >
>>>>>>> >> > Türkçe Web Uygulama Güvenliği E-Posta Listesine üye olmak için:
>>>>>>> >> > https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>> >> >
>>>>>>> >> > _______________________________________________
>>>>>>> >> > Owasp-turkey mailing list
>>>>>>> >> > Owasp-turkey at lists.owasp.org
>>>>>>> >> > https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>> >> >
>>>>>>> >> >
>>>>>>> >> _______________________________________________
>>>>>>> >> Owasp-turkey mailing list
>>>>>>> >> Owasp-turkey at lists.owasp.org
>>>>>>> >> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>> >
>>>>>>> >
>>>>>>> >
>>>>>>> > --
>>>>>>> > Bedirhan Urgun
>>>>>>> > http://www.webguvenligi.org
>>>>>>> > http://www.owasp.org/index.php/Turkey
>>>>>>> >
>>>>>>> > Türkçe Web Uygulama Güvenliği E-Posta Listesine üye olmak için:
>>>>>>> > https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>> >
>>>>>>> > _______________________________________________
>>>>>>> > Owasp-turkey mailing list
>>>>>>> > Owasp-turkey at lists.owasp.org
>>>>>>> > https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>> >
>>>>>>> >
>>>>>>> _______________________________________________
>>>>>>> Owasp-turkey mailing list
>>>>>>> Owasp-turkey at lists.owasp.org
>>>>>>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Canberk Bolat
>>>>>> Security Researcher
>>>>>> http://twitter.com/cnbrkbolat
>>>>>> http://cbolat.blogspot.com
>>>>>>
>>>>>> _______________________________________________
>>>>>> Owasp-turkey mailing list
>>>>>> Owasp-turkey at lists.owasp.org
>>>>>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Owasp-turkey mailing list
>>>>> Owasp-turkey at lists.owasp.org
>>>>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Bedirhan Urgun
>>>> http://www.webguvenligi.org
>>>> http://www.owasp.org/index.php/Turkey
>>>>
>>>> Türkçe Web Uygulama Güvenliği E-Posta Listesine üye olmak için:
>>>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>
>>>> _______________________________________________
>>>> Owasp-turkey mailing list
>>>> Owasp-turkey at lists.owasp.org
>>>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>>
>>>>
>>>
>>>
>>> --
>>> .fm
>>>
>>> _______________________________________________
>>> Owasp-turkey mailing list
>>> Owasp-turkey at lists.owasp.org
>>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>>
>>>
>>
>>
>> --
>> Bedirhan Urgun
>> http://www.webguvenligi.org
>> http://www.owasp.org/index.php/Turkey
>>
>> Türkçe Web Uygulama Güvenliği E-Posta Listesine üye olmak için:
>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>
>> _______________________________________________
>> Owasp-turkey mailing list
>> Owasp-turkey at lists.owasp.org
>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>
>>
>
>
> --
> Canberk Bolat
> Security Researcher
> http://twitter.com/cnbrkbolat
> http://cbolat.blogspot.com
>
> _______________________________________________
> Owasp-turkey mailing list
> Owasp-turkey at lists.owasp.org
> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20110716/2a15d875/attachment.html 


More information about the Owasp-turkey mailing list