Merhaba arkadaşlar, canım sıkıldı mysql injection ile ilgili bilgilerimi aktarayım dedim. Yazı tamamiyle bana aittir.. Lütfen paylaşım yaparken kaynak belirtiniz...
MySQL Injectionda temel yöntemler vardır..
Birincisi information_schema sistem dosyasına erişim varsa tables ve colums tablolarını okuyarak tabi database() fonksiyonu ile aldığınız kullanıcı isminden yola çıkarak o sitenin tablo ve column isimlerini bularak yazacağınız sorgu ile çekmek olacaktır..
İkinci olarak information_schema dosyasına erişim yoksa sorgularınızı deneme yanılma ile tablo ve column adlarını bularak yapacaksınız. Size püf nokta veriyim, misal üyeleri çekecekseniz üyelik sayfasına gidin ve sizden istenilen bilgilerin kullanıcı adı şifre gibi text kutularının name id değerine bakın.. Sayfada çekilen column sayısınıda order by ile tespit edebilirsiniz..
Üçüncü olarak hata aldığınız sayfada hata koduna bakarak sitenin path'ini çekin ve load_file() fonksiyonu ile dosya okumaya bakın.. /var/www/bla.com/config.php misal olarak.. Magic_quotes açıksa serverda hexleyerek yapın işleminizi.
Dördüncü olarak into outfile, into dumpfile fonksiyonları ile site üzerinde permin açın olduğu yerlerde dosya oluşturabilirsiniz..
union select 0,1,2,,4 from haberler into out file '/var/www/bla.com/rfi.php';
yukarıdaki verdiğim örnek sorguda rfi.php oluşturarak rfi ile sisteme shell sokabilirsiniz..
Koruma....
Kodlamalarınızı yaparken mysql_query() ile kullandığınız sorgularınızda GET yada POST ile çektiğiniz verileri ' ile kontrol edin...
select * from haber where id = $_GET['id'];
böyle bir sorguda çok rahat sql injection yiyebilirsiniz..
?id=-11 union select all 0/*
ama kullanıcıdan gelen verileri ' içerisinde yazarsanız sql injection yemez..
select * from haber where id = '$_GET[id]';
?id=-11 union select all 0/*
bu kod işlemez.
$id=(int)$_GET['id'];
select * from haber where id = '$id';
yada yukarıda yazdığım gibi id değişkenini integer olarak tanımlarsanızda sql ataklarından sisteminizi koruyabilirsiniz...
Serverda magic_quotes'in açık olmasına dikkat edin...
Blind sql injection için ayrı bir makale hazırlayacağımm.. Saygılarımla....
Hiç yorum yok:
Yorum Gönder