İçeriğe geç
Guides 5 dk okuma 1539 görüntülenme

mitmproxy

HTTP/S trafiğini etkili biçimde yakalayıp analiz etmek için mitmproxy'yi keşfedin. Hata ayıklama, güvenlik testleri ve geliştirme süreçlerini iyileştirmek için ideal.

Security
mitmproxy

mitmproxy; HTTP/S trafiğini yakalamak, incelemek, değiştirmek ve yeniden oynatmak için tasarlanmış ücretsiz ve açık kaynaklı bir etkileşimli konsol aracı, web arayüzü ve Python kütüphanesidir. Web uygulamaları, API'ler ve mobil trafikle çalışan geliştiriciler, güvenlik araştırmacıları ve QA mühendisleri için güçlü bir man-in-the-middle proxy'si görevi görür.

mitmproxy'ye genel bakış

mitmproxy, istemci ile hedef sunucu arasında konumlanan bir proxy sunucusu olarak çalışır. Proxy üzerinden geçen tüm HTTP ve HTTPS trafiği gerçek zamanlı olarak görüntülenebilir, filtrelenebilir ve değiştirilebilir. Temel işlevi; istek ve yanıt başlıklarının, gövdelerinin ve diğer özniteliklerin derinlemesine incelenmesini sağlar. Araç seti şunlardan oluşur:

  • mitmproxy: gerçek zamanlı trafik analizi için etkileşimli terminal arayüzü.
  • mitmweb: mitmproxy ile benzer işlevler sunan, ancak web tarayıcısı üzerinden erişilen tarayıcı tabanlı grafik arayüz.
  • mitmdump: trafiğin programatik olarak değiştirilmesi ve kaydedilmesi için komut satırı aracı; betik yazımı ve otomasyon için uygundur.

Öne çıkan özellikler

SSL/TLS araya girme

mitmproxy kendi SSL/TLS sertifikalarını anlık olarak üretir; böylece şifreli HTTPS trafiğini çözebilir ve inceleyebilir. Bunun için istemcinin mitmproxy CA sertifikasına güvenmesi gerekir.

Etkileşimli arayüz

Hem mitmproxy hem de mitmweb, trafik akışlarını görüntülemek ve yönetmek için etkileşimli ortamlar sunar. Akışları filtreleyebilir, içerikte arama yapabilir, istek/yanıtları düzenleyebilir ve belirli akışları sonraki analiz için işaretleyebilirsiniz.

Trafiği değiştirme

İstekler ve yanıtlar, etkileşimli arayüz üzerinden veya Python betikleriyle anlık olarak değiştirilebilir. Bu sayede sınır durumlarını test edebilir, başlık ekleyebilir, veriyi değiştirebilir veya farklı sunucu yanıtlarını simüle edebilirsiniz.

Yeniden oynatma (replay)

mitmproxy, kaydedilmiş istemci isteklerini sunucuya veya sunucu yanıtlarını istemciye yeniden göndermeyi destekler. Bu, istemci eylemlerini yeniden yürütmeden belirli senaryoları test etmek ya da sunucu davranışını simüle etmek için kullanışlıdır.

Betik yazımı ve otomasyon

mitmdump, özel betikler geliştirmek için bir Python API'si sunar. Bu betikler, tanımlanan mantığa göre trafiği programatik olarak inceleyebilir, değiştirebilir, yönlendirebilir veya düşürebilir; böylece otomatik testler ve karmaşık trafik manipülasyonları kolaylaşır.

Şeffaf proxy modu

mitmproxy, istemcilerin açık proxy yapılandırmasına ihtiyaç duymadığı şeffaf proxy modunda çalışabilir. Ağ trafiği, genellikle yönlendirici kuralları veya güvenlik duvarı yapılandırmalarıyla ağ katmanında mitmproxy'ye yönlendirilir.

Kurulum

mitmproxy pip ile kurulabilir:

pip install mitmproxy

Belirli işletim sistemleri için önceden derlenmiş ikili dosyalar resmi mitmproxy sitesinde bulunur; ayrıca macOS'ta Homebrew gibi paket yöneticileriyle de kurulabilir.

Temel kullanım

mitmproxy'yi başlatma

Etkileşimli konsol arayüzünü başlatmak için:

mitmproxy

Web arayüzünü başlatmak için:

mitmweb

Varsayılan olarak mitmproxy localhost:8080 adresini dinler.

İstemci yapılandırması

İstemcilerin, HTTP/S proxy'si olarak mitmproxy'yi kullanacak şekilde yapılandırılması gerekir.

