zoukankan      html  css  js  c++  java
  • Charles系列二:Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

    一:HTTP和HTTPS的区别

      HTTP是超文本传输协议,被用在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此HTTP协议不适合传输一些敏感信息,如:信用卡号,密码等支付信息。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL用于对HTTP协议传输的数据进行加密,从而诞生了HTTPS。

      两者主要区别:

        1.https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。个人网站、小网站没有必要用。

        2.http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL加密传输协议(https也不是绝对的安全,在黑客攻击,拒绝服务攻击,服务器劫持等方面几乎不起作用,最关键的SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样即可)。

        3.http和https使用的是完全不同的连接方式,用的端口也不一样,http是80,https是443。

        4.https的连接很简单,是无状态的,https协议是SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议。

        5.https连接缓存不如http高效,会增加数据开销和功耗,甚至已有的安全措施也因此会受到影响。

        6.https协议握手阶段比较费时。

    二:Charles PC端截取HTTP和HTTPS协议请求(抓包实战)

          抓包前注意事项:

      

      

       

       抓包步骤:

      1.首选保证Charles开启,其它你想抓包的工具也开启,之后找到Charles的Proxy选项中的Start Recoding选项和Windows Proxy(mac电脑的是macOS Proxy),在进行测试的过程中发现不管我的win电脑勾选不勾选Windows Proxy,都可以抓取电脑上的包,经过跟几个搞测试的朋友交流,他们的都是正常的,所以少数服从多数,按不勾选Windows Proxy只能抓取手机上app的包,电脑上的包抓取不到。经过测试苹果电脑不勾选macOS Proxy的情况下是不能抓取电脑上的包的,勾选后就可以了。

      

      2.用浏览器打开你想要截取的网址

      

      3.对于HTTPS协议出现的中文乱码,Charles在电脑端安装charles ca证书,之后修改菜单项Proxy中Proxy Settings 和SSL Proxying Settings...选项,否则即使安装了charles ca证书依然不能正常显示

      下图为win电脑安装charles ca证书

      

      下图为苹果电脑安装charles ca证书

      

      

      

    三:Charles 手机端(安卓,苹果机没有,以后补上)截取HTTP和HTTPS协议请求(包含手机端小程序抓包)

      1.Charles想要抓取手机上的包,就要进行一些配置,首先查看Charles所在电脑的ip,两种方式可以

      方式1:

                  

      方式2:

        

      2.查看Charles的端口号,找到Proxy选项,选中Proxy Settings可以看到默认是:8888

      

      

      3.手机打开同一局域网下最好同网段(有些是同一局域网但是不在同一个网段,比如我的win是台式的,插的网线,手机是连的公司一个路由器的wifi,结果就连不上抓不了包,无奈我就用了苹果电脑跟手机连同一个wifi,一下就连上去了),设置手动代理,输入电脑的ip和Charles的端口号。结束后不要忘记更改手机代理,否则手机无法正常上网。

      

      

           

      4.安卓(vivoX6)手机端安装charles ca证书(前提条件是电脑端也要安装charles ca证书),首选根据charles中help选项中的提示,用手机浏览器(本人手机上选用的是uc浏览器),打开chls.pro/ssl (手机设置了charles代理,否则打开的网址提示错误)。下载后是pem文件,不能被我的手机识别安装,所以我就更改了后缀名.crt文件,安装后,由于不被信任,抓取的https协议的依然提示unknown,经过上网查找,问题没有解决。同事的小米华为手机都ok。

      

    四:Charles HTTPS协议通用抓包配置规则

      在上面我们讲到要想抓取某个https协议的内容,在SSL Proxy Settings选项里面添加某个https协议的网址和端口号即可,但是这样可能会有点麻烦,要想截取所有的https协议怎么办?看下图(手机端电脑端通用)

      

  • 相关阅读:
    layui弹出层使用方法之最详解
    rem实现简单的响应式布局
    layui数据库查询及数据处理
    header头设置解决 “已拦截跨源请求:同源策略禁止读取位于 http://back/test/test 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。”
    mysql多表联查
    centos 7 安装独立环境 tcp6占用80端口解决方法
    JS for_of遍历数组
    通过几张图搞定json数据处理
    MQTT Broker mosquitto
    前言
  • 原文地址:https://www.cnblogs.com/ttxcs/p/11280645.html
Copyright © 2011-2022 走看看