Hackerlar SQL Injection ve DDoS ile Web Sitelerini Nasıl Ele Geçiriyor?

Sep 28, 2025
Gizlilik ve güvenlik
BAĞLANMAMIŞ İÇERİK

Anonymous ve LulzSec hacker gruplarının olaylarını sadece gevşek bir şekilde takip etmiş olsanız bile, kötü şöhretli Sony korsanları gibi web sitelerinin ve hizmetlerin saldırıya uğradığını muhtemelen duymuşsunuzdur. Bunu nasıl yaptıklarını hiç merak ettiniz mi?

Bu grupların kullandığı bir dizi araç ve teknik vardır ve size bunu kendiniz yapmanız için bir kılavuz vermeye çalışmasak da, neler olduğunu anlamanız yararlıdır. Sürekli kullandıklarını duyduğunuz saldırılardan ikisi "(Dağıtılmış) Hizmet Reddi" (DDoS) ve "SQL Enjeksiyonları" (SQLI). İşte nasıl çalıştıkları.

Resim xkcd

Hizmeti engelleme saldırısı

Bu ne?

Bir "hizmet reddi" (bazen "dağıtılmış hizmet reddi" veya DDoS olarak da adlandırılır) saldırısı, bir sistem, bu durumda bir web sunucusu, sunucu kaynaklarının aşırı yüklenmesine neden olacak kadar çok istek aldığında gerçekleşir. Sistem kilitlenir. ve kapanıyor. Başarılı bir DDoS saldırısının amacı ve sonucu, hedef sunucudaki web sitelerinin yasal trafik talepleri için uygun olmamasıdır.

O nasıl çalışır?

Bir DDoS saldırısının lojistiği en iyi bir örnekle açıklanabilir.

Bir milyon kişinin (saldırganların) çağrı merkezlerini kapatarak X Şirketi'nin işlerini engellemek amacıyla bir araya geldiğini hayal edin. Saldırganlar, Salı günü sabah 9'da hepsi X Şirketi'nin telefon numarasını arayacak şekilde koordine olur. Büyük olasılıkla, X Şirketinin telefon sistemi aynı anda bir milyon aramayı idare edemeyecek ve bu nedenle gelen tüm hatlar saldırganlar tarafından bağlanacaktır. Sonuç, meşru müşteri aramalarının (yani saldırgan olmayanların) ulaşamamasıdır, çünkü telefon sistemi saldırganlardan gelen aramaları ele alır. Yani esasen X Şirketi, meşru taleplerin yerine getirilememesi nedeniyle potansiyel olarak iş kaybediyor.

Bir web sunucusuna yapılan DDoS saldırısı tamamen aynı şekilde çalışır. Web sunucusu isteği işleyene kadar meşru isteklerden saldırganlara kıyasla hangi trafiğin kaynaklandığını bilmenin neredeyse hiçbir yolu olmadığından, bu tür saldırılar genellikle çok etkilidir.

Saldırıyı yürütmek

Bir DDoS saldırısının "kaba kuvvet" doğası nedeniyle, aynı anda saldırmak için çok sayıda bilgisayarın koordineli olması gerekir. Çağrı merkezi örneğimizi tekrar gözden geçirirsek, bu, tüm saldırganların hem sabah 9'da aramayı bilmesini hem de o anda gerçekten aramayı bilmesini gerektirecektir. Bir web sunucusuna saldırmak söz konusu olduğunda bu ilke kesinlikle işe yarayacak olsa da, gerçek insanlı bilgisayarlar yerine zombi bilgisayarlar kullanıldığında çok daha kolay hale gelir.

Muhtemelen bildiğiniz gibi, bir kez sisteminizde hareketsiz duran ve bazen talimatlar için "eve telefon edin" birçok kötü amaçlı yazılım ve truva atı çeşidi vardır. Bu talimatlardan biri, örneğin, X Şirketi’nin web sunucusuna saat 09: 00'da tekrarlanan istekleri göndermek olabilir. Dolayısıyla, ilgili kötü amaçlı yazılımın ana konumuna yapılacak tek bir güncelleme ile, tek bir saldırgan, büyük bir DDoS saldırısı gerçekleştirmek için güvenliği ihlal edilmiş yüz binlerce bilgisayarı anında koordine edebilir.

Zombi bilgisayarları kullanmanın güzelliği yalnızca etkililiğinde değil, aynı zamanda saldırganın saldırıyı gerçekleştirmek için bilgisayarını kullanmak zorunda kalmaması nedeniyle anonimliğidir.

SQL Enjeksiyon Saldırısı

Bu ne?