Tarayıcı örneği (Firefox):
1. Firefox ayarlarını açın.
2. Ağ Ayarları veya Proxy Ayarları bölümüne gidin.
3. "Elle proxy yapılandırması" seçeneğini işaretleyin.
4. HTTP Proxy alanına 127.0.0.1, Port alanına 8080 yazın.
5. SSL Proxy alanına 127.0.0.1, Port alanına 8080 yazın.
6. "Bu proxy sunucusunu tüm protokoller için kullan" seçeneğinin işaretli olduğundan emin olun veya diğer protokolleri de benzer şekilde yapılandırın.

İşletim sistemi (macOS):
1. Sistem Ayarları > Ağ > Wi-Fi > Ayrıntılar yolunu izleyin.
2. "Proxy'ler" bölümünü seçin.
3. "Web Proxy (HTTP)" ve "Güvenli Web Proxy (HTTPS)" seçeneklerini etkinleştirin.
4. Her ikisi için Sunucu alanına 127.0.0.1, Port alanına 8080 yazın.

SSL/TLS sertifikası kurulumu

HTTPS trafiğini çözmek için istemcilerin mitmproxy CA sertifikasına güvenmesi gerekir.
1. mitmproxy çalışırken, yapılandırılmış bir istemcinin tarayıcısında http://mitm.it adresine gidin.
2. İstemcinin işletim sistemine veya tarayıcısına uygun CA sertifikasını indirip kurun.
3. Android veya iOS gibi sistemlerde, genellikle sertifikayı indirip güvenlik ayarlarından elle güvenilir olarak işaretlemeyi içeren özel kurulum adımları gerekir.

İleri düzey kullanım

İstek ve yanıtları değiştirme

mitmproxy veya mitmweb arayüzünden:
1. Bir akış seçin.
2. İsteği veya yanıtı değiştirmek için e (edit) tuşuna basın.
3. Düzenlenecek bileşeni seçin (örneğin başlıklar, gövde, URL).
4. Değişiklikleri yapın ve kaydedip akışı sürdürmek için q tuşuna basın.

mitmdump ile betik yazımı

Trafik manipülasyonunu otomatikleştirmek için mitmdump'a Python betikleri verilebilir.

Örnek: bir istek başlığını değiştirme

modify_header.py:

from mitmproxy import http

def request(flow: http.HTTPFlow):
    if "example.com" in flow.request.pretty_host:
        flow.request.headers["X-Modified-By"] = "mitmproxy-script"
        print(f"Modified header for {flow.request.url}")

mitmdump ile çalıştırın:

mitmdump -s modify_header.py

Bu betik, example.com adresine giden isteklere X-Modified-By adlı özel bir başlık ekler.

Örnek: bir yanıt gövdesini değiştirme

modify_response.py:

from mitmproxy import http

def response(flow: http.HTTPFlow):
    if "api.example.com/data" in flow.request.url and flow.response.content:
        # Yanıtın JSON olduğu varsayılıyor
        data = flow.response.json()
        data["status"] = "modified_by_mitmproxy"
        flow.response.set_json(data)
        print(f"Modified response body for {flow.request.url}")

mitmdump ile çalıştırın:

mitmdump -s modify_response.py

Bu betik api.example.com/data adresinden gelen yanıtları yakalar, JSON olarak ayrıştırır, bir alanı değiştirir ve değiştirilmiş JSON'u istemciye geri gönderir.

Akışları yeniden oynatma

mitmproxy, yakalanan HTTP akışlarını yeniden oynatmanıza olanak tanır.

İstemci isteğini yeniden oynatma:
1. mitmproxy veya mitmweb içinde bir akış seçin.
2. İstemci isteğini sunucuya yeniden göndermek için r tuşuna basın. Böylece aynı istek, istemci etkileşimi olmadan yeniden gönderilir.

Sunucu yanıtını yeniden oynatma:
1. Bir akış seçin.
2. Sunucu yanıtını istemciye yeniden göndermek için R (shift+r) tuşuna basın. Bu, kaydedilmiş sunucu yanıtını gerçek sunucu etkileşimini atlayarak istemciye gönderir. Belirli sunucu yanıtlarıyla istemci tarafı davranışını test etmek için kullanışlıdır.

