Charles 抓包工具安装和采坑记录

网络抓包是解决网络问题的第一步,也是网络分析的基础。网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常。做网络爬虫,第一步就是通过抓包工具对目标网站进行分析,应对各种反爬策略。不会使用抓包工具的网络分析员等于是黑夜里找针,就算找到了,也是凭运气。网络抓包工具比较主流的有 Fiddler,Charles,WireShark,MITMProxy 等等。

Fiddler 主要用于 Windows 平台,配置简单,主要用于 HTTP 和 HTTPS 的分析。如果电脑主要用 Win 系统,只需要简单的分析 HTTP 请求,Fiddler 是首选。不过 Fiddler 在 Win7 平台上根证书安装总出现问题。

Charles 主要用于 Mac,现在也有 windows 版本了,界面雅观漂亮。由于 Fiddler 一直安装有问题,现在我主要用 Charles。Charles 是收费软件。

WireShark 操作起来比较复杂,但是功能强大很多。

MITMProxy 主要用于 linux 平台,图形界面和命令行都有。

本文主要介绍 charles 的安装和遇到的坑。

安装根证书

安装好软件以后,先需要下载根证书。根证书主要用于 HTTPS 请求分析,如果没有这个需求,可以不用安装,不过现在绝大多数的网站都启用了 HTTPS,可以说是必须要装了。

点击 help › ssl proxy › install certificate;

软件端的证书先称为服务端证书吧,对应的是客户端证书。

客户端安装证书

客户端证书主要是浏览器,手机等使用网络的设备,抓包就是抓这些设备的包。

先设置客户端代理,打开手机的 Wifi 设置,在手工代理里输入服务端的 IP 和 代理端口,比如 charles 安装在 IP 为 192.168.1.125 的电脑上,代理端口可以在软件彩带的 Proxy - Prxoy Setting 里设置,默认为 8888。

配置好代理以后,浏览器输入 chls.pro/ssl 下载和安装客户端证书。输入的时候 charles 软件必须打开,部分安卓机器的浏览器无法读取证书内容,会安装不上,可以换用 UC 等其他浏览器尝试。

下载以后进入手机的证书安装去安装证书,每个手机的路径不一样,需要自己找。

在 iPhone 下,需要进入设置 - 通用 - 关于本机 - 证书信任设置 - 启用完全信任。这一步非常重要,如果没有配置,很有可能导致无法抓包。

部分安卓机(小米)在配置完以后可能仍然会出现无法信任根证书的问题,这可能是手机厂商做的限制,现在还没有找到原因。

SSL 设置

charles 有一个白名单的机制,需要将目标网站的 Host 添加到白名单中才能抓取到 HTTPS,否则会报 Unknow Host 错误,如果看到这个错误,去 Proxy - SSL Proxy Setting 配置就可以了。比如配置所有 Host 的 443 端口:*:443

使用

配置完成以后,只需要在手机上使用浏览器或者 APP,浏览的网页对应的 URL 就会显示在 charles 的面板上了。可以用来分析请求,修改请求和响应,重复访问,压力测试等。

总结

使用 charles 最好是使用 iPhone 抓包,配置尤其要注意启用证书完全信任,否则 HTTPS 会抓不到包。安卓机系统小米无法使用,不知道其他人和其他系统如何。

更多原创文章我会第一时间发布在公众号:wang_little_yong ,欢迎关注。

