Fiddler, geliştiricilerin ve güvenlik uzmanlarının bir istemci (web tarayıcısı veya uygulama) ile bir sunucu arasındaki HTTP/HTTPS trafiğini Windows sistemlerinde yakalamasına, incelemesine, değiştirmesine ve yeniden göndermesine olanak tanıyan ücretsiz bir web hata ayıklama proxy'sidir. Kendisini aracı olarak konumlandırarak çalışır; üzerinden geçen tüm ağ isteklerini ve yanıtlarını yakalar ve web iletişimi üzerinde ayrıntılı kontrol ile görünürlük sağlar.
Fiddler'ı proxy olarak kurma
Kurulum
Fiddler Classic, resmi Telerik sayfasından indirilebilir. Kurulum standart bir Windows sihirbazıyla yapılır. İlk çalıştırmada Fiddler genellikle kendisini sistem proxy'si olarak yapılandırır.
Fiddler'ın varsayılan proxy yapılandırması
Fiddler varsayılan olarak 127.0.0.1:8888 adresini dinler. Başlatıldığında Windows sistem proxy ayarlarını otomatik olarak değiştirerek trafiği bu adrese yönlendirir. Kapatıldığında ise genellikle orijinal sistem proxy ayarlarını geri yükler. Bu otomatik yapılandırma, genel web hata ayıklaması için kullanımı kolaylaştırır.
HTTPS trafiğini yakalama
HTTPS trafiğini inceleyebilmek için Fiddler'ın onu çözmesi gerekir. Bunun için Fiddler'ın kök sertifikasının sistemin güvenilir sertifika deposuna kurulması gerekir.
Tools > Options > HTTPSyolunu izleyin.Capture HTTPS CONNECTsseçeneğini etkinleştirin.Decrypt HTTPS trafficseçeneğini etkinleştirin.ActionsardındanTrust Root Certificateöğesine tıklayın. Güvenlik uyarılarını onaylayın.
Sertifika güvenilir hale geldikten sonra Fiddler, HTTPS bağlantılarında man-in-the-middle işlemi gerçekleştirebilir; yakaladığı her alan adı için kendi güvenilir kök sertifikasıyla imzalanmış geçici sertifikalar üretir. Fiddler kök sertifikasına güvenecek şekilde yapılandırılan istemciler, trafiği güvenlik uyarısı almadan Fiddler üzerinden gönderir.
Fiddler'ı harici bir upstream proxy ile birlikte kullanma
Kurumlar ağ güvenliği, içerik filtreleme veya erişim denetimi için sıklıkla kurumsal proxy'ler kullanır. Fiddler, yakaladığı trafiği böyle bir upstream proxy üzerinden iletecek şekilde yapılandırılabilir. Bu, güvenlik altyapısını atlatmadan kurumsal proxy arkasındaki uygulamalarda hata ayıklamayı mümkün kılar.
Fiddler'ı upstream proxy kullanacak şekilde yapılandırma
Fiddler'ı mevcut bir proxy ile zincirlemek için:
Tools > Options > Gatewayyolunu izleyin.- Aşağıdaki seçeneklerden birini belirleyin:
- Use System Proxy: Fiddler, işletim sistemi düzeyinde yapılandırılmış proxy ayarlarını (örneğin Internet Explorer'ın LAN ayarları) kullanmaya çalışır. Varsayılan davranış budur.
- Manual Proxy Configuration: özel bir upstream proxy belirtin.
Manual Proxy Configurationseçeneğini işaretleyin.- Proxy adresini ve portunu
hostname:portveyaIP_address:portbiçiminde girin. - Örnek:
corporateproxy.example.com:8080. - Upstream proxy kimlik doğrulama istiyorsa
Authenticate with upstream proxykutusunu işaretleyip kimlik bilgilerini girin.
- Değişiklikleri uygulamak için
OKdüğmesine tıklayın.
Fiddler'ın proxy zincirleme davranışı
Fiddler bir upstream proxy kullandığında trafik akışı şöyle olur:
İstemci (örneğin tarayıcı) -> Fiddler (127.0.0.1:8888) -> Upstream proxy -> İnternet
Fiddler yakalama ve şifre çözme işlevlerini gerçekleştirir, ardından (gerekirse yeniden şifrelenmiş) isteği yapılandırılmış upstream proxy'ye iletir. Upstream proxy de nihai hedefe yönlendirmeyi üstlenir. Bu zincirleme ek bir sıçrama getirir ve küçük bir gecikmeye yol açabilir.
Fiddler ile trafik analizi
Oturum listesi
Ana arayüz, yakalanan oturumların listesini gösterir. Her satır bir HTTP/HTTPS isteğini ve buna karşılık gelen yanıtı temsil eder. Başlıca sütunlar:
* Result: HTTP durum kodu.
* Protocol: HTTP veya HTTPS.
* Host: hedef sunucunun ana bilgisayar adı.
* URL: isteğin tam URL'si.
* Body: yanıt gövdesinin boyutu.
* Caching: önbellekleme direktifleri.
Inspectors
Inspectors sekmesi, seçilen istek ve yanıtların ayrıntılı görünümlerini sunar.
- İstek inspector'ları:
- Headers: tüm HTTP istek başlıklarını gösterir.
- WebForms: URL kodlamalı form verilerini gösterir.
- Raw: ham HTTP isteğinin tamamını gösterir.
- JSON/XML: JSON/XML istek gövdeleri için biçimlendirilmiş görünüm.
- Yanıt inspector'ları:
- Headers: tüm HTTP yanıt başlıklarını gösterir.
- TextView: yanıt gövdesinin düz metin görünümü.
- ImageView: görsel yanıtları görüntüler.
- Raw: ham HTTP yanıtının tamamını gösterir.
- JSON/XML: JSON/XML yanıt gövdeleri için biçimlendirilmiş görünüm.
AutoResponder
AutoResponder sekmesi, istekleri yakalayıp sunucuya hiç gitmeden yerel dosyalarla ya da özel verilerle yanıt vermeyi sağlar. Şunlar için kullanışlıdır:
* API mocklama: geliştirme ve test için sunucu yanıtlarını simüle etme.
* Hata durumlarını test etme: belirli HTTP durum kodları döndürme.
* İçerik değiştirme: yerel JavaScript veya CSS dosyaları enjekte etme.
Kurallar tam eşleşme, joker karakter veya düzenli ifadelerle tanımlanabilir.
Composer
Composer sekmesi, kullanıcıların HTTP isteklerini elle oluşturup çalıştırmasına olanak tanır. Şunlar için kullanışlıdır:
* İstekleri yeniden gönderme: daha önce yakalanmış bir isteği, gerekirse değiştirerek yeniden gönderme.
* API uç noktalarını test etme: API davranışını denetlemek için özel istekler gönderme.
* Fuzzing: farklı parametrelerle isteği tekrar tekrar gönderme.
Kullanıcılar isteği çalıştırmadan önce URL'yi, başlıkları ve istek gövdesini değiştirebilir.
Filters
Filters sekmesi, ilgili trafiğe odaklanmak için oturum listesini filtrelemeyi sağlar.
* Hosts: belirli ana bilgisayar adlarına giden trafiği göster veya gizle.
* Processes: trafiği kaynak Windows sürecine göre filtrele (örneğin yalnızca chrome.exe trafiğini göster).
* URL Content: URL'si belirli metinleri içeren oturumları gizle.
* Status Codes: yalnızca belirli HTTP durum kodlarına sahip oturumları göster.
Yalnızca belirli bir ana bilgisayardan gelen trafiği göstermek için örnek filtre:
// 'Hosts' bölümünde 'Show only traffic from the following Hosts' kutusunu işaretleyin
// Listeye 'example.com' ekleyin.
Proxy analizinin yaygın kullanım senaryoları
Web uygulamalarında hata ayıklama
Fiddler şu tür sorunların teşhisine yardımcı olur:
* Yanlış gönderilen istek parametreleri.
* Beklenmeyen sunucu yanıtları veya hata kodları.
* Eksik ya da hatalı biçimlendirilmiş HTTP başlıkları.
* Kaynaklar arası kaynak paylaşımı (CORS) sorunları.
Güvenlik testi
- Kimlik doğrulama akışı analizi: kimlik bilgilerinin güvenli iletildiğini denetlemek için oturum açma isteklerini yakalama.
- Zafiyet tespiti: şifrelenmemiş hassas verileri, güvensiz HTTP başlıklarını veya hatalı yapılandırmaları saptama.
- Oturum yönetimi: çerez özniteliklerini ve oturum token kullanımını analiz etme.
Performans optimizasyonu
- Kaynak yükleme: büyük dosyaları, yavaş yükleme sürelerini veya verimsiz önbellekleme stratejilerini (örneğin eksik
Cache-Controlbaşlıkları) belirleme. - İstek yükü: ağ kullanımını optimize etmek için isteklerin sayısını ve boyutunu inceleme.
API geliştirme ve test
- API incelemesi: bir uygulamanın arka uç API'leriyle nasıl etkileşime girdiğini anlama.
- API mocklama: istemci tarafı geliştirme için çeşitli API yanıtlarını simüle etmek üzere AutoResponder kullanma.
- Uç nokta doğrulama: API uç noktalarını farklı payload ve parametrelerle test etmek için Composer kullanma.
Fiddler ile diğer proxy araçlarının karşılaştırması
| Özellik | Fiddler Classic (Windows) | Burp Suite Community (çoklu platform) | Charles Proxy (çoklu platform) |
|---|---|---|---|
| Ana odak | Genel web hata ayıklama, geliştirme, performans. | Web güvenlik testi, sızma testi. | Genel web hata ayıklama, geliştirme, performans. |
| Maliyet | Ücretsiz | Ücretsiz (Community Edition), ücretli (Professional Edition) | Ücretli (deneme sürümü var) |
| İşletim sistemi | Windows | Windows, macOS, Linux | Windows, macOS, Linux |
| HTTPS çözme | Evet, kök sertifika kurulumuyla. | Evet, kök sertifika kurulumuyla. | Evet, kök sertifika kurulumuyla. |
| Öne çıkan özellikler | AutoResponder, Composer, Filters, kapsamlı Inspectors. | Proxy, Intruder, Repeater, Sequencer, Decoder, Scanner (Pro). | Proxy, Rewrite, Map Local/Remote, Throttling, DNS spoofing. |
| Betik yazımı | Özel kural ve eklentiler için FiddlerScript (JScript.NET). | Eklentiler (Java, Python, Ruby). | Özel eklentiler (Java). |
| Kullanılabilirlik | Geliştiriciler ve test uzmanları için kullanıcı dostu. | Daha dik öğrenme eğrisi, güvenlik uzmanlarına yönelik. | Sezgisel arayüz, genel hata ayıklama için iyi. |
Fiddler proxy sorunlarını giderme
Trafik görünmüyor
- Fiddler yakalama durumu:
File > Capture Trafficseçeneğinin işaretli olduğundan emin olun (veya F12 tuşuna basın). Durum çubuğunda "Capturing" yazmalıdır. - Sistem proxy ayarları: Fiddler'ın sistem proxy'sini başarıyla yapılandırdığını doğrulayın.
Tools > Options > Connectionsbölümüne gidin veAct as system proxy on startupseçeneğinin işaretli olduğundan emin olun. - İstemci yapılandırması: tarayıcı olmayan bir uygulamada hata ayıklıyorsanız, uygulamanın Fiddler proxy'sini (
127.0.0.1:8888) kullanacak şekilde ayarlandığından emin olun. - Güvenlik duvarı: bir güvenlik duvarının Fiddler'ın portunu veya ağ erişimini engelleyip engellemediğini kontrol edin.
HTTPS şifre çözme hataları
- Sertifika güveni: Fiddler kök sertifikasının sistemde ve tarayıcıda doğru kurulduğunu ve güvenilir olduğunu doğrulayın.
Tools > Options > HTTPSaltındaActions > Trust Root Certificateadımını yeniden çalıştırın. - Uygulamaya özel sertifika depoları: bazı uygulamalar (örneğin mobil uygulamalar, Java uygulamaları) sistem deposunu atlayarak kendi sertifika depolarını kullanır. Bunlarda Fiddler sertifikasının ilgili depoya elle kurulması veya sertifika sabitlemenin (certificate pinning) devre dışı bırakılması gerekebilir.
- Süresi dolmuş sertifikalar: Fiddler kök sertifikasının süresinin dolmadığından emin olun.
Upstream proxy bağlantısı
- Doğru adres/port:
Tools > Options > Gatewaybölümündeki upstream proxy adresini ve portunu tekrar kontrol edin. - Kimlik doğrulama: upstream proxy kimlik doğrulama istiyorsa Fiddler'a girilen kimlik bilgilerini doğrulayın.
- Ağ erişilebilirliği: Fiddler'ın çalıştığı makinenin upstream proxy sunucusuna erişebildiğini doğrulayın. Upstream proxy'nin IP'sine ve portuna bağlantıyı test etmek için
pingveyatelnetkullanın. - Upstream proxy günlükleri: bağlantı reddi veya kimlik doğrulama hataları için upstream proxy günlüklerini inceleyin.
