THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

MySQL_Real_Escape - Bypass

Privles - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2016
Nereden:
Azerbaycan
Mesajlar:
226
Konular:
52
Teşekkür (Etti):
36
Teşekkür (Aldı):
22
Ticaret:
(0) %
04-01-2016 19:23
#1
MySQL_Real_Escape - Bypass
Başlıyalım.

MySQL_Real_Escape_String()

Bu fonksiyon piyasaya çıkmadan önce AddSlashes kullanılırdı sebebi basitti. Basit bir php.ini dosyasında ki magic’i on yapsanız bile aynı işleve sahip olacaktı. Bunun bazı atlatmaları çıkınca güvenlik olarak sıkıntı oluşturduğundan bu fonksiyonu türettiler. Bu fonksiyon işlevi sizin zararlı karakterlerinizi veritabanına kayıt etmeden önce temizler zararlı syntax var mı diye kontrol eder. Üstüne \\ karakterini ekler.

Bizim php dosyamızı bir göz gezdirelim.

Bir tırnakları kontrol eden bir php fonksiyonu var. Bunun parametresinde $string diye bir değişken mevcut. $id değişkenin de bir global değişken var bu değişken kullanıcıdan değer alınması için yapılmış. Sonrasında bizim gönderdiğimiz syntax’lar mysql_real_escape’e girmiş, bize döndürmüş. Sonra $id değişkenine atayıp, SQL’e yazmış.

Syntax’ımız işlemedi TRUE döndü.

Blind’de true.

Burada da TRUE fakat ben bunu bilerek yaptım. Burada da zararlı karakter olduğundan dolayı o karakterleri filtreliyor. Bize true döndürüyor fakat --

Burada URL Encode yaparak gönderdiğimizde sonuç False oluyor yani bir SQL Injection zaafiyeti tespitimiz doğru oluyor.

UNION based olduğunu anlıyoruz ona göre syntax’ımızı yazıyoruz.

Şimdi ekrana yansıtma sorunu ile ilgili birşeyler karalayayım.

Veritabanında ki id’ler bize birşeyleri sunar. Veritabanında bulunan id var ise bize o id sunar başkasını sunamaz.

SELECT * FROM users WHERE id=’1337’ LIMIT 0,1;

Şöyle bir syntax düşünün bu Syntax’daki 1337 numaralı kişileri sunuyor bize biz tırnak atıp ekrana yansıtabilir miyiz. Hayır syntax bozuluyor. id=’burayıboz’ Buranın içini bozmalıyız. Oraya ne yaparsak ekrana yansıtacaktır. md5 ile şifreleyin yine yansıtacaktır.

1 id’sini base64 ile encoded ettim sonuç;

MD5 Sonuç;


Daha fazla örneğe gerek yok, uzatmamak gerekirse size o id ne ile değiştirirseniz size ekrana yansıtacaktır. İsterseniz char() fonksiyonu kullanın, isterseniz hexleyin, isterseniz NULL yapın. Bu yöntem genellikle WAF için kullanılır.
Konu Privles tarafından (04-01-2016 19:28 Saat 19:28 ) değiştirilmiştir.
Codersdr - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
09/2015
Mesajlar:
273
Konular:
100
Teşekkür (Etti):
13
Teşekkür (Aldı):
6
Ticaret:
(0) %
04-01-2016 19:38
#2
Ağa bune ne işe yarıyor yardım edin
Privles - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2016
Nereden:
Azerbaycan
Mesajlar:
226
Konular:
52
Teşekkür (Etti):
36
Teşekkür (Aldı):
22
Ticaret:
(0) %
04-01-2016 19:42
#3
Alıntı:
Codersdr´isimli üyeden Alıntı Mesajı göster
Ağa bune ne işe yarıyor yardım edin
Konunun üst köşesinde yazıyor.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler