Sql Injection ile Login-Authentication Alanının Bypass Edilmesi

Sql Injection ile Login-Authentication alanının Bypass edilmesi, dinamik sayfalarda (veritabanı ile kullanıcıların etkileşimli olmasıyla) veritabanı ile etkileşimi olan alanların sorgularında açıklık bulunması ile zafiyetin istismar edilmesi oluşan saldırı yöntemidir.
Üye olduğumuz web sayfalarına login alanına kayıtlı username ve password bilgileri ile giriş yaparız. Peki kayıtlı olduğumuza dair sorgulama yapan kodların veritabanı kodlarında açıklık varsa bunu üye olmadan kullanabilir miyiz.
-> Select * from uyeler where username=' ' and password=' ' ;     bu kod yapısını nasıl istismar edebiliriz?


-> Select * from uyeler where username='ali ' and password='1234 '   olsa kayıtlı sorguyu çeker ve üye ise giriş yaptırır.Peki username ve password bilgileri aşağıdaki gibi olursa

-> username=boş    password=or '1'='1    şimdi bunları sql koduna aktaralım

-> Select * from uyeler where username= ' and password='  or '1'='1'  şeklinde sorguya dönüşüyor.

Dolayısıyla   Select * from uyeler where username=  ' and password='  ' or '1'='1   sorgusu ile username ve password değeri boş olan ama 1=1 (her zaman doğru olacağından) den  dolayı tabloda sanki username değeri boş ve password değeri boş olan biri varmış gibi işlemi başarılı sayar ve web sitesine giriş yaptırır.Test edelim.



username=www ve password=' or '1'='1  değeri ile sisteme sorgu gönderdik.  or 1=1 değeri solundaki ve sağındaki değerleri otomatik olarak doğru yaptığından tablodaki ilk değeri sonuç olarak dönderiyor. İstersek username alanına ' or 1=1 # değerini ekler ve password değerini ve sonrasını yorum satırı haline getirir yinede giriş yaparız.


Aşağıdaki resimde de görüldüğü gibi username=admin; uid=1; ve cookie değerleri doldurulmuş.


Aşağıdaki resimde giriş yapılan kişiyi görüyoruz




Yorumlar

Bu blogdaki popüler yayınlar

Wamp Server ile Yerel Ağınızda Site Yayınlama

Web Pentest İşlemlerinde Burp Suite Kullanımı-1