[Owasp-turkey] ilginç bir xss vakası

Canberk BOLAT canberk.bolat at gmail.com
Fri Jul 15 08:10:02 EDT 2011


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
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20110715/e5bd094d/attachment.html 


More information about the Owasp-turkey mailing list