Kullanım senaryoları

  • API geliştirme ve hata ayıklama: API davranışını anlamak, veri biçimlerini doğrulamak ve entegrasyon sorunlarını ayıklamak için istek ve yanıtları incelemek.
  • Güvenlik testleri: istekleri değiştirerek (örneğin SQL veya XSS yükleri enjekte ederek) açıkları tespit etmek, kimlik doğrulama mekanizmalarını test etmek ve şifreli trafiği analiz etmek.
  • Mobil uygulama analizi: mobil uygulamaların trafiğini yakalayıp analiz ederek arka uç iletişimini, veri işleme biçimini ve olası güvenlik açıklarını anlamak.
  • Tersine mühendislik: ağ iletişimlerini gözlemleyerek özel protokolleri çözümlemek veya uygulamaların uzak sunucularla nasıl etkileştiğini anlamak.
  • Otomatik testler: belirli ağ koşullarını simüle etmek, API yanıtlarını taklit etmek veya uygulama davranışını otomatik olarak denetlemek için mitmdump betiklerini kullanmak.

mitmproxy ile diğer proxy araçlarının karşılaştırması

HTTP/S araya girme özelliği sunan birçok araç olsa da mitmproxy, açık kaynak yapısı, güçlü betik yazma imkânı ve esnek arayüzleriyle öne çıkar.

Özellik mitmproxy Burp Suite Community Edition Fiddler (Windows)
Lisans Açık kaynak (MIT) Tescilli (ücretsiz/ücretli katmanlar) Tescilli (ücretsiz/ücretli katmanlar)
Betik yazımı Python API (mitmdump) Sınırlı (Java/Python/Ruby eklentileri) FiddlerScript (JScript.NET), .NET eklentileri
Arayüz Konsol (mitmproxy), Web UI (mitmweb) Masaüstü GUI Masaüstü GUI
SSL/TLS Tam araya girme Tam araya girme Tam araya girme
Trafik değişt. Evet Evet Evet
Replay Evet (istemci/sunucu) Evet (Repeater) Evet (Composer)
Şeffaf proxy Evet Evet Evet
Hedef kitle Geliştiriciler, güvenlik araştırmacıları, otomasyon Sızma testi uzmanları, web uygulama güvenliği Geliştiriciler, testçiler, web uygulama güvenliği
Platform Çoklu platform (Linux, macOS, Windows) Çoklu platform (Java tabanlı) Windows, macOS (Fiddler Everywhere ile)

Bu karşılaştırma, mitmproxy'nin otomasyon ve açık kaynak esnekliğindeki güçlü yanlarını ortaya koyar; trafik analizi süreçleri üzerinde derin denetim isteyen teknik kullanıcılar için onu sağlam bir seçenek hâline getirir.

Güncellendi: 04.03.2026
Kategoriye dön

Bunları da okuyun

Guides 2 dk

Nike SNKRS için Proxy: Sınırlı Sürümler ve Çoklu Katılım

Nike SNKRS'ta birden fazla hesapla çekilişlere katılmak, IP limitlerini aşmak ve ban yemeden sınırlı sürümleri kapmak için residential veya mobil proxy kullanın. Hangi türü seçmeli ve nasıl kurmalı.

Guides 2 dk

iPhone'da Proxy Nasıl Kurulur (Wi-Fi ve SOCKS5)

iPhone'da proxy'yi yerleşik Wi-Fi ayarlarından (HTTP/HTTPS) veya SOCKS5 ile hücresel kapsama için Shadowrocket gibi bir uygulamayla kurun. Adım adım iOS kurulumu ve bilinmesi gereken kısıtlar.

Guides 3 dk

Tinder için proxy: çoklu hesap ve ban'lerden kaçınma

Birden fazla profil işletmek ve IP shadowban'lerinden kaçınmak için Tinder'da mobil veya residential proxy kullanın. Mobilin neden kazandığı, kurulumu ve proxy'nin şehri neden değiştirmediği.

Guides 2 dk

StockX için proxy: fiyat takibi ve hesap yönetimi

StockX'te fiyatları izlemek, birden fazla hesap çalıştırmak ve drop'ları yasaklanmadan kapmak için residential, ISP veya mobil proxy kullanın. Hangi türü seçeceğinizi ve nasıl kuracağınızı anlatıyoruz.

Guides 3 dk

OpenAI API için Proxy: Erişim, Hız Limitleri ve Kurulum

OpenAI API'yi residential veya ISP proxy üzerinden yönlendirerek desteklenen bölgelere erişin, 429 hız limitlerinden kaçının ve hesapları izole edin. Hangi proxy'yi seçmeli ve Python kurulum örnekleri.

Guides 1 dk

E2E testleri için Cypress'te proxy kurulumu

Cypress'te proxy kurulumu: HTTP_PROXY değişkenleri, cy-proxy-middleware ve coğrafi konuma bağlı içeriğin test edilmesi.

Proxy'lerimizi deneyin

100+ ülkede 20,000+ proxy

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.