Geri Git   SanalTahrip Bilişim Forumları > Hacking, Cracking ve Güvenlik > Web Güvenlik ve Açıkları

Web Güvenlik ve Açıkları Web, DNS, Domain Hacking İle İlgili Bilgi, Belge, Makalelerin,Programların Paylaşılabileceği Forum Alanımızdır.

Tags: , , ,

Yeni Konu Gönder Yanıtla
 
LinkBack Konu Araçları
Eski 12-19-2009   #1 (permalink)
Üye
Merakli Uye
Avatar
 
SaNaLTaHR!P kullanıcısının avatarı
Bilgiler
SaNaLTaHR!P SaNaLTaHR!P Çevrimdışı
Giriş: May 2009
Mesaj: 112
Konuları: 71
Karizma
İtibar Gücü: 3
Karizma Puanı : 10
Karizma Seviyesi:
SaNaLTaHR!P is on a distinguished road
SaNaLTaHR!P kullanıcısına MSN aracılığı ile mesaj yolla
Level
 Seviye: 9  
Ruh Hali:

Level: 9 [♥ Bé-Yêu ♥]
Paylaşım: 0 / 215
Güç: 37 / 1740
Tecrübe: 60%

Teşekkür Tablosu

Ettiği Teşekkür: 3
3 Mesajına 6 Kere Teşekkür Edlidi
Post hacking teknikleri 2 Csrf Saldırıları

Bu Alana Reklam Vermek İstiyorsanız Buraya Tıklayınız
CSRF, hemen hemen XSS ile zıt mantıkta çalışır.Birince hedef sunucudur, birinde istemci.Bu atak şeklinde, sahte HTTP istekleri söz konusudur.Kullanıcı farkında olmadığı halde, yönetim paneline sahip olduğu siteden bir üyeyi silebilir, bir alışveriş sitesinden bir şeyler satın alabilir.Gelelim bu işin nasıl olduğuna;

Bir site admini düşünün, ve admin arkadaşımız yönetim panelinden 67 nolu üyeyi silmek istediğinde panel üzerinde yaptığı istek x.com/uyesil.php?uye_id=67 gibi bir sayfayı açması yetiyor.Yani adminimiz tarafından yapılan x.com/uyesil.php?uye_id=67 isteğinde 67 nolu üye silinecek.

Şimdi admin arkadaşımızın başka bir siteye girdiğini düşünelim.O sitede de şöyle bir HTML kodu var;


Kod:
<img src="http://www.x.com/uyesil.php?uye_id=67" style="display:none">
Bu HTML kodu, sayfada gözükmeden x.com/uyesil.php?uye_id=67 adresine HTTP isteğinde bulunuyor.

Normalde, admin haricinde herhangi bir saldırgan x.com/uyesil.php?uye_id=67 gibi bir HTTP isteğinde bulunduğunda yönetim panelinin olağan şifre yönetimi nedeniyle herhangi bir zararda bulunamayacak.Fakat ilgili yönetim panelinde, yönetici oturum bilgilerine sahip ( session ) olan adminimiz, bu siteye girdiğinde istemediği halde 67 no'lu üyeyi silmiş olacak.Ve büyük ihtimalle bunun farkında da değil.

Bu durum bir çok uygulamada mevcut, hatta öyleki google adsense şifreleri CSRF yardımıyla değiştirilebiliyor, digg.com sahte digg istekleri ile kandırılabiliyordu.

Nasıl Önlem Alacağız?

CSRF'yi önlemenin en bilinen ve en sağlam yolu, token ( anahtar ) modelidir.Herhangi bir form düşünün, form sayfası her açıldığında rastgele bir sayı veya string üretiyoruz ve bunu anahtar olarak hafızaya kaydediyoruz.Daha sonra aynı anahtarı veritabanına anahtarlar şeklinde kaydediyoruz.

Form işleme sayfasına geldiğinde, session'daki anahtarı veritabanındaki anahtarla kontrol ediyoruz.Eğer gerçekten böyle bir anahtar mevcutsa işlemi yapıyoruz, aksi taktirde işlemi durduruyoruz.

CSRF ile yapılan isteklerde, form kısmına hiç giriş yapılmayacağı için anahtar session'a kayıt edilmeyecektir.Dolayısıyla, form işleme sırasında CSRF ile yapılan sahte istek geçersiz kalacaktır.

Kafanızda biraz daha açık olması için ufak bir PHP betiği; ( örnek amaçlıdır. )


HTML Kod:
<?session_start();/*** MySQL Baglantisi ***/mysql_connect("localhost","root","");mysql_select_ db("anahtarlar");/*** FORM ***/if(empty($_GET["kutucuk"])) { /* Anahtar degerlerini yenile */ $_SESSION["anahtar"] = md5(rand(0,999)); /* Anahtarlar tablosunu guncelle -vt icin- */ mysql_query("INSERT INTO anahtarlar (anahtar) VALUES('$_SESSION[anahtar]')"); /* Formu Bas */ echo('<form method="GET"><input type="text" name="kutucuk" /><input type="submit" value="Flood Me" /></form>');}/*** FORM İŞLEME **/elseif(isset($_GET["kutucuk"])) { $anahtar_kontrolu = mysql_query("SELECT anahtar FROM anahtarlar WHERE anahtar='$_SESSION[anahtar]'"); if(mysql_num_rows($anahtar_kontrolu) > 0 ) { echo("Anahtar kabul edildi.Senin formunu kabul ediyorum.."); /* Anahtari kir ve cope at...*/ mysql_query("DELETE FROM anahtarlar WHERE anahtar='$_GET[anahtar]'"); $_SESSION["anahtar"] = ''; } else { die("Yanlis anahtar"); }}?>
Betik, form açıldığında rastgele bir değer üretip hem session'a hem veritabanına kaydediyor. Form'un işlendiği bölümde session'dan gelen değer ile veritabanındaki anahtarlar kontrol ediliyor, eğer kayıtlı bir anahtar ise kabul ediliyor. ve anahtar bir daha kullanılmamak üzere veritabanından siliniyor.


Aynı mantığı ASP ve diğer web programlama dillerinde uygulabilirsiniz.

Bunun dışında almanız gereken önlemler;


Form iletişiminde GET değil POST kullanın.
*PHP kullanıyorsanız, $_POST dizisini kullanın.Zira register_globals ile exploit edilebildiği sürece form iletişiminde POST kullanmanızın önemi kaybolur.
__________________
Msn
[Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]

WebSite
[Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]      [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...]
SaNaLTaHR!P Çevrimdışı  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Share on Facebook
Alıntı Yaparak Cevapla
Konuyu Beğendin mi ? O Halde Konuyu Arkadaşınız ile Paylaşın =)
Okumuş Olduğunuz Sayfayı E-Mail ile Arkadaşınız ile Paylaşın !
Yanıtla

Bookmarks


Şu an bu konuyu görüntüleyen kullanıcı sayısı: 1 (0 üye ve 1 misafir)
 
Konu Araçları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Yanıtlar Son Mesaj
CSRF Saldırıları - JaRu|e Mail Güvenlik ve Açıkları 0 02-19-2009 03:11 AM
temel saldırı teknikleri - JaRu|e Web Güvenlik ve Açıkları 0 02-19-2009 02:22 AM
XSS Saldırıları JaRu|e Web Güvenlik ve Açıkları 0 01-16-2009 06:18 AM
Rootlama Teknikleri (Local) JaRu|e Web Güvenlik ve Açıkları 0 05-17-2007 06:17 PM


Saat 02:18 AM.