"SQL enjeksiyonu" (SQLI) saldırısı, zayıf web geliştirme tekniklerinden ve tipik olarak hatalı veritabanı güvenliğiyle birlikte yararlanan bir istismardır. Başarılı bir saldırının sonucu, bir kullanıcı hesabının kimliğine bürünmekten ilgili veritabanı veya sunucunun tamamen tehlikeye atılmasına kadar değişebilir. DDoS saldırısından farklı olarak, bir web uygulaması uygun şekilde programlanırsa SQLI saldırısı tamamen ve kolayca önlenebilir.

Saldırıyı yürütmek

Bir web sitesine her giriş yaptığınızda ve kullanıcı adınızı ve şifrenizi girdiğinizde, kimlik bilgilerinizi test etmek için web uygulaması aşağıdaki gibi bir sorgu çalıştırabilir:

Kullanıcılardan Kullanıcı Kimliğini SEÇİN Kullanıcı Adı = 'kullanıcım' VE Şifre = 'mypass';

Not: SQL sorgusundaki dize değerleri tek tırnak içine alınmalıdır, bu nedenle kullanıcı tarafından girilen değerlerin çevresinde görünürler.

Bu nedenle, bir Kullanıcı Kimliğinin döndürülebilmesi için, girilen kullanıcı adı (kullanıcım) ve parolanın (mypass) birleşimi Kullanıcılar tablosundaki bir girişle eşleşmelidir. Eşleşme yoksa, Kullanıcı Kimliği döndürülmez, bu nedenle oturum açma kimlik bilgileri geçersiz olur. Belirli bir uygulama farklı olsa da, mekanikler oldukça standarttır.

Şimdi, kullanıcının web formuna girdiği değerleri değiştirebileceğimiz bir şablon kimlik doğrulama sorgusuna bakalım:

Kullanıcı Adı = '[user]' VE Şifre = '[pass]' NEREDE Kullanıcılardan Kullanıcı Kimliğini SEÇİN

İlk bakışta bu, kullanıcıları kolayca doğrulamak için basit ve mantıklı bir adım gibi görünebilir, ancak bu şablonda kullanıcı tarafından girilen değerlerin basit bir ikamesi gerçekleştirilirse, bir SQLI saldırısına açık hale gelir.

Örneğin, kullanıcı adı alanına "kullanıcım" - ve şifreye "yanlış geçiş" girildiğini varsayalım. Şablon sorgumuzda basit ikame kullanarak şunu elde ederiz:

Kullanıcılardan Kullanıcı Kimliğini SEÇİN Kullanıcı Adı = 'kullanıcım' - 'VE Şifre =' yanlış geçiş '

Bu ifadenin anahtarı, iki çizginin dahil edilmesidir. (--) . Bu, SQL ifadeleri için başlangıç ​​yorumu belirtecidir, bu nedenle iki çizgiden (dahil) sonra görünen her şey göz ardı edilecektir. Esasen, yukarıdaki sorgu veritabanı tarafından şu şekilde yürütülür:

Kullanıcılardan Kullanıcı Kimliğini SEÇİN Kullanıcı Adı = 'kullanıcım'

Buradaki göze çarpan ihmal, şifre kontrolünün olmamasıdır. Kullanıcı alanının bir parçası olarak iki çizgi ekleyerek, şifre kontrol koşulunu tamamen atladık ve ilgili şifreyi bilmeden "kullanıcım" olarak oturum açabildik. İstenmeyen sonuçlar üretmek için sorguyu değiştirme eylemi bir SQL enjeksiyon saldırısıdır.

Ne zarar verilebilir?

Bir SQL enjeksiyon saldırısı, ihmalkar ve sorumsuz uygulama kodlamasından kaynaklanır ve tamamen önlenebilir (bunu birazdan ele alacağız), ancak yapılabilecek hasarın boyutu veritabanı kurulumuna bağlıdır. Bir web uygulamasının arka uç veritabanı ile iletişim kurması için, uygulamanın veritabanına bir oturum açma bilgisi vermesi gerekir (bu, web sitesinin kendisinde bir kullanıcı oturum açmasından farklıdır). Web uygulamasının gerektirdiği izinlere bağlı olarak, bu ilgili veritabanı hesabı, yalnızca mevcut tablolardaki okuma / yazma izninden tam veritabanı erişimine kadar her şeyi gerektirebilir. Şu anda bu net değilse, birkaç örnek biraz netlik sağlamaya yardımcı olacaktır.

