[Owasp-turkey] Cross-Site Request Foreign [Forgery]

Bedirhan Urgun urgunb at hotmail.com
Wed Sep 12 02:08:29 EDT 2007


 
 liste canlaniyor mu ne. farkli kisilerden e-postalar almak cok guzel.
 
 Denilenlerin hepsi dogru bence. Farkli bisey eklemek adina, "csrf" yani "sea surf" olarak adlandirilan problem, baglanti bitirme hizmet disi birakma saldirilarinin yaninda kisiye ozel (kullaniciya) saldirilarda da kullanilabilir.
 
 TunerX'in yolladigi ornekte, eger kurban, saldirganin hazirladigi ve
 
   <img src=" http://example.org/buy.php?symbol=SCOX&shares=1000" />"
 
 elementini iceren web sayfasini tarayicisinda actiginda (tabi bu sirada kurbanin example.org e-ticaret sitesine giris yapmis durumda oldugunu kabul edersek), example.org e-ticaret sitesinden SCOX sembolune sahip urunden 1000 tane satin almis olacak. Peki neden? Kurbanin tarayicisi, saldirganin sayfasinda bulunan img element'ini otomatik olarak islerken bir istekte (example.org/buy.php?...) bulunuyor ve bu istege onceden aldigi (kurbanin example.org e-ticaret sitesine onceden giris yapmis oldugunu kabul etmistik) oturum bilgisini (cookie diyelim) ekliyor. Yani example.org'da calisan uygulama icin tamamen dogru bir istek.
 
 Ozellikle TAB mekanizmasina sahip tarayicilarda (browsers) bu saldiri cok daha muhtemel.
 
 Bunun onlemini ise baska biri anlatmak ya da link vermek isteyebilir (turkce anlatimi guzel olurdu).
    
 bedirhan
 



Date: Wed, 12 Sep 2007 07:44:07 +0300From: burcinyazici at gmail.comTo: owasp-turkey at lists.owasp.orgSubject: Re: [Owasp-turkey] Cross-Site Request ForeignBunun en son örneği www.fotokritik.com sanıyorum. Site bu teknikle çökertildi ve 1haftadan fazla kapalı kaldılar...
On 9/11/07, Yusuf CAKIR <Yusuf.CAKIR at naksan.com> wrote: 



Bunun Türkçe'si şudur :
 
Web user'ından alınan veriler GET ve POST gibi iki değişik method ile alınabilirler.
Get metodunda veriler URL'ye eklenerek işlem sayfasına gönderilirken, POST metodu ile alınan veriler sistem değişkenleri vasıtası ile gönderilir.
Bu nedenle GET metodu ile alınan verileri , URL'de bulunan değişken isimleri ve bunların değerlerinden oluşmuş olmasından anlayabiliriz.
 
Verinin işlendiği script dili sayfasında verilerin işlenmek için alınış metodu önemlidir.
Eğer web formunun veri gönderme yöntemini GET olarak ayarladı isek bunu (örneğin ASP'de) request.querystring("değişken_adı") ile,
Eğer web formunun veri gönderme yöntemini POST olarak ayarladı isek bunu (örneğin ASP'de) request.form("değişken_adı") şeklinde almalıyız.
 
Diğer taraftan örneğin ASP'de verilerin hangi yöntemle gönderilmiş olduğu ile uğraşmayalım diye bir de yalın olarak kullanılan request("değişken_adı") şeklinde bir komut dizilimi mevcuttur.
Bu şekilde kullanılan bir komutun sonucunda formumuzun veri aktarma metodu ne olursa olsun veriler alınabilecektir. Dolayısı ile bizim POST'muydu, GET'miydi diye düşünmemize gerek kalmaz.
 
Ancak böyle bir kullanımın dezavantajı ise, hem GET hem de POST yöntemini almaya izin veren bir programa sahip olmamızdır.
Aşağıdaki örnekte olduğu gibi kullanıcı tarafından manipüle edilmiş verileri bile kolayca alabilecek bir programmız olmuştur.
 
Dolayısı ile kötü niyetli birinin artık bizim sitemizdeki form ile uğraşmasına bile gerek kalmamıştır.
 
HTML üzerindeki image nesneleri SRC parametresi olarak verilen kaynağın "gerçekten" bir resim olup olmadığına bakmazlar.
Çünkü SRC parametresine verilen kaynak, zaten tarayıcımıza ulaştığında resim ise görünecek, resim değilse görünmeyecektir.
 
İşte image nesnesinin bu özelliğinden de faydalanarak bir şahıs, bizim verileri işlediğimiz sayfayı hedef göstererek ve bu sayfaya QueryString parametreleri geçerek sitemizin işleyişini önemli ölçüde yavaşlatabilir hatta durdurabilir.


From: owasp-turkey-bounces at lists.owasp.org [mailto:owasp-turkey-bounces at lists.owasp.org] On Behalf Of TunerXSent: Tuesday, September 11, 2007 5:49 PMTo: owasp-turkey at lists.owasp.orgSubject: [Owasp-turkey] Cross-Site Request Foreign

Gönderdiğim boş mesaj için özür dilerim.

CSRF hakkında araştırma yaparken 
"<form action="buy.php" method="POST">
<p>Symbol: <input type="text" name="symbol" /></p>
<p>Shares: <input type="text" name="shares" /></p>
<p><input type="submit" value="Buy" /></p>"
</form>
"<?php
 
session_start();
 
if (isset($_REQUEST['symbol'] &&
    isset($_REQUEST['shares']))
{
    buy_stocks($_REQUEST['symbol'],
               $_REQUEST['shares']);
}
 
?>"
"(- <img src=" http://example.org/buy.php?symbol=SCOX&shares=1000" />" Bu üçüncü kod exploit olarak çalışıyor anladığım kadarıyla.
Bir türlü anlayamadım ilk iki kod grubunda ne var ki bir açığa sebep oluyor sadece post metodunun kullanılması mı yoksa gönderen kullanıcın bir token yardımıyla gitmemesi mi acaba ? Ve ben nasıl bir sayfada CSRF olduğunu anlaya bilirim. 
Kodlar buradan Alıntıdır._______________________________________________Owasp-turkey mailing listOwasp-turkey at lists.owasp.orghttps://lists.owasp.org/mailman/listinfo/owasp-turkey-- http://burcinyazici.com 
_________________________________________________________________
Kick back and relax with hot games and cool activities at the Messenger Café.
http://www.cafemessenger.com?ocid=TXT_TAGLM_SeptWLtagline
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.owasp.org/pipermail/owasp-turkey/attachments/20070912/5904515c/attachment.html 


More information about the Owasp-turkey mailing list