Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

时间:2021-04-25 09:13:25

一: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协议请求(抓包实战)

      抓包前注意事项:

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

   Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  抓包步骤:

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

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

  方式1:

              Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  方式2:

    Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则

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

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

  Charles PC端和手机端抓取HTTP和HTTPS协议请求、HTTPS通用抓包规则