IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası
  odeaweb

>
+
Etiketlenen Kullanıcılar

 
 
LinkBack Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 12 Temmuz 2007, 09:03   #2
Nickolas
Misafir
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Yüzdesi:(%)
Cevap: ASP SQL Enjeksiyon




Arkadaşımızın SQL injection sadece ASP için geçerli değildir. Veri tabanı ve SQL kullanan tüm web programlama dilleri için geçerlidir.

Bu açığı kapatmak için POST 'tan veya GET 'ten aldığınız bilgileri temizleyin. Nasıl mı?

Örnek PHP için:

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

diyelim...

haberid 'yi olduğu gibi çağırırsanız SQL injection kaçınılmazdır...

<?php

$haberid = intval($_GET['haberid']);

?>

dediğinizde

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT FROM bilmemne

şeklinde adresi değişseniz bile... $haberid 3 'e dönecektir.


veya...

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Gibi bir adresiniz içeriyor varsayalım Bu noktada SQL injection yememek için

1- Scriptinizin initialize bölümüne

Kod:   Kodu kopyalamak için üzerine çift tıklayın!
<?php /** * @author Nickolas * @date 12/07/2007 08:56:29 */ function deep_addslashes($gpc) { if (is_array($gpc)) { foreach ($gpc AS $var => $val) { if (is_array($val)) { deep_addslashes($val); continue; } $gpc["$var"] = addslashes($gpc["$var"]); } } else { $gpc = addslashes($gpc); } return $gpc; } if (@ini_get('register_globals') AND !@ini_set('register_globals', 0)) { trigger_error("Devam edebilmek icin <strong>php.ini</strong> dosyanizda 'register_globals' degerini 'Off' yapmalisiniz", E_USER_ERROR); exit; } @ini_set('magic_quotes_sybase', 0); @ini_set('set_magic_quotes_runtime', 0); $gotmagic = false; if (function_exists('get_magic_quotes_gpc') AND @get_magic_quotes_gpc()) { $gotmagic = true; } if ($gotmagic == false) { foreach (array('_POST', '_GET', '_REQUEST', '_COOKIE') AS $GPC) { $GLOBALS["$GPC"] = deep_addslashes($GLOBALS["$GPC"]); } } ?>

Kodlarını Girin.

Bu kod...

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] OR UNION SELECT * FROM admin WHERE 'a' = 'a'

daki kodun Tek Tırnak ( ' ) karekterlerini (\') şeklinde getirecek ve SQL Injection dan kurulacaksınız...

2. İşlem

<?php

$kategori = trim($_GET['do']);

mysql_query("SELECT * FROM haber WHERE kategori = '$kategori'");
?>

şeklinde değil de...

<?php

$kategori = mysql_real_escape_string(trim($_GET['do']));

mysql_query("SELECT * FROM haber WHERE kategori = '$kategori'");

?>

Şeklinde kullanın. mysql_real_escape_string fonksonu bir nevi addslashes görevi yapar... ve ayrımlarda kullandığı Tek Tırnak karekterini operatörlükten string e indirger..

 
Alıntı ile Cevapla

 

Etiketler
enjeksiyon, sql, asp


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Seloparin 25 000 IU/5mI enjeksiyon Lcia Sağlık Köşesi 0 21 Kasım 2014 00:50
Daizyn 45.5 mg/2 ml IM/IV enjeksiyon Lcia Sağlık Köşesi 0 21 Kasım 2014 00:49
Neoskabi 100 Ml Enjeksiyon PySSyCaT İlaçlar ve Yan Etkileri 0 12 Ekim 2014 20:35
Alfoxil Enjeksiyon İçin Toz Sır İlaçlar ve Yan Etkileri 0 12 Ağustos 2013 08:05
Alfasilin Enjeksiyon İçin Toz Sır İlaçlar ve Yan Etkileri 0 12 Ağustos 2013 08:01

×