# ZAP

## ZAP nedir?

**ZAP (Zed Attack Proxy)** **ücretsiz**, **açık kaynaklı** bir sızma testi aracı ve güvenlik tarayıcısıdır. Birincil işlevi, hem siber güvenlik uzmanlarına hem de alana yeni giriş yapanlara web uygulamalarındaki güvenlik açıklarını bulma konusunda yardımcı olmaktır. ZAP, web uygulamalarının **geliştirme** ve **test** aşamalarında ve ayrıca yayımlanmış olan (deployed) web sitelerinin güvenlik testlerinde de kullanılabilir. Geliştiricilerden ve siber güvenlik meraklılarından oluşan geniş ve aktif bir topluluk tarafından desteklenen ZAP, sık sık güncelleme ve yama alır. **The Software Security Project (SSP)** çatısı altında geliştirilmeye devam edilmektedir.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-372cb2b91bf06a42f4acbedbd4e86e90da80e24f%2Fzap-logo.png?alt=media" alt=""><figcaption></figcaption></figure>

ZAP, **"MITM (Man-in-the-Middle)"** proxy'sini kullanarak, tarayıcınız ile web sunucusu arasındaki HTTP/HTTPS trafiğini yakalamanıza ve analiz etmenize olanak tanır. Bu, isteklerin(requests)/yanıtların(responses) manuel olarak test edilmesine ve değiştirilmesine olanak tanır.

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-dd701c82a2e85d7c9f1125fb4c906231c3a59b2c%2Fbrowser-no-proxy.png?alt=media" alt=""><figcaption></figcaption></figure>

## Özellikler

