This is not about HTTPS Connects and Decrypting, i have some programs which itself doesn't support proxy, they still talk to the server with standard HTTP protocol.
So i setup some system wide proxy like ProxyCap, to force the program to proxy through Fiddler, the proxying works fine, but the HTTP data won't be shown in Fiddler,
it will be shown as:
200 HTTP Tunnel To
www.somesite.com:80Statistics tab says:
This is a Tunnel. Status: CLOSED, Raw Bytes Out: XXX; In: XXX
The selected session is a HTTP CONNECT Tunnel. This tunnel enables a client to send raw traffic (e.g. HTTPS-encrypted streams or WebSocket messages) through a HTTP Proxy Server (like Fiddler).
This tunnel was exempt from HTTPS-decryption.
And Inspector tab says:
A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below.
Version: 0.0 (Unknown)
Random: null
SessionID: null
Extensions:
none
Ciphers:
null
Compression:
(not specified)
The response raw says:
HTTP/1.0 200 Connection Established
FiddlerGateway: Direct
StartTime: 22:54:56.733
Connection: close
EndTime: 22:54:57.102
ClientToServerBytes: XXX
ServerToClientBytes: XXX
It seems fiddler will try to think all CONNECT requests as HTTPS tunnel, and if there is no SSL handshake found in the tunnel, then it won't capture the data and
will just passthrough them. i can use wireshark to see the actual request to Fiddler is something like: (e.g: client requesting
http://www.google.com/)
CONNECT
www.google.com:80 HTTP/1.0
Host:
www.google.com:80GET / HTTP/1.1
Host:
www.google.comConnection: close
As you can see, the data is still standard HTTP, and you can check this from the first few bytes of request/response to see if it is HTTP request in tunnel and then
try to decode them.
Is it possible to use Fildder to capture such HTTP CONNECT requests? it will be very helpful if such feature is supported, since there are quite some programs don't
have support proxy itself, or some of them can configure proxy but are even using CONNECT instead of GET/POST for all HTTP requests.