Yukarıdaki örneğe dayanarak, örneğin şunu girerek görebilirsiniz: "kullanıcınız '-", "yönetici' -" veya başka bir kullanıcı adı, şifresini bilmeden o kullanıcı olarak siteye anında giriş yapabiliriz. Sisteme girdikten sonra, aslında o kullanıcı olmadığımızı bilmez, bu nedenle ilgili hesaba tam erişimimiz vardır. Veritabanı izinleri bunun için bir güvenlik ağı sağlamayacaktır çünkü tipik olarak bir web sitesinin ilgili veritabanına en azından okuma / yazma erişimine sahip olması gerekir.

Şimdi, web sitesinin, kayıtları silme, tablo ekleme / kaldırma, yeni güvenlik hesapları ekleme vb. Yeteneği veren ilgili veritabanı üzerinde tam kontrole sahip olduğunu varsayalım. Bazı web uygulamalarının bu tür bir izne ihtiyaç duyabileceğine dikkat etmek önemlidir. otomatik olarak tam kontrolün verildiği kötü bir şey değildir.

Bu durumda verilebilecek zararı göstermek için, kullanıcı adı alanına aşağıdakileri girerek yukarıdaki çizgi romanda verilen örneği kullanacağız: "Robert '; DROP TABLE Kullanıcıları; -". Basit değiştirmeden sonra kimlik doğrulama sorgusu şu hale gelir:

Kullanıcılardan Kullanıcı Kimliğini SEÇİN Kullanıcı Adı = 'Robert'; DROP TABLE Users; - 'AND Password =' ​​wrongpass '

Not: noktalı virgül bir SQL sorgusunda, belirli bir ifadenin sonunu ve yeni bir ifadenin başlangıcını belirtmek için kullanılır.

Veritabanı tarafından şu şekilde yürütülür:

UserName = 'Robert' NEREDE Kullanıcılardan Kullanıcı Kimliğini SEÇİN

DROP TABLE Kullanıcıları

Tıpkı bunun gibi, Kullanıcılar tablosunun tamamını silmek için bir SQLI saldırısı kullandık.

Elbette, izin verilen SQL izinlerine bağlı olarak, saldırgan değerleri değiştirebildiği, tabloları (veya tüm veritabanını) bir metin dosyasına aktarabildiği, yeni oturum açma hesapları oluşturabildiği ve hatta tüm veritabanı kurulumunu ele geçirebildiği için çok daha kötüsü yapılabilir.

SQL enjeksiyon saldırısını önleme

Daha önce birkaç kez bahsettiğimiz gibi, bir SQL enjeksiyon saldırısı kolayca önlenebilir. Web geliştirmenin temel kurallarından biri, yukarıdaki şablon sorgumuzda basit değiştirme yaptığımızda yaptığımız gibi, kullanıcı girdisine asla körü körüne güvenmemenizdir.

Bir SQLI saldırısı, girdilerinizi sterilize etme (veya kaçma) olarak adlandırılan şeyle kolayca engellenir. Sterilize etme süreci aslında oldukça önemsizdir, çünkü esasen tek yaptığı herhangi bir satır içi tek tırnak (‘) karakterini, bir SQL ifadesinin içindeki bir dizeyi vaktinden önce sonlandırmak için kullanılamayacak şekilde uygun bir şekilde ele almaktır.

Örneğin, bir veritabanında "O’neil" i aramak istiyorsanız, basit ikame kullanamazsınız çünkü O'dan sonraki tek alıntı dizenin zamanından önce bitmesine neden olur. Bunun yerine, ilgili veritabanının kaçış karakterini kullanarak onu temizlersiniz. Satır içi tek alıntı için çıkış karakterinin her alıntıdan önce bir \ sembolü ile geldiğini varsayalım. Yani "O’neal", "O \’ neil "olarak dezenfekte edilecektir.

Bu basit temizlik eylemi, bir SQLI saldırısını hemen hemen önler. Göstermek için, önceki örneklerimize tekrar bakalım ve kullanıcı girişi temizlendiğinde ortaya çıkan sorgulara bakalım.

myuser '- / yanlış geçiş :

Kullanıcılardan Kullanıcı Kimliğini SEÇİN Kullanıcı Adı = 'kullanıcım \' - 'VE Şifre =' yanlış geçiş '

Kullanıcımdan sonraki tek alıntı öncelendiğinden (yani hedef değerin bir parçası olarak kabul edilir), veritabanı kelimenin tam anlamıyla KullanıcıAdı'nı arayacaktır. "kullanıcım" - ". Ek olarak, çizgiler SQL ifadesinin kendisi değil dize değerine dahil edildiğinden, bir SQL yorumu olarak yorumlanmak yerine hedef değerin bir parçası olarak kabul edilecektir.

Robert '; DROP TABLE Kullanıcıları; - / yanlış geçiş :

Kullanıcılardan Kullanıcı Kimliğini SEÇİN UserName = 'Robert \'; DROP TABLE Users; - 'AND Password =' ​​wrongpass '

