charles 抓包https、Wireshark抓包WebSo

2019-09-30  本文已影响0人  张_何

charles 抓不到Https包的特征

电脑上安装根证书

安装手机上的证书

Snip20190930_7.png
image.png

配置charles

原理简析

如果是HTTP请求,因为数据本身并没加密所以请求内容和返回结果是直接展现出来的。
但HTTPS是对数据进行了加密处理的,如果不做任何应对是无法获取其中内容。所以Charles做的就是对客户端把自己伪装成服务器,对服务器把自己伪装成客户端:

Charles拦截客户端的请求,伪装成客户端向服务器进行请求
服务器向“客户端”(实际上是Charles)返回服务器的CA证书
Charles拦截服务器的响应,获取服务器证书公钥,然后自己制作一张证书,将服务器证书替换后发送给客户端。(这一步,Charles拿到了服务器证书的公钥)
客户端接收到“服务器”(实际上是Charles)的证书后,生成一个对称密钥,用Charles的公钥加密,发送给“服务器”(Charles)
Charles拦截客户端的响应,用自己的私钥解密对称密钥,然后用服务器证书公钥加密,发送给服务器。(这一步,Charles拿到了对称密钥)
服务器用自己的私钥解密对称密钥,向“客户端”(Charles)发送响应
Charles拦截服务器的响应,替换成自己的证书后发送给客户端
当然,如果用户不选择信任安装Charles的CA证书,Charles也无法获取请求内容。还有一种,如果客户端内置了本身的CA证书,这时如果Charles把自己的证书发送给客户端,客户端会发现与程序内的证书不一致,不予通过,此时Charles也是无法获取信息的。

后续

20200909今天在使用charle抓包时突然不行了,不论是http还是https都报红,把电脑上的根证书删了重装也不行,把手机上的证书删了之后,重装手机证书时连chls.pro/ssl都打不开,charle还是报红,然后发现charle报错的原因竟然是白名单white list,才突然想起之前设置过黑名单和白名单,把黑名单和白名单都取消后,再去chls.pro/ssl安装证书,果然可以了,安装好证书后抓包成功了

参考 Charles抓包https


Wireshark抓包WebSocket

上一篇 下一篇

猜你喜欢

热点阅读