[Owasp-turkey] ilginç bir xss vakası

Bedirhan Urgun bedirhanurgun at gmail.com
Fri Jul 15 07:21:21 EDT 2011


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


More information about the Owasp-turkey mailing list