Robert'tan sonraki tek alıntıdan kaçarak, hem noktalı virgül hem de tireler KullanıcıAdı arama dizesinde bulunur, böylece veritabanı kelimenin tam anlamıyla "Robert '; DROP TABLE Kullanıcıları; -" tabloyu silmek yerine.

Özetle

Web saldırıları gelişip daha karmaşık hale gelirken veya farklı bir giriş noktasına odaklanırken, onları istismar etmek için tasarlanmış birkaç ücretsiz "hacker aracının" esin kaynağı olan denenmiş ve gerçek saldırılara karşı korumayı hatırlamak önemlidir.

DDoS gibi belirli saldırı türleri kolayca önlenemezken, SQLI gibi diğerleri bunu yapabilir. Ancak bu tür saldırıların verebileceği zarar, alınan önlemlere bağlı olarak rahatsızlıktan felakete kadar her yerde değişebilir.

DDOS Attack On Azerbedzjan Web Sites

Tutorial SQL Injection With SQLmap

How A Hacker Could Attack Web Apps With Burp Suite & SQL Injection

Web Application SECURITY In ASP.NET Core - Part 1 - SQL Injection

Hacking Websites With SQL Injection - Computerphile

Anonymous - How To Hack A Website By DDosing And SQL Injection

Hacking With SQL Injection Attacks (and Where To Practice Them Safely)

How A Hacker Could Attack Website With SQL Injection | Hacking Tutorial


Gizlilik ve güvenlik - En Popüler Makaleler

Henüz Windows Ekim 2018 Güncellemesini İstemiyor musunuz? İşte Nasıl Duraklatacağınız

Gizlilik ve güvenlik Oct 1, 2025

BAĞLANMAMIŞ İÇERİK Microsoft muhtemelen serbest bırakacak Ekim 2018 Güncellemesi , kod adı Redstone 5, 2 Ekim'de. Windows 10 kullandığınız s..


Amazon İstek Listeniz Varsayılan Olarak Herkese Açıktır. İşte Nasıl Özel Yapacağınız

Gizlilik ve güvenlik Dec 18, 2024

BAĞLANMAMIŞ İÇERİK Amazon’un listeleri, Jeff Bezos’a paranızı vermek için ihtiyaç duyduğunuz birçok yöntemi takip etmeniz açısından yararlıdır. Ancak, varsay�..


Kevo Plus Nedir ve Buna Değer mi?

Gizlilik ve güvenlik Aug 23, 2025

BAĞLANMAMIŞ İÇERİK Kwikset Kevo doğrudan internete bağlanmaz, bu nedenle uzaktan kontrol etmek mümkün değildir. Kevo Daha Fazla eklenti hizmeti (99 $). Uz..


Windows'ta Dosya ve Klasörlerin Sahipliği Nasıl Alınır

Gizlilik ve güvenlik Apr 4, 2025

BAĞLANMAMIŞ İÇERİK Windows'ta bir dosya veya klasöre erişiminiz reddedildiyse, muhtemelen kullanıcı hesabınızla bunların sahipliğini almanız gerekir. Nasıl yapacağ..


Sürekli Zorla Kapatıldığında Google Play Store Nasıl Onarılır

Gizlilik ve güvenlik Jul 12, 2025

BAĞLANMAMIŞ İÇERİK Mağaza'yı her açtığınızda o kader “Maalesef Google Play Store durdu” mesajını görmek kadar korkunç bir şey olamaz. Telefonunuzdaki veya tab..


Bir Android Uygulamasının Potansiyel Olarak Tehlikeli Olduğu Nasıl Anlaşılır?

Gizlilik ve güvenlik May 12, 2025

BAĞLANMAMIŞ İÇERİK Evet, bazı Android uygulamaları kötü amaçlı olabilir - Apple, Microsoft ve medya bunu bize hatırlatmaktan mutlu görünüyor. Birkaç temel önlem a..


Ubuntu Linux'ta Gnome Panelleri için Yazı Tiplerini ve Renkleri Özelleştirme

Gizlilik ve güvenlik Feb 18, 2025

Bu haftanın başlarında size gösterdik Gnome Panelleri nasıl tamamen şeffaf hale getirilir , ancak efektin daha iyi çalışması için gerçekten bazı özelle�..


SiteAdvisor'ı Google Chrome'a ​​Ekleyin

Gizlilik ve güvenlik Jan 22, 2025

BAĞLANMAMIŞ İÇERİK Kötü amaçlı yazılımlardaki sürekli artışla birlikte, bir web sitesinin ne zaman sorun olduğunu bilmek sizi acı verici bir deneyimden kurtarabilir. Chromiu..


Kategoriler