Charles 抓包工具安装和采坑记录的更多相关文章

  1. Charles抓包工具安装与配置

    在实际开发中,我们需要时常抓取线上的请求及数据,甚至是请求的html文档,js,css等静态文件来进行调试.在这里,我使用charles来进行以上操作.但是呢,charles需要进行一系列配置才能达到 ...

  2. Charles抓包工具的使用(一)

    前提:charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在W ...

  3. Charles抓包工具使用

    Charles抓包工具使用和进行接口数据模拟 打开软件,选择Tools  >>  Map Local  >>  勾选enable  >>  add  >> ...

  4. Charles 抓包工具(新猿旺学习总结)

    Charles 抓包工具安装机操作 1.Charles 抓包工具是代理服务器工具,可以拦截数据,进行更改,返回数据,以实现前端后台的请求和响应数据的测试2.Charles 菜单介绍 Charles抓包 ...

  5. Fiddler4入门--手机抓包工具安装和使用说明

    Fiddler4入门--手机抓包工具安装和使用说明.电脑最好是笔记本连同一个wifi,这样能和手机保持统一局域网内. 很多区块链dapp项目方风控做的很差,利用fiddler抓包分析找一些漏洞,然后利 ...

  6. charles抓包的安装,使用说明以及常见问题解决(windows)

    charles抓包的安装,使用说明以及常见问题解决(windows) https://blog.csdn.net/zhangxiang_1102/article/details/77855548

  7. Charles抓包工具的用途及应用

    Charles抓包工具的用途: 排查问题,测试异常情况 注意:Charles不能直接抓https请求的包,需要用https://www.jianshu.com/p/ec0a38d9a8cf这个方法去配 ...

  8. Ubuntu 16.04下安装Charles抓包工具

    Charles是一个跨平台的抓包工具,虽然没有Fiddler做的这么完美,但是也算是另一个选择. 下载: https://www.charlesproxy.com/download/ 注册: http ...

  9. Charles抓包工具永久破解+https抓包需要安装安全证书+防止请求乱码

    1.charles4.5.6版本安装+永久破解 链接:https://pan.baidu.com/s/1Z49AE6TG2IXUY-7qoyGU4g 提取码:3i97 安装好charles之后,把下载 ...

随机推荐

  1. selenium+pyquery爬取淘宝美食100页(无头静默模式)

    import re from selenium import webdriver from selenium.webdriver.common.by import By from selenium.w ...

  2. [Python][小知识][NO.1] Python字符串前 加 u、r、b 的含义

    1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用:后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时出 ...

  3. 使用VSTS的Git进行版本控制(四)——在Visual Studio中管理分支

    使用VSTS的Git进行版本控制(四)--在Visual Studio中管理分支 可以从web版Team Services Git repo 的Branches视图中管理工作.定制视图来跟踪最关注的分 ...

  4. 一套简单的git版本控制代码

    对于博客来说,我还是直接实践比较好,理论过多,不方便以后的查看 废话不多,直接开干 功能需求: .公司需要将jenkins打包出来的压缩包通过git上传到git服务器 .而且通过版本控制上传的文件,即 ...

  5. ASP.Net上传文件

    在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...

  6. c/c++连通图的遍历(深度遍历/广度遍历)

    连通图的遍历(深度遍历/广度遍历) 概念:图中的所有节点都要遍历到,并且只能遍历一次. 深度遍历 广度遍历 深度遍历 概念:从一个给定的顶点开始,找到一条边,沿着这条边一直遍历. 广度遍历 概念:从一 ...

  7. Linux学习历程——Centos 7 ps命令基础

    一.ps命令介绍 ps命令是Process Status的缩写,用于查看系统进程状态,ps命令输出值非常多,通常结合管道符使用. 二.实例 1.我们直接输入ps命令,不加任何参数. 可以看到默认输出4 ...

  8. IEEE754浮点数的表示方法

    https://blog.csdn.net/K346K346/article/details/50487127

  9. #007 C语言大作业学生管理系统第四天

    第四天还差恢复已删除学生功能 对于我来说,已经开始很复杂了. 小细节太重要了,边写边出错 1 #include<stdio.h> #include<stdlib.h> #inc ...

  10. Django-rest-framework 接口实现 版本控制 versioning

    版本控制 rest_framework 提供了 5 种版本控制 以及对应的 写法 url的 更改都可以 在 from rest_framework import versioning 中查看 Acce ...