SQL Injection Nasıl Yapılır?

LordSUCCESS

Uzman üye
17 Eyl 2023
1,329
592
FTP Server

oqk18ir.png


Merhaba, bugünki konumuz SQL Injection olucaktır, SQL Injection nasıl yapılır onu göreceğiz

iwxqmay.png



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.


93js8oc.png

Xampp Kurulumu

Link 1
Link 2

Kurduktan sonra MySQL Servisini başlatın ve admin button'una tıklayın

Apache Kurulumu

Xampp'ta yüklü olarak gelir, Apache Servisini başlatın ve admin button'una tıklayın

nhqhx1j.png



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.

ro3fzuc.png

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');

DOhoQIY.png

Kodlar​

SQL Zafiyetini Bulma​


sgaqe35.png

qz98jol.png


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

SQL:
ORDER BY


l16ywmm.png


Kolon sayısı 3 değilmiş sayıyı arttıyoruz

k94d0hr.png


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

qrn2cor.png

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
[/LEFT]


80yggdj.png


Evet sonuç aldık, şimdi istediğimiz kolondan verileri çekebiliriz, Ben 2 kolonu seçiyorum daha iyi çekebilmek için

2cp6q5a.png


Tabloları aldık, şimdi ise kolon ismini almamız lazım bunuda çekelim

lo11l93.png


Evet kolonlarımızıda bulduk şimdi ise içindeki veriyi çekelim

dseaxu0.png


Kullanıcı adı: admin

şifre: Lordsuc!%+13214

Evet admin bilgilerini aldık şimdi ise admin panelini bulalım


tl93vhd.png


Admin panelini bulduk şimdi ise giriş yapalım


malk5cs.png

iq8hd81.png

Başarılı bir şekilde giriş yaptık​

Bu konuyu şu konudan örnek aldım

Okuyan herkese teşekkür ederim :)
 

mod1n

Asistan Moderatör
2 Mar 2024
116
18

oqk18ir.png


Merhaba, bugünki konumuz SQL Injection olucaktır, SQL Injection nasıl yapılır onu göreceğiz

iwxqmay.png



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.


93js8oc.png

Xampp Kurulumu

Link 1
Link 2

Kurduktan sonra MySQL Servisini başlatın ve admin button'una tıklayın

Apache Kurulumu

Xampp'ta yüklü olarak gelir, Apache Servisini başlatın ve admin button'una tıklayın

nhqhx1j.png



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.

ro3fzuc.png

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');

DOhoQIY.png

Kodlar​

SQL Zafiyetini Bulma​


sgaqe35.png

qz98jol.png


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

SQL:
ORDER BY


l16ywmm.png


Kolon sayısı 3 değilmiş sayıyı arttıyoruz

k94d0hr.png


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

qrn2cor.png

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
[/LEFT]


80yggdj.png


Evet sonuç aldık, şimdi istediğimiz kolondan verileri çekebiliriz, Ben 2 kolonu seçiyorum daha iyi çekebilmek için

2cp6q5a.png


Tabloları aldık, şimdi ise kolon ismini almamız lazım bunuda çekelim

lo11l93.png


Evet kolonlarımızıda bulduk şimdi ise içindeki veriyi çekelim

dseaxu0.png


Kullanıcı adı: admin

şifre: Lordsuc!%+13214

Evet admin bilgilerini aldık şimdi ise admin panelini bulalım


tl93vhd.png


Admin panelini bulduk şimdi ise giriş yapalım


malk5cs.png

iq8hd81.png

Başarılı bir şekilde giriş yaptık​

Bu konuyu şu konudan örnek aldım

Okuyan herkese teşekkür ederim :)
saol bu tür konuları araştırırken güncel konu görmek sevindirdi.
 
Ü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.