[Owasp-turkey] Dom Based XSS

Bedirhan Urgun bedirhanurgun at gmail.com
Wed Apr 2 10:10:58 UTC 2014


tabi asagidaki gibi birsey de cikar verdigim ornekten, dogru, daha spesifik
ornek vermem lazimdi. demeye calistigim INJECTION_HERE kisminin tamamen
sunucu kodu (ornegin <%= %>) tarafindan olusturulmasi idi.

<script>
   var s = document.location.href;
</script>

yanliz JS icindeki degiskenler aslinda tam olarak DOM'un parcasi degil, DOM
API aslinda pure javascript'e yapilan browser eklentileri. yani asagidaki
js parcasinin DOM ile pek ilgisi yok;

var x = function (y){ return y*y};



2 Nisan 2014 12:46 tarihinde Bunyamin Demir <bunyamindemir at gmail.com> yazdı:

> Bedirhan,
>
> Verdiğin örneği ben anlamadım. INJECTION_HERE'neye göre DOM based değil?
>  URL'in fragment'inden alınmış bir değer ise bence 10 numara DOM Based
> olur. Zira JS içinde kullandığın değişkenlerde aslında DOM'un bir parçası,
> hatta tüm HTML elementleri de.
>
> Syg.
>
>
> 2 Nisan 2014 12:34 tarihinde Bedirhan Urgun <bedirhanurgun at gmail.com>yazdı:
>
> ismine dom based demelerinin nedeni buyuk ihtimal sink'in javascript
>> API'lari olmasi (DOM'u manipule etmenin en temel yolu JS DOM API'leri
>> cunku). Ornegin document.write, element.setHTML gibi... Tabi ki payload
>> icin de bu API'lere ihtiyacimiz var ama mesele bu degil. Yani asagidaki DOM
>> based degil.
>>
>> <script>
>>   var s = "INJECTION_HERE";
>> </script>
>>
>> Ancak developer'in bilincli olarak yazdigi JSON veriyi alip, img elementi
>> olusturan uygulamada olusan xss'ler dom based. Cunku sink, developer'in
>> kullandigi JS API'ler. Bu acidan bakarsak sadece bir payload'un sunucuya
>> gitmeme durumunu DOM Based olarak tanimlayamiyoruz. Diger taraftan boyle
>> bir tanim cok daha basit ve anlasilabilir.
>>
>> Bu tur zafiyetleri developer'lara anlatmamiz gerekliligini dusunursek
>> belki de hic DOM Based v.s olayina girmeden yani cok kafa karistirmadan
>> reflected/stored olarak tanimlamaliyiz. Cunku cozum belli aslinda, istemci
>> veya sunucu tarafinda dogru encoding'i kullanmak... Bilemiyorum tabi
>> siniflandirma da isi daha bir onemli gibi gostermiyor degil :)
>>
>>
>> 1 Nisan 2014 16:52 tarihinde Canberk BOLAT <canberk.bolat at gmail.com>yazdı:
>>
>> Deniz hocam,
>>>
>>> Bence Dom-based XSS'tir. Output encoding yapildigini varsaydigimiz icin
>>> XSS DOM Level'da tetikleniyor, sadece source biraz muamma ama sink yine DOM
>>> tabanli.
>>>
>>>
>>>
>>>
>>> 1 Nisan 2014 16:27 tarihinde Deniz Çevik <deniz at biznet.com.tr> yazdı:
>>>
>>> Merhaba
>>>>
>>>>
>>>>
>>>> Bu durumda XSS oluşmasını engellemek için encode edilerek oluşturularak
>>>> üretilen bir çıktı, (normalde xss oluşturmayacak bir response <img
>>>> src=1> gibi) eğer bir javascript kütüphanesi tarafından (örneğin jquery)
>>>> çalıştırılıyor ve XSS oluşmasına neden oluyor ise bu DOM based’mi dir,
>>>> reflected’mi dir.
>>>>
>>>>
>>>>
>>>> *From:* owasp-turkey-bounces at lists.owasp.org [mailto:
>>>> owasp-turkey-bounces at lists.owasp.org] *On Behalf Of *Mehmet Dursun Ince
>>>> *Sent:* Tuesday, April 01, 2014 11:34 AM
>>>> *To:* OWASP-Turkey Chapter
>>>> *Subject:* Re: [Owasp-turkey] Dom Based XSS
>>>>
>>>>
>>>>
>>>> Merhaba
>>>>
>>>> Isin icerisinde JS oldugunda DOM based demek bana gore yanlis. Ornegin
>>>> user inputu render edilen sayfada script tagleri arasina yaziliyorsa bu
>>>> in-line javascript payloadi ile exploit edilebilmekte. Bu durumda da olayin
>>>> DOM Xss ile ifade edilmesi cok yanlis. Bu ornekledigim zafiyet Reflected
>>>> Xss olarak adlandirilmalidir. Bir baska ornek olarak mesela kullanicin
>>>> isimi javascript degiskeni olarak html sayfada kullanildiysa bu durum icin
>>>> Stored Xss demek daha dogrudur bence.
>>>>
>>>> Yani ozetle -bence- payloadin uygulamaya erisim sekline gore
>>>> siniflandirma yapilmalidir. Ister JS kodu icerisinde olsun isterse html tag
>>>> eger POST/GET talebinde donen sayfada zafiyet varsa Reflected. Herhangi bir
>>>> DB vb yapi uzerinde payloadin saklanma durum varsa Stored. Server side
>>>> tarafina hic iletilmeyen degiskenlerin oldugu durumlarda ise DOM based
>>>> olarak adlandirilmali.
>>>>
>>>> On 1 Apr 2014 11:20, "Bedirhan Urgun" <bedirhanurgun at gmail.com> wrote:
>>>>
>>>> Merhaba,
>>>>
>>>> DOM Based XSS'i diğer XSS tiplerinden ayıran çok belirgin bir farklılık
>>>> var mıdır? Farklılıklarını belirtmek isteniz nasıl belirtirdiniz? Basit
>>>> örnekler ile cevaplamak isteyen olursa memnun oluruz.
>>>>
>>>> Hiç sunucu tarafına gitmeyen bir durum olasılığı varsa DOMBased mi
>>>> demeliyiz, JS'nin işin içine bulaştığı her xss DOMBased mi olur, yoksa
>>>> source/sink sınıflandırmasını yapıp işin cılkını mı çıkarmalıyız? v.b.
>>>>
>>>>
>>>>
>>>> bedirhan
>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>
>>>
>>
>>
>> --
>>
>> bedirhan urgun
>>
>> _______________________________________________
>> Owasp-turkey mailing list
>> Owasp-turkey at lists.owasp.org
>> https://lists.owasp.org/mailman/listinfo/owasp-turkey
>>
>>
>
>
> --
> Bünyamin Demir
> OWASP-Turkey Chapter Lead
> 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
>
>


-- 

bedirhan urgun
-------------- sonraki b�l�m --------------
Bir HTML eklentisi temizlendi...
URL: <http://lists.owasp.org/pipermail/owasp-turkey/attachments/20140402/d9740f04/attachment-0001.html>


More information about the Owasp-turkey mailing list