美文网首页
抓包工具Wireshark和Charles的简单使用

抓包工具Wireshark和Charles的简单使用

作者: 10xjzheng | 来源:发表于2018-09-25 16:34 被阅读37次

    1. Wireshark

    1. 打开捕获选项

    image.png

    2. 设置过滤器

    image.png

    3. 点击上一步的开始,然后访问该域名的url地址,可以看到tcp三次握手了ssl/tls握手

    image.png

    4. 在捕获结果中过滤(填好过滤条件,按enter)

    image.png

    2. Charles

    激活:
    Registered Name: https://zhile.io
    License Key: 48891cf209c6d32bf4
    现在基本都是https了,http没什么好说的。

    1. 安装证书

    image.png

    2. 添加到信任

    image.png

    3. 添加要抓包的域名的ssl代理设置

    image.png
    image.png

    4. 访问要抓包的url

    需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,而 Charles 是通过将自己设置成代理服务器来完成封包截取的,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果你需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。


    image.png
    image.png
    5. 原理
    5.1 https 简单原理

    首先必须知道https的原理,https的简单过程是:
    server将自己的域名、公钥等信息给到ca机构生成证书,ca机构会用所有的信息按一定算法生成一个hash,然后按机构自己的私钥加密,然后把证书给服务器,客户端来访问的时候,服务器会让客户端下载一个证书,下载证书后,首先要验证签名是否正确,浏览器(系统)有维护一套ca机构的公钥,首先先根据颁发证书的机构找到公钥,然后解密到哈希,然后根据证书的约定的算法计算hash是否一致,一致则证明证书是正确的,不是中间人骗子,ssl握手成功之后双方会根据生产的pre-master key(这个会用证书里面的服务器公钥加密,传给服务器)和约定的算法进行计算,算出session key,即加密数据的对称密钥。以后数据传输都用此密钥。
    具体可以看我这篇博客细说HTTPS

    5.2 Charles如何做到?

    本来https已经是基本无解了,用ca的私钥加密的hash,完全没有办法假冒证书的。
    Charles的思路是对用户的浏览器冒充服务器,对服务器冒充客户端,这样做有个前提,就是你必须先安装并信任它的根证书。当你信任它的根证书之后,它就可以对你要抓包的域名生成一个伪造的证书,这个证书的数字签名是用它的私钥加密的,这样一来,浏览器和服务器建立连接是,其实是先和Charles建立连接,完成一个https的链接过程。而Charles会对服务器伪装是客户端,将你的请求数据转发给服务器,因此,你请求数据是用你和Charles的约定的密钥加密的,所以他可以解密,而响应数据是Charles和服务器约定的密钥加密的,他也可以解密,因此,请求和响应数据就都能看到了。

    6. iPhone抓包

    可以参考这篇文章十分钟学会Charles抓包(iOS的http/https请求)
    补充一点,iPhone安装完证书后还要添加信任:

    image.png

    相关文章

      网友评论

          本文标题:抓包工具Wireshark和Charles的简单使用

          本文链接:https://www.haomeiwen.com/subject/rirloftx.html