* **XSS**, **SQL injection** ve daha fazlasını içeren çok çeşitli zafiyetleri tespit etmek için hem **pasif** (trafik analizi) hem de **aktif** (payload'lar göndererek) olarak gerçekleştirebilirsiniz.
* ZAP'in dâhilî **fuzzing** özelliklerini kullanarak uygulamanızın esnekliğini hatalı biçimlendirilmiş (malformed) veya beklenmedik verilere karşı test edebilirsiniz.
* Genişletilmiş penetrasyon testleri için **gizli sayfaları**, **dizinleri** ve işlevleri keşfetmek üzere bir web uygulamasını otomatik olarak **tarayabilirsiniz**.
* Belirlenen güvenlik açıklarını özetleyen ve önerilen düzeltme adımlarını sunan çeşitli formatlarda (XML, HTML vb.) ayrıntılı **raporlar** oluşturabilirsiniz.
* **ZAP Marketplace**'te bulunan **Eklentiler (Add-ons)**, taramaları özelleştirmenize ve aracın işlevselliğini belirli ihtiyaçlara göre genişletmenize olanak tanır.

## Uygulama

### ZAP'i Yükleyin

ZAP'in [Download](https://www.zaproxy.org/download/) sayfasından indirin ve kurun.

*ZAP'in çalışması için Java 11+ sürümünün gerekli olduğunu unutmayın.*

### ZAP'i Çalıştırın

*ZAP'i ilk başlattığınızda, ZAP oturumuna (session) devam etmek isteyip istemediğiniz sorulacaktır. Varsayılan olarak, ZAP oturumları her zaman bir HSQLDB veritabanındaki diske varsayılan ad ve konumla kaydedilir. Oturuma devam etmezseniz ZAP'tan çıktığınızda bu dosyalar silinir.* *Bir oturumu sürdürmeyi (persisting) seçerseniz, oturum bilgileri daha sonra erişebilmeniz için yerel veri tabanına kaydedilecek ve dosyaların kaydedilmesi için özel adlar ve konumlar sağlayabileceksiniz.*

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-69da653bd58804d4f96d7353c0490916ed79e888%2Fpersist-session.png?alt=media" alt="Sürekli Oturum"><figcaption></figcaption></figure>

*Şimdilik 'Hayır, bu oturumu şu anda sürdürmek istemiyorum'u seçin ve ardından Başlat'a tıklayın. ZAP oturumları şimdilik sürdürülmeyecek.*

### Kullanım

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-34ba740b61bc5e1b6d5ecb4838c7232aaf110331%2Flayout.png?alt=media" alt="ZAP Layout"><figcaption></figcaption></figure>

1. Menü Çubuğu (Menu Bar) – Otomatik ve manuel araçların çoğuna erişim sağlar.
2. Araç Çubuğu (Toolbar) – En sık kullanılan özelliklere kolay erişim sağlayan düğmeler içerir.
3. Ağaç Penceresi (Tree Window) – Sitenin tree yapısını ve Scripts ağacını görüntüler.
4. Çalışma Alanı Penceresi (Workspace Window) – **istekleri**, **yanıtları** ve **scriptleri** görüntüler ve bunları düzenlemenizi sağlar.
5. Bilgi Penceresi (Information Window) – Otomatik ve manuel araçların ayrıntılarını görüntüler.
6. Alt Bilgi (Footer) – Bulunan **alertlerin** bir özetini ve ana otomatik araçların durumunu görüntüler.

#### Otomatik Tarama

Otomatik tarama yapmak için Çalışma Alanındaki Automated Scan'e tıklayın:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-2c4c3e7c01f17b3c3b3e36f9943e936e38988a15%2Fautomated-scan.png?alt=media" alt="Automated Scan"><figcaption></figcaption></figure>

Test etmek istediğiniz sitenin adresini girin ve ⚡Attack'e tıklayın.

*Geleneksel ZAP spider'ı web uygulamasından gelen yanıtlardaki HTML'i inceleyerek bağlantıları keşfeder. Bu spider hızlıdır ancak JavaScript kullanarak bağlantılar oluşturan bir AJAX web uygulamasını keşfederken her zaman en etkili yöntem olmayabilir. AJAX uygulamaları için ZAP'in AJAX spider'ının daha etkili olması muhtemeldir. Bu spider, daha sonra oluşturulan bağlantıları takip eden tarayıcıları çağırarak web uygulamasını tarar. Tarama, testi yavaşlatmamak için arka planda gerçekleştirilir.*

Bu yöntem, web uygulaması sayfalarında gezinerek pasif tarama kullanır:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-0f2411ebb736cf3aa5a2b3e738327696cfa73c3a%2Fcrawling.png?alt=media" alt="Crawling"><figcaption></figcaption></figure>

Pasif taramanın ardından ZAP, aktif taramayla payload'lar göndererek keşfedilen sayfalara saldırı gerçekleştirmeye başlar:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-26e99b7c058dff86882bf5994770d3a55461a996%2Factive-scan.png?alt=media" alt="ZAP Active Scanning"><figcaption></figcaption></figure>

[Yavuzlar](https://yavuzlar.org/)'da bir zafiyete rastlayamadık tabii 😁. Birazdan zayifetli bir sitede test yapacağız.

#### Alerts

Footer bölümü, test sırasında bulunan ve web uygulamasındaki olası zafiyetleri ifade etmek için kullanılan, risk kategorilerine ayrılmış Alert'leri içerir:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-ce0b5738ab7794633509cdb596d3cdd3c4320d34%2Falert-icons.png?alt=media" alt="Alerts"><figcaption></figcaption></figure>

Bir alerte tıklarsanız, keşfedilen güvenlik açığı ve birçok ek bilgi Bilgi Penceresinde görüntülenir.

[Hackviser](https://app.hackviser.com/labs/web-application-security)'ın Basic SQL Injection labındaki zafiyetli web uygulamasını tarayalım; bu web uygulaması içinde SQLi zafiyeti barındıran bir login sayfası:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-19cf759399e9a4a34f797112d472e751490a0b34%2Fhackviser-example.png?alt=media" alt="Hackviser Example"><figcaption></figcaption></figure>

Taramadan sonra, ZAP aşağıdaki Alert'leri listeledi:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-8c6bf90873b734df330481ce555e1d06529307fd%2Fexample-alerts.png?alt=media" alt="Found Alerts"><figcaption></figcaption></figure>

Yukarıda görüldüğü üzere ZAP bu sitede bir SQL Injection zafiyetinin olabileceğini söylüyor:

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-9d5e8b5148a9b6a5a48975d45865fd895fa9ec6b%2Fexample-vulnerability.png?alt=media" alt="SQLi Alert"><figcaption></figcaption></figure>

Yukarıda zafiyetin olduğu **adresi**, **risk seviyesini**, **zafiyetin varlığından ne kadar emin olunduğunu**, hangi **parametrelerde** zafiyet olduğunu ve gönderilen **payload** gibi birçok bilgiye erişebilirsiniz.

#### Manuel Tarama

Manuel Taramanın sınırlı imkanlarını genişletmek için ZAP'in Manuel Keşfetme özelliğini de kullanabilirsiniz.

*Oturum açma sayfasıyla korunan sayfalar pasif tarama sırasında keşfedilemez çünkü ZAP'in kimlik doğrulama (authentication) işlevini yapılandırmadığınız sürece ZAP gerekli kimlik doğrulamayı gerçekleştirmeyecektir.* *Pasif taramada keşif veya otomatik saldırıda gerçekleştirilen saldırı türleri üzerinde çok fazla kontrole sahip değiliz. ZAP, pasif taramanın dışında keşif ve saldırılar için birçok ek seçenek sunuyor.*

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-fa64be3165ba67880abad664eb27f40d9a20f7ef%2Fexample-manual-explore.png?alt=media" alt="ZAP Manual Scanning"><figcaption></figcaption></figure>

**The Heads Up Display**

*Heads Up Display (HUD), ZAP işlevselliğine doğrudan tarayıcıdan erişim sağlayan yenilikçi bir arayüzdür. Web güvenliğine yeni başlayan kişiler için idealdir ve aynı zamanda deneyimli pentesterlar için de önemli güvenlik bilgileri ve işlevleri sağlarken bir uygulamanın işlevselliğine odaklanmasına da olanak tanır.*

<figure><img src="https://10693534-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpHJ8OuTO6xpfwqkn7vmg%2Fuploads%2Fgit-blob-8a89837315de1dcf1b65697e66f78aa801059eae%2Fexample-hud.png?alt=media" alt="ZAP HUD"><figcaption></figcaption></figure>

## Sonuç

**OWASP ZAP**, ister profesyonel bir pentester, ister yeni başlayan bir web güvenliği meraklısı olun, yararlı bir araçtır. Otomatik, manuel test yetenekleri ve güçlü topluluk desteğinden oluşur ve testlerinizi kolaylaştırabilir. Yaptığınız bu testlerle beraber siber güvenlik yolculuğunuzda kendinize birçok bilgi ve deneyim katabilir, yolunuza bu araçtan yardım alarak devam edebilirsiniz. Sürekli güncellenen ve sağlam bir destek altyapısına sahip olan bu tool, her geçen gün büyümeye ve değişmeye devam ediyor. Tıpkı senin gibi dostum. Happy hacking!

### İleri Okuma

* [ZAP's Documentation](https://www.zaproxy.org/docs/)
* [Github Page](https://github.com/zaproxy)
* [Github Source Code](https://github.com/zaproxy/zaproxy)
* [ZAP's Community](https://www.zaproxy.org/community/)
* [ZAP's Blog](https://www.zaproxy.org/blog/)
* [ZAP's Official Videos](https://www.zaproxy.org/videos/)

{% embed url="<https://github.com/burkocyigit>" fullWidth="false" %}
Bu yazı Burak Koçyiğit tarafından hazırlanmıştır.
{% endembed %}
