我經常發現自己在除錯網站或分析幕后發生的事情。Fiddler 在這方面為我提供了非常好的服務,而且我經常讓它運行。
我剛剛注意到一個非常奇怪的問題,當我在 Fiddler 運行時訪問https://degoo.com/me/login時,我收到了 429 回應。如果我將其切換為不捕獲流量,則該站點運行良好。我重新打開它的那一刻,又是 429。我嘗試自己制定請求,看看我是否可以重現 200,但無濟于事。
我對此非常感興趣,因為該站點似乎正在檢測 Fiddler 正在運行,但我無法完全理解它。我想網站可能會使用 JS 和 WebSocket 作業人員進行檢查來檢測這些東西,但是初始請求如何通過讓 Fiddler 攔截流量而立即失敗并顯示 429?
編輯:閱讀https://stackoverflow.com/a/62194160/3511297表明 Fiddler 提供的 TLS 握手證書可能是這里的關鍵。
編輯 #2:閱讀它,似乎 Fiddler 無法生成 TLS 1.3 證書,所以這可能是什么,但是根據 ssllabs.com/ssltest ,該站點支持 TLS 1.0、TLS 1.1 和 TLS 1.3
uj5u.com熱心網友回復:
沒有 TLS 1.3 證書。SSL/TLS 中的證書獨立于所使用的 TLS 版本。只有使用的密鑰對演算法(例如 RSA、ECC 等)才能限制可以使用的 TLS 密碼。但這只會影響客戶端和 Fiddler 之間的連接,而不影響到服務器的連接(拒絕訪問)。
關于支持的 TLS 版本 Fiddler 是一個 Windows/.Net 應用程式,因此它繼承了 Windows 的 TLS 功能。根據 SO 的一些帖子,您可能必須手動啟用 TLS 1.3。另外不要忘記在 Fiddler HTTPS 選項中啟用 tls1.3。
但是,如果服務器端確實使用了 SSL/TLS 指紋識別,我懷疑這是否足以將指紋更改為可接受的指紋。通常,完整的密碼套件串列以及應用層協議協商 (ALPN) 等可選擴展也會進入指紋,我認為您無法在不更改 Fiddler 代碼的情況下在 Fiddler 中啟用此類擴展。
如果您想檢查 Fiddler 和您的網路瀏覽器的 TLS 指紋,您可以使用 Wireshark。捕獲 TLS 握手流量,然后應用運行時過濾器ssl.handshake.type == 1(僅顯示 CLIENT_HELLO)。展開條目Transport Layer Security-> TLSv1? Record Layer...->Handshake Protocol: Client Hello并向下滾動。
您會發現兩行以JA3(這是常見的 TLS 指紋演算法的名稱)開頭,如下所示:
[JA3 Fullstring: 771,4865-4867-4866-49195-49199-52393-52392-49196-49200-49162-49161-49171-49172-156-157-47-53,0-23-65281-10-11-16-5-34-51-43-13-45-28-41,29-23-24-25-256-257,0]
[JA3: c279b0189edb9269da7bc43dea5e0c36]
使用Fullstring您可以比較不同客戶端的 CLIENT_HELLO 訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/378739.html
