SQL Injection Nedir

SQL Injection Nedir?

SQL Injection verileri çalmak için hackerlar tarafından kullanılan web saldırı metodlarından biridir. Belkide günümüzde en yaygın kullanılan uygulama seviyesi tekniklerden biridir. Bir korsanın veritabanı içinde tutulan verilere erişim sağlamasına izin veren bir giriş formu bulmak, SQL komutları çalışmasını sağlayan, web uygulamaları ve yanlış kodlamalardan yararlanarak elde ettiği saldırı türüdür.

Kullanıcı girişi için kullanılabilir, SQL alanları, tablolarını geçerek, doğrudan veritabanını sorgulayarak, SQL injection yapabilirler.

SQL Enjeksiyon Açıklama
Web uygulamaları web sitesini ziyaret etmek tercih ettikleri web tarayıcısını kullanarak internet üzerinden bir veritabanından veri göndermek ve almak için izin verir. Veritabanları çoğu web sitelerine uygulama merkezi vardır. Web site ziyaretçileri için özel içerik sunmak ve müşterileri, tedarikçileri, çalışanları ve paydaşları bir dizi bilgi için gerekli veri depolamaktadır. Kullanıcı bilgileri, finansal ödeme bilgileri, firma istatistikleri bir veritabanı içinde ikamet eden ve off-the-raf ve özel web uygulamaları ile meşru kullanıcılar tarafından erişilebilir. Web uygulamaları ve veritabanları düzenli iş çalışmasına izin verir.

SQL Enjeksiyon arka plandaki veritabanında yürütme için bir web uygulaması üzerinden SQL komutları (tablolar) geçmek çalışır hack tekniğidir. Düzgün önlem alınmazsa web uygulamaları hackerlar veritabanı ve  bilgileri görüntülemek, hatta yazma ve silme izni varsa  SQL enjeksiyon saldırıları neden olabilir.

Login sayfaları, destek veya ürün istek formları, geri bildirim formları, arama sayfaları, alışveriş sepetleri ve dinamik içerik genel teslimat gibi özellikler, modern web siteleri şekillendirmek ve umutları ve müşteriler ile iletişim kurmak için gerekli araçları ile işlemler sağlar. Bu web sitesi özellikleri ya off-the-raf satın alınan veya ısmarlama programları gibi geliştirilebilir web uygulamaları örnekleridir.

Kullanıcı girişi için kullanılabilir alanlar SQL ifadeleri geçerek doğrudan veritabanını sorgulamak için izin gerekir, eğer izin veya ortam varsa, tüm ortaya SQL Injection saldırılarına açıktır.

SQL Injection: Basit Bir Örnek
Meşru bir kullanıcının kişisel bilgilerini görüntüleyebilir veya bir forumda yaptığı yorum yüklemek için güvenli bir alana girmek için kendi kullanıcı adı ve şifre girip, basit bir giriş sayfasını oluşturun.

Normal kullanıcı bilgilerini gönderdiğinde, bir SQL sorgusu bu detaylardan faydalanarak, doğrulama için veritabanına gönderilir. Geçerli ise, kullanıcı erişimine izin verilir. Kullanıcı adı ve şifre kombinasyonunu doğrulamak için diğer bir deyişle, giriş sayfasını kontrol eden web uygulaması kadar planlanmış komutları kullanarak veritabanı ile iletişim kurar. Doğrulandığında meşru kullanıcı erişimine izin verilir.

SQL Enjeksiyon ile saldırganlar giriş için, özel giriş formu engelini aşarak arkasındakileri görmek niyeti ile hazırlanmış SQL komutları girerler. Girişleri doğru ve veritabanına SQL sorgusu ile doğrudan gönderen değilseniz bu mümkündür. SQL Enjeksiyon açıkları veritabanına doğrudan iletişim kurmak için bir hacker için giriş sağlar.

Bu tip saldırılardan etkilenen teknolojiler ASP, ASP.NET, PHP, JSP ve CGI gibi dinamik script dilleridir. Bir saldırganın saldırısı önemli tablo ve alan adları için bir web tarayıcısı, SQL sorguları bilgi ve yaratıcı tahmin çalışması olan bir SQL Enjeksiyon un yerine getirmesi gerekir. SQL Enjeksiyon basitliği onun popülerliğini artırdı.

