[Owasp-turkey] ilginç bir xss vakası

Canberk BOLAT canberk.bolat at gmail.com
Sat Jul 16 13:00:25 EDT 2011


Ne olursa olsun bence bir cesit aciktir bu kisisel fikrim tabiki tartisma
amacli soylemedim.

16 Temmuz 2011 09:35 tarihinde Serkan Özkan <serkanozkan at gmail.com> yazdı:

> 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
>>
>>
>
> _______________________________________________
> 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/20110716/1c6fff8a/attachment.html 


More information about the Owasp-turkey mailing list