Merhaba, bugünki konumuz SQL Injection olucaktır, SQL Injection nasıl yapılır onu göreceğiz
SQL Injection, bir web uygulamasına yapılan bir tür siber saldırıdır. Bu saldırı, kötü niyetli bir saldırganın, web uygulamasının veritabanına erişmek, verileri değiştirmek veya hatta sistem üzerinde komut çalıştırmak gibi yetkileri ele geçirmesini sağlar.
Bu saldırı genellikle web uygulamasının giriş formları veya URL parametreleri gibi kullanıcı tarafından sağlanan veri giriş noktaları aracılığıyla gerçekleştirilir. Saldırgan, bu giriş noktalarına özel olarak hazırlanmış SQL sorguları ekleyerek, web uygulamasının veritabanına isteğe bağlı sorgular yaptırır.
Örneğin, bir giriş formunda kullanıcı adı ve şifre alanları bulunuyorsa, saldırgan bu alanlara normalde beklenen veri yerine özel olarak hazırlanmış bir SQL sorgusu ekleyebilir. Bu sorgu, veritabanında kullanıcı bilgilerini sorgulamak yerine, saldırganın istediği herhangi bir eylemi gerçekleştirmek için kullanılabilir.
Bu saldırı türü ciddi güvenlik riskleri oluşturur çünkü başarılı olduğunda saldırgan, web uygulamasının arkasındaki veritabanına tam erişim elde edebilir ve bu da hassas verilerin çalınması, değiştirilmesi veya silinmesi gibi sonuçlara yol açabilir.
Xampp Kurulumu
Apache Kurulumu
Xampp'ta yüklü olarak gelir, Apache Servisini başlatın ve admin button'una tıklayın
SQL (Structured Query Language), ilişkisel veritabanı yönetim sistemlerinde (RDBMS) veri yönetimi ve sorgulama için kullanılan bir programlama dilidir. SQL, veritabanlarında veri oluşturma, sorgulama, güncelleme ve silme işlemlerini gerçekleştirmek için kullanılır.
Web sitelerinde SQL'nin kullanımı genellikle veritabanı tabanlı dinamik içerik oluşturmak için olur. Web siteleri genellikle kullanıcıların veri girişi yapabileceği formlar, ürün listeleri, kullanıcı hesapları gibi veri tabanına dayalı içerikler sunar. Bu verileri saklamak, yönetmek ve sunmak için SQL kullanılır.
SQL (Structured Query Language), ilişkisel veritabanı yönetim sistemlerinde (RDBMS) veri yönetimi ve sorgulama için kullanılan bir programlama dilidir. SQL, veritabanlarında veri oluşturma, sorgulama, güncelleme ve silme işlemlerini gerçekleştirmek için kullanılır.
Web sitelerinde SQL'nin kullanımı genellikle veritabanı tabanlı dinamik içerik oluşturmak için olur. Web siteleri genellikle kullanıcıların veri girişi yapabileceği formlar, ürün listeleri, kullanıcı hesapları gibi veri tabanına dayalı içerikler sunar. Bu verileri saklamak, yönetmek ve sunmak için SQL kullanılır.
Veritabanı Oluşturma
SQL:
CREATE DATABASE denemevt; /*İstediğiniz veritabanı isimini yazabilirsiniz*/
Tablo Oluşturma
SQL:
/*ürünler tablosu*/
CREATE TABLE meyveler (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
meyve_adi VARCHAR(50) NOT NULL,
fiyat DECIMAL(10, 2) NOT NULL
);
SQL:
/* Admin Bilgileri*/
CREATE TABLE admin_tb (
id INT(6) UNSIGNED PRIMARY KEY,
username VARCHAR(50) NOT NULL,
apassword VARCHAR(10, 2) NOT NULL
);
SQL:
/* Ürün Tablosuna Veri Ekleme*/
INSERT INTO meyveler (meyve_adi, fiyat)
VALUES ('Elma', 3.50),
('Armut', 4.00),
('Muz', 2.75),
('Çilek', 5.25);
SQL:
/* Admin Bilgileri Ekleme */
INSERT INTO admin_tb (username, apassword)
VALUES ('admin', 'lordsuc@312');
Kodlar
SQL Zafiyetini Bulma
Gördüğünüz gibi syntax hatası çıktı bu bize SQL zafiyeti olduğunu gösterir
PHP:
//Normal Sorgu
$sql = "SELECT * FROM meyveler WHERE id='1'";
//Bozduğumuz Sorgu
$sql = "SELECT * FROM meyveler WHERE id'1''" //Tek tırnak koyarak sorguyu bozduk
SQL Zafiyetini Sömürme
Zafiyeti sömürmek için bence ben iyi hackbar kullanmak
Kurulum Videosu
Kolon sayısını öğrenmek için order by komutunu kullanıyoruz
Kurulum Videosu
Kolon sayısını öğrenmek için order by komutunu kullanıyoruz
SQL:
ORDER BY
Kolon sayısı 3 değilmiş sayıyı arttıyoruz
Ve 3 kolonlu olduğunu öğreniyoruz, Bundan sonra UNİON SELECT komutunu kullanacağız
SQL:
UNION SELECT
SQL sorgularını birleştirmek ve sonuçları tek bir sonuç kümesi olarak döndürmek için kullanılır. Özellikle iki veya daha fazla sorgunun sonuçlarını birleştirmek ve sonuç kümesini tek bir sorguda göstermek için kullanılır
Union select kullandık kolonları sıraladık ancak bir sonuç alamadık almak için birşey yapmamız lazım
Kod:
http://localhost/ürün.php?id=1' union select 1,2,3,4--+- //sonuç alamadığımız url
[LEFT]http://localhost/ürün.php?id=-1' union select 1,2,3,4--+- //sonuç aldığımız url
Evet sonuç aldık, şimdi istediğimiz kolondan verileri çekebiliriz, Ben 2 kolonu seçiyorum daha iyi çekebilmek için
Tabloları aldık, şimdi ise kolon ismini almamız lazım bunuda çekelim
Evet kolonlarımızıda bulduk şimdi ise içindeki veriyi çekelim
Kullanıcı adı: admin
şifre: Lordsuc!%+13214
Evet admin bilgilerini aldık şimdi ise admin panelini bulalım
Admin panelini bulduk şimdi ise giriş yapalım
Başarılı bir şekilde giriş yaptık
Bu konuyu şu konudan örnek aldım
Okuyan herkese teşekkür ederim
Okuyan herkese teşekkür ederim