Python3 - Requests Modülü - SSL Kullanma?

o fark etkisiz hocam tekrar test etttim.

TLS kullandığım halde yine 403 dönüyor. curl Kendi sertifikasını kullanıyorum (https://curl.haxx.se/ca/cacert-2020-01-01.pem) yinede 403 dönüyor ama burpsuite/fiddler/charles proxy gibi yazılımlarla local trafiği dinlediğimde 403 dönmüyor. Merak ettiğim bu bahssettiğim local trafiği dinleyen yazılımlar http isteklerine ne tarz bi şey yapıyor ki istek başarılı oluyor?

Anladim, ama lokalde goremiyorum ya…
Belki de udemy ana sayfasindan gelen bir cookie’nin yanlis alinmasiyla ilgilidir… Belki de aktarabilecegim 3-4 bitlik bir bilgiyle cozmeni saglayabilirim… Ama hangi bitler bilemiyorum :(. Arada site ismini bile paylasamadigin bir hedef olunca bi nevi Byzantine Generals Problem’a donuyor :slight_smile: (Cok alakali degil ama problem guzel kriptografi problemi, okumasi zevkli)

HTTP’yi oldugu gibi sniff etmek kolay olmakla beraber HTTPS oyle degil, TLS tarafindan encrypt ediliyor. Burp* nasil calisiyor bilmiyorum ama genelde ya istekler arada bir MITM proxy’sine yapiliyor (client ↔ proxy ve proxy ↔ hedef arasinda 2 ayri encrypted baglanti oluyor) ya da aradaki TLS implementasyonu encryption icin kullandigi key’i ortaya dokuyor ve bu key’e sahip olan herkesin trafigi gorebilmesini sagliyor. (key veren client ↔ hedef)

TLS client certificate authentication diye bir hadise var, client baglanirken bir sertifika veriyor ve server da bunu authenticate ediyor. Gectigimiz ayda 2 adet baya (~15 sene) senior developer’in bilmedigini gordugum icin bunun kullanilmadigini varsayiyorum.

Varsayimim dogruysa TLS authentication sadece tek yonlu, baglanilan server’in verdigi sertifika client’in root sertifikalariyla dogrulanmaya calisiyor. (verify=False bunu kapatiyor olsa gerek) Server’dan herhangi bir cevabin donmesi bu sistemin de calistigina isaret ediyor ama. (TLS authentication fail ederse alt seviyedeki HTTP baglantisi drop ediliyor, GET request’i yapmak veya onun cevabini almak mumkun olmamali.)

curl’un -v ile gosterdigi istegi requests veya httpclient ile HTTP ile yapip son hamle olarak HTTP’i HTTPS’e cevirmek en mantikli yol gibi duruyor.

Baska nasil yardim edecegimi bilemedim. Ama bildigim kadarini aktarmaya devam edebilirim.

Bu arada openssl s_client da TLS problemlerini debug etmek icin guzel bir tool. (Genel olarak Burp* gibi aletlerden buraya kaymak baya yardimci oluyor: Wireshark, openssl, curl, netcat.)

1 Beğeni

hocam yardım edin :confused: nasıl yapacağım. siz olayı çözdünüz zaten.

bunu python3 ile nasıl yapabilirim?