MySQL : Auth Injection

Dökümanı anlayabilmemiz için temel seviyede MySQL ve PHP bilgisi gerekmektedir. Bu uyarı akabinde gerekli şartların sağlandığını varsayarak dökümanıma başlıyorum.

Dökümanda bahsedeceğim konu; MySQL Login işleminde yapılabilecek auth enjeksiyon.

%3c%3c1

%3c%3c2

——————————————————————————————————

Evet arkadaşlar login sayfamdaki kodları inceleyelim ve mantığı anlayalım;

sayfa1:login.php
Açıklama: Bu sayfada login için gerekli olan input ve buttonlarımızı belirliyorum.
——————————————————

%3cw1
——————————————————

sayfa2:login2.php
——————————————————

%3cw1

——————————————————

Ana işlemlerimiz login2.php içinde olduğu için incelemeye başlıyalım;
Gördüğünüz gibi MySQL Connection’u gerçekleştirdikten sonra post değerlerini alıyor ve if sorgusuna sokuyoruz.
Eğer bilgiler doğru ise “Başarıyla giriş yaptın”, Değil ise “Girdiğin bilgiler yanlis, Kullandigin parola: Girilen Parola değerini” mesajlarını alıyoruz.

Çok fazla kafa şişirmeden enjeksiyon olayına geçmek istiyorum. Önce bi log-in işlemi deniyelim;

%3cw1%3cw1%3cw1

Başarıyla login olduk. Şimdi yanlış bilgilerle login olalım;

%3cw1%3cw1%3cw1

Burada güvenlik açığı teşkil eden olan şudur;
——————————————————

Kodumuz; SELECT * FROM user WHERE user=’$usernameAND password=’$password

Doğrulamamızı yaparken; AND password=’$password‘ – kısmında eğer parola doğru ise True değeri dönüyor ise sorunsuz bi şekilde olay gerçekleşecektir.
Fakat; AND password=’$password‘ kodunu -> AND password=’ ‘ OR ”=’ ‘ şeklinde aldığımızda yeniden True değeri dönecektir.. Enjeksiyon burada gerçekleşecektir..
Neden mi?
İnceleyelim;
%3cw1

1. Parola kısmını boş bırakıyoruz

2. OR(Veya) ile başlıyoruz ve ‘ ‘=’ ‘ eşitliğini giriyoruz. ‘ ‘=’ ‘ doğru bir ifade olduğu için sorgudan True değeri dönüyor ve login olabiliyoruz. Burada önemli olan eşitliği sağlamaktır. Gireceğimiz kod ‘x’='x veya ’1′=’1 de olabilirdi önemli olan eşitliğin sağlanmasıdır arkadaşlar.

%3cw1%3cw1%3cw1

Hepsi bu kadar ve içerideyiz…

// Yazar : Selim ÖNDER

Dökümanı anlayabilmemiz için temel seviyede MySQL ve PHP bilgisi gerekmektedir. Bu uyarı akabinde gerekli şartların sağlandığını varsayarak dökümanıma başlıyorum.

Dökümanda bahsedeceğim konu; MySQL Login işleminde yapılabilecek auth enjeksiyon.

FF1

FF2

——————————————————————————————————

Evet arkadaşlar login sayfamdaki kodları inceleyelim ve mantığı anlayalım;

sayfa1:login.php
Açıklama: Bu sayfada login için gerekli olan input ve buttonlarımızı belirliyorum.
——————————————————

dw1
——————————————————

sayfa2:login2.php
——————————————————

dw1

——————————————————

Ana işlemlerimiz login2.php içinde olduğu için incelemeye başlıyalım;
Gördüğünüz gibi MySQL Connection’u gerçekleştirdikten sonra post değerlerini alıyor ve if sorgusuna sokuyoruz.
Eğer bilgiler doğru ise “Başarıyla giriş yaptın”, Değil ise “Girdiğin bilgiler yanlis, Kullandigin parola: Girilen Parola değerini” mesajlarını alıyoruz.

Çok fazla kafa şişirmeden enjeksiyon olayına geçmek istiyorum. Önce bi log-in işlemi deniyelim;

dw1dw1dw1

Başarıyla login olduk. Şimdi yanlış bilgilerle login olalım;

dw1dw1dw1

Burada güvenlik açığı teşkil eden olan şudur;
——————————————————

Kodumuz; SELECT * FROM user WHERE user=’$usernameAND password=’$password

Doğrulamamızı yaparken; AND password=’$password‘ – kısmında eğer parola doğru ise True değeri dönüyor ise sorunsuz bi şekilde olay gerçekleşecektir.
Fakat; AND password=’$password‘ kodunu -> AND password=’ ‘ OR ”=’ ‘ şeklinde aldığımızda yeniden True değeri dönecektir.. Enjeksiyon burada gerçekleşecektir..
Neden mi?
İnceleyelim;
dw1

1. Parola kısmını boş bırakıyoruz

2. OR(Veya) ile başlıyoruz ve ‘ ‘=’ ‘ eşitliğini giriyoruz. ‘ ‘=’ ‘ doğru bir ifade olduğu için sorgudan True değeri dönüyor ve login olabiliyoruz. Burada önemli olan eşitliği sağlamaktır. Gireceğimiz kod ‘x’='x veya ’1′=’1 de olabilirdi önemli olan eşitliğin sağlanmasıdır arkadaşlar.

dw1dw1dw1

Hepsi bu kadar ve içerideyiz…

——————————————————

Filed Under: GüvenlikKurci

Tags: , , , ,

Yorumlar (1)

Trackback URL | Comments RSS Feed

  1. altuğ diyor ki:

    merhaba,
    bilmem farkında mısın ama resimler gözükmüyor. rica etsem resimleri ekler misin?
    makalenden hiçbir şey anlamadım.

    Admin : Güncellendi

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.

*