Diğer içerikler:
Bir güvenlik duvarı arkasına gizlenmiş olsa bile, veritabanına SQL sorguları geçmek mümkün mü?
SQL Injection için risk veritabanı mı?
SQL Enjeksiyon etkisi nedir?
Bir SQL Injection Attack Örneği
Nasıl SQL Injection saldırıları nasıl önleyebilirim?

Bir güvenlik duvarı veya diğer güvenlik mekanizması arkasındaki bir veritabanına direk SQL sorgularıy geçmek mümkün mü?
Güvenlik duvarları ve benzer saldırı tespit mekanizmaları tam ölçekli bir SQL enjeksiyon web saldırısına karşı çok az ya da hiç koruma sağlamazlar.

Web sitenizin herkese açık olması gerektiği için güvenlik mekanizmaları kamu web trafiğin web application / s (genelde port 80/443 üzerinden) iletişim kurmak için izin verecektir. Web uygulaması, güncelleştirilmesi gerekir. Bilgi erişimi için veritabanı açık erişimi vardır.

SQL Injection olarak, korsan web uygulaması üzerinden hassas kurumsal verilerin veritabanına almak için SQL sorguları ve yaratıcılık kullanır.

SQL veya Structured Query Language size, depolama, işleme ve ilişkisel veritabanı (ya da düzenlemek ve yapısı veri tabloları koleksiyonu) depolanan veri almanıza olanak veren bilgisayar dilidir. SQL, aslında, bir web uygulamasının (ve kullanıcıların) veritabanı ile etkileşim için tek yoldur. İlişkisel veritabanlarının örnekleri Oracle, Microsoft Access, MS SQL Server, MySQL ve temel yapı taşları olarak SQL kullanan tüm bunların Filemaker Pro içerir.

SQL komutları SELECT, INSERT, DELETE ve DROP TABLE sayılabilir.

Yukarıdaki login sayfası örneğinde normal bir senaryoda web uygulaması için planlanan SQL komutları aşağıdaki gibi olabilir:

Count (*) SEÇİN
FROM
Kullanici = ‘FIELD_USERNAME’ WHERE
AND sifre = ‘FIELD_PASSWORD ”

İngilizce konuş, bu SQL komutu (web uygulamalarından) zaten saklanan kombinasyonu meşru kullanıcı tarafından kullanıcı adı ve şifre girişi eşleştirmek için veritabanı bildirir.

Web uygulaması her tür sabit meşru fonksiyonlarını yerine ve veritabanı ile iletişim kurarken çalıştırmak için belirli bazı SQL sorguları gömülür. Web uygulamasının herhangi bir giriş alanı doğru dezenfekte edilmezse, bir hacker, böylece orjinal dizayn ve fonksiyonun ötesine geçer, web uygulamasının çalıştıracağı SQL komutları kapsamını genişletmek ek SQL komutları enjekte edebilir.

Bir hacker bu nedenle ne olursa olsun fiziksel veritabanı sunucusundan önce yüklü saldırı tespit sistemleri ve ağ güvenliği ekipmanları tüm veritabanına iletişim açık bir kanal (veya, meslekten olmayan anlamında, bir tünel) olacak.

SQL Injection için risk benim veritabanım mı?
SQL Enjeksiyon şu an Internet’te kullanılan en genel uygulama katmanı saldırılarından biridir. SQL Enjeksiyon saldırılarına karşı korumak için nispeten kolay olmasına rağmen, savunmasız kalır çok sayıda web uygulamaları vardır.

Web Uygulama göre Güvenlik Konsorsiyumu (WASC) medyada rapor edilen hack olaylarının% 9’u 27 Temmuz 2006 yılına kadar SQL Enjeksiyon bağlı idi. Kendi araştırma daha yeni verilerle bu yıl taranana web sitelerinin yaklaşık% 50 SQL Enjeksiyon açıkları duyarlı olduğunu göstermektedir.

Bu size bir programcı değilseniz veya web uygulamaları kodlanmış olan kişi değildir, özellikle web sitesi ve web uygulamaları SQL Injection karşı savunmasız olup olmadığı sorusuna cevap vermek zor olabilir.

Bir saldırganın gerçekten webe gönderilen sorguların sonuçlarını görüntülemek için veritabanı veya saklanan verileri görmnin mümkün olup olmadığı kodlanmasına bağlıdır. Kesin olan saldırganın uzlaşma için ya da başka bir bilgi elde etmek, ya savunmasız sisteminde rasgele SQL komutları çalıştırmak mümkün olup olmamasıdır.

Yanlış kodlanmış scriptleriniz  varsa, müşteri ve firma verilerinizin ele geçirilmesi riski vardır.

Veritabanı sadece belirli bazı komutların çalıştırılmasına izin veriyor olabilir. Bir okuma erişimi normalde web uygulama kullanımı için etkindir.

Bir saldırganın sistemi değiştirmek mümkün olmasa bile, hala değerli bilgileri okumak mümkün olacaktır.

SQL Enjeksiyon etkisi nedir?
Bir saldırgan sistemin SQL Enjeksiyon karşı savunmasız olduğunu farkettikten sonra, giriş alanından SQL sorgu / Komutlar enjekte edebilir. Bu, saldırganın veritabanına veritabanına DROP TABLE dahil olmak üzere herhangi bir SQL komutu çalıştırmak için izin eşdeğerdir!

Bir saldırgan, savunmasız sisteminde rasgele SQL deyimlerini çalıştırabilir. Bu veritabanı ve / bütünlüğünü tehlikeye veya hassas bilgileri açığa çıkarabilir. Kullanılan arka uç veritabanına bağlı olarak SQL enjeksiyon açıkları veri / saldırgan için sistem erişim seviyeleri değişikliğine yol açar.

Bazı durumlarda, okumak veya dosyalara yazmak, ya da altta yatan işletim sistemi üzerinde kabuk komutları çalıştırmak mümkün olabilir. Örneğin, Microsoft SQL Server gibi bazı SQL sunucuları stored ve prosedürler (veritabanı sunucusu fonksiyonları) içeren genişletilmiş. Bir saldırgan bu prosedürlere ulaşabilirse, bu tam bir felaket olabilir.

Hırsızlığı fark edildiğinde Maalesef SQL enjeksiyon etkileri sadece açıkta kalır.

Bir SQLInjection Saldırı Örneği
Burada iki giriş, giriş ve şifre ile örnek bir temel HTML formudur.

login.asp için en kolay veritabanı sorgusu aşağıdaki gibi olabilir.

Id SEÇ
Oturumların DAN
WHERE kullanici = ‘$ kullanici’
AND sifre = ‘$ sifre’

Değişkenler $ username ve $ password kullanıcı girişinden direk olarak alınıp, bu kolay bir şekilde hack edilebilir. Bir kullanıcı adı olarak “Olympos” ve aşağıdaki dize bir parola olarak sağlanan olduğunu varsayalım: şey ‘OR’ x ‘=’ x

Id SEÇ
Oturumların DAN
Kullanici = ‘Joe’ WHERE
AND sifre = ‘şey’ OR ‘x’ = ‘x’

Web uygulamasında kullanıcı girişleri doğru dezenfekte edilmediğinden, tek tırnak kullanımı iki bileşenli bir madde haline WHERE SQL komutu döndü.

‘X’ = ‘x’ bölümü ne olursa olsun ilk bölüm ne için doğru olduğunu garanti eder.

Bu, saldırganın geçerli bir kullanıcı / şifre kombinasyonu bilmesine gerek kalmadan giriş formu atlamasına izin verir!

SQL Injection saldırıları nasıl önleyebilirim?
Güvenlik duvarları ve benzer saldırı tespit mekanizmaları tam ölçekli web saldırılarına karşı bir koruma sağlamayabilir. Web sitenizin herkese açık olması gerektiği için güvenlik mekanizmaları kamu web trafiği web uygulamaları veritabanı sunucuları üzerinden iletişim kurmasına izin verir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir