BWAPP ile Web Uygulamalarına saldırmak ve savunmak için pentesting

bWAPP, hem yeni başlayanların hem de uzmanların sızma testi ve etik korsanlık uygulamaları yapabilmesi için güvenlik açıklarıyla geliştirilmiş bir web sitesidir.. Linux veya Windows üzerinde Apache veya IIS ve MySQL üzerinde barındırılabilir. WAMP veya XAMPP'de desteklenir. Diğer bir olasılık, VMware veya VirtualBox için çalışan bir sanal makine kullanmaktır.

bWAPP ücretsiz ve açıktır, biri yerel olarak kullanılmak ve diğeri sanal bir makineye kurulmak üzere iki versiyonda indirilebilir. Web sitesi PHP ve MySQL ile geliştirilmiştir, bu nedenle çapraz platformdur. bWAPP kurulumunu yerel olarak indiriyoruz, sanal bir makineye kurmak istiyorsak proje Bee-Box.

Bee-box, her şeyin önceden yüklenmiş olduğu bir Linux sanal makinesidir.. Bu şekilde, bWAPP web sitesini tahrif etme riskine girmeden yalnızca tüm bWAPP güvenlik açıklarını araştırmamız gerekir. Ayrıca sanal makine ile root erişimi elde etmeyi deneyebiliriz.

bWAPP'de 100'den fazla hata var Araştırmak ve keşfetmek için, tüm güvenlik riskleri de dahil olmak üzere, bilinen tüm web güvenlik açıklarını kapsar. Proje sadece güvenlik açıklarının keşfedilmesine izin vermekle kalmıyor, aynı zamanda çözümün bulunmasını da mümkün kılıyor.

Bu eğitimde bWAPP'ın Bee-Box sürümünü kuracağızBunu yapmak için indirdiğimiz dosyayı açıyoruz ve yerel sunucumuzda birçok vmdk dosyasının bulunduğu bir klasör oluşturuyoruz. Ardından, 32 bit Linux Ubuntu sürümü atayan sanal makineyi oluşturacağız.

Daha sonra indirilen dosyayı seçmeliyiz. arı kutusu.vdmk

Sanal makineyi çalıştırmadan önce, ağı yapılandırmamız gerektiğini unutmayın, bunu şuradan yapıyoruz: Ayar bir IP adresine sahip olmak ve sanal makineye başka bir bilgisayardan erişebilmek için.

Oluştur'a ve ardından Başlat'a tıklıyoruz, böylece sanal makine çalışmaya başlıyor, yüklendikten sonra masaüstünü göreceğiz.

Daha sonra IP'nin komutu ne kullandığını görmek için terminali açacağız. ifconfig.

Bu durumda IP'nin 192.168.0.14 olduğunu görebiliriz, bu IP'yi sanal makinenin dışındaki bilgisayarda test edersek, web'e erişebilmemiz gerekir:

 http://192.168.0.14/bWAPP
Ve sonuç aşağıdaki olacaktır:

Ardından giriş sayfasıyla başlayabiliriz, varsayılan olarak kullanıcı bee'dir ve kontrol paneline erişmek için şifre hatadır. Hatalar menüsünde, en basitten en karmaşığa kadar bazı güvenlik açıklarını kullanmak ve test etmek için birkaç örneğimiz olacak. biraz görelim saldırı türüne göre güvenlik açıkları.

NS güvenlik açıkları kategorilere veya bölümlere ayrılır aşağıdakiler hangileridir:

A1 Enjeksiyonlarıİşte güvenlik açıkları gruplandırılmıştır HTML enjeksiyonu, SQL, XSS, XPATH ve tarayıcılar aracılığıyla parametre göndermekle ilgili her şey.

A2 Arası Kimlik Doğrulama ve Oturumlarİşte benziyor captcha'ları ve giriş formlarını ihlal etmek URL değiştirme teknikleri, parametre yakalama ve oturum kimliği kullanımı.

A3 Siteler Arası Komut Dosyası (XSS)Burada XSS ile ilgili güvenlik açıkları bu çok tehlikeli değil, aksine sinir bozucu.

A4 Güvensiz nesneler ve dizinlerİşte hakkında koddan bağlantılardaki parametreleri değiştir formu göndermeden önce.

A5 Güvenlik ve Yapılandırmaburada göreceğiz DDOS ve orta saldırı gibi bazı saldırılar, çalışan posta ve hizmetler gibi hizmetleri etkilemeye çalışacak.

A6 Hassas verilerin açığa çıkmasıBurada, izin veren bir dizi güvenlik açığı göreceğiz. sunucu verileri tarayıcıda açığa çıkıyor.

Bunlar güvenlik açıklarından bazılarıdır, bu eğitimde en bilinen saldırılara ve sunucunun kontrolünü ele geçirme olasılığına odaklanacağız.

1. HTML enjeksiyonu


HTML Yansıtmalı Enjeksiyon, bir metin alanına HTML kodu eklemenize ve ardından bunu web'de görüntülemenize izin veren şeydir. İlk Injection by GET yöntemini seçiyoruz, örneğin her birine bir bağlantı girersek iki metin kutumuz var:
 Acil Mesaj | Satışlarınız
Formu gönderirken aşağıda her iki bağlantının da gösterildiğini göreceğiz ve birisinin tıklamasını beklemeye bırakacağız. POST yöntemini de deneyebiliriz.

BÜYÜT

HTML verilerinin girişini kontrol etmemenin bir başka sorunu da, kullanıcıyı oturum açması veya bazı verileri girmesi gerektiğine inandıran bir form gönderebilmemiz ve bu verileri başka bir sayfaya gönderebilmemizdir.

 Bağlantınız kesildi. 
Kullanıcıya devam etmek için kullanıcı adınızı ve şifrenizi girin:
anahtar:

BÜYÜT

2. SQL enjeksiyonu


SQL Injection gibi başka bir saldırı görelim, SQL Injection seçeneği (GET / Search) için BUG araması yaparsak, bu bölümde film verileriyle sonuçlanan örneğin Iron Man filmlerini arayabiliriz.

BÜYÜT

Ardından, veritabanının savunmasız olup olmadığını test etmek için SQL kodunu enjekte etmeyi deneyebiliriz, bunun için, aşağıdaki durumlarda veritabanlarının listesini döndürecek olan aşağıdaki kodu kullanırız:

 demir adam 'birlik seçimi 1, tablo_adı, 3,4,5,6,7 INFORMATION_SCHEMA.TABLES'dan burada table_schema = veritabanı () -'
Sonuç, tabloların listesidir, bu nedenle veritabanı savunmasızdır:

BÜYÜT

Veritabanının savunmasız olduğunu bilerek, yönetici anahtarlarını arayan kök seviyesine ulaştığımız SQLMAP, SQL Enjeksiyon aracı ve Etik veritabanı korsanlığı eğitiminde gördüğümüz bazı teknikleri kullanabiliriz.

Terminal penceresinden aşağıdaki komutu yazıyoruz, savunmasız olabilecek bir parametreye sahip olduğu için aradığımız sayfayı film kullanıyoruz.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs

Bize veritabanlarını gösteriyor, bunlardan biri bWAPP, bu nedenle veritabanı motorunun MySQL 5 olduğunu bilerek tabloların listesini elde etmeye çalışacağız. Tabloların listesini elde etmek için aşağıdaki komutu kullanacağız.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -tablolar

Sadece web'den değil, sistemden de tüm tabloları listelediğini görebiliriz, böylece verileri Linux yöneticisinden alabiliriz. Firebug kullanarak PHP oturumundan da yararlanabiliriz, çünkü bir kullanıcı oluştururken veya oturum açarken veya bir arama gibi bazı dinamik içerik oluştururken, sunucunun yanıtı bir PHPSession oluşturacağından, oturum numarasını görebiliriz.

BÜYÜT

Komutu kullanma --kullanıcılar ve session veya komut ile session olmadan sistem kullanıcılarını görebiliriz.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --users
Oturum kimliğine sahip başka bir seçenek komutu:
 sqlmap -u “http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0” --users

Ardından, aşağıdaki komutu kullanarak sistem kullanıcılarını arayacağız:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is-dba --privileges --dbs -dump 
Sonuç olarak bir şifrenin olduğu tablolar elde edeceğiz, bunlardan biri yönetici verilerine sahip kullanıcılar, diğeri ise kullanıcı olarak giriş yapmak için kullanacağımız tablo kahramanları ve kullanıcılar (kullanıcılar).

Kullanıcılar tablosu, web sitesi yöneticisi verilerini içerir:

Daha sonra yukarıda bulduğumuz kullanıcıların root şifresini alacağız, bunun için aşağıdaki komutu kullanıyoruz:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current-user --is-dba --is-dba --privileges --dbs - çöplük
Brute force saldırısı ile verilen komutların sonunda sistem yöneticisi şifresinin bug ve kullanıcının root olduğunu görüyoruz.

Terminalden deneyeceğiz, aşağıdaki komutu kullanarak bilgisayarın uzaktan kontrolünü ele geçirmek için ssh üzerinden sanal makineye bağlanacağız:

 ssh kökü@192.168.0.14
Kök kullanıcı ve hata parolasının kullanıldığı sonuç, sanal makineye yönetici izinleriyle bağlantıdır.

Ardından, daha önce elde edilen verilerle, örneğin neo kullanıcı ve trinity şifresi ile kahramanlar ve kullanıcılar bölümüne giriş yapıp yapamayacağımızı test ediyoruz.

Bu kullanıcı verilerine sorunsuz bir şekilde erişmeyi başardık. Kullanıcılar tablosunu kullanırsak biz de giriş yapabiliriz.

3. HTML / XPATH enjeksiyonu


En az düşünülen saldırılardan biri, kod düzenlemeye izin veren tarayıcılar aracılığıyladır, kötü amaçlı bir sitenin bağlantısını değiştirirsek, kullanıcı fark etmeyecek ve web yenilendiğinde değişiklik kaybolacaktır.

Örneğin, Şifreyi değiştireceğiz ve bir Müfettiş veya kod düzenleyicisi açmak için sağ tıklayacağız ve url change_password.php'yi http://google.com olarak değiştireceğiz ve düzenleyiciyi kapatacağız.

BÜYÜT

Böylece kullanıcı o linke tıkladığında başka bir sayfaya yönlendirilecektir, çünkü sayfayı yenilerken veya değiştirirken link orijinaline döndüğü için çok etkisizdir. Bu, bizi güvenli bir web sitesine veya aynı etki alanına götüren bir bağlantıya tıklamadan önce bakmamız içindir.

4. Sunucu Tarafı Enjeksiyon


Sunucu tarafı enjeksiyonu, bir web sitesinin savunmasız olduğu ve sunucuda eylemler yürütmek için bir dilden veya işletim sisteminden komut girilmesine izin verdiği zamandır.

Saldırgan, web sunucusu tarafından çalıştırılan bir web uygulamasının metin alanı aracılığıyla kötü amaçlı kod veya komut gönderir. Aşağıdaki gibi yazacağımız Linux ls komutunu kullanarak dizinleri listelemenizi sağlayacak bir örnek görelim:

 

BÜYÜT

Sonuç, sunucudaki tüm dizinlerin listesi olacaktır, bu nedenle hiçbir komutun girilemeyeceğini kontrol etmeliyiz.

BÜYÜT

bWAPP projesinin bize önerdiği araçlardan biri ZAP (Zed Attack Proxy), bu aracı eğitimde gördük ZAP ile bir web sitesi güvenlik açığını tarayın, yaygın olarak güvenlik açıklarını taramak ve web sitelerinde sızma testleri yapmak için kullanılır. En güncel sürümü aşağıdaki bağlantıdan indirebiliriz:

ZAP'I İNDİR

Sahip olduğumuz işletim sistemine veya Java'da geliştirilmiş çok platformlu bir sürüme göre sürümü seçin. Kurulduktan sonra bWAPP ağını ZAP ile taramaya çalışacağız ve bazı güvenlik açıklarını arayacağız.

BÜYÜT

ZAP'ı başlattığımızda ve bir tarama yaptığımızda, güvenlik açıklarının çoğunu tespit ettiğini göreceğiz, tarama kurallarını tanımlamak için menüye gidebiliriz. Analiz Et> Tarama Kuralları ve sonra çift tıklıyoruz Varsayılan Politika.

Giriş sayfalarından birinde, kullanıcı seviyesinin bir parametre olarak gönderildiğini, bu durumda yöneticinin bulunduğunu görelim.

BÜYÜT

Ayrıca filtreleri ZAP eğitiminde gördüğümüz gibi SQL enjeksiyonu ve diğer saldırıları yapmak için de kullanabiliriz.

Web uygulama güvenliği, iyi tasarım ve içerik dışında çok önemli bir husustur.. bWAPP, birçok güvenlik açığını tanıyıp test etmemizi ve ardından bu bilgiyi web sitemizde uygulamamızı sağlayacak ve ayrıca uzmanların, geliştiricilerin ve öğrencilerin web güvenlik açıklarını keşfedip önleyebilmeleri için hizmet veren bir platformdur.

bWAPP, web uygulaması sızma testi ve etik korsanlık projeleri için yaygın olarak kullanılmaktadır. bWAPP bilinen tüm önemli web güvenlik açıklarını kapsarHer yıl 10 kategoride güvenlik açıklarını toplayan OWASP İlk 10 projesinin tüm riskleri dahil.

Son olarak, bu makaleyi bir açıklama ile tavsiye ediyoruz. siber saldırı türleri.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave