[Owasp-turkey] ilginç bir xss vakası

Bedirhan Urgun bedirhanurgun at gmail.com
Fri Jul 15 08:01:10 EDT 2011


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


More information about the Owasp-turkey mailing list