charles的一些使用教程

准备工作

安装和激活

略。

汉化

略。
目前4.5.6能搜到汉化包,之后的版本应该找不到

证书

Help-》SSL Proxying-》Save Charles Root Certificate,保存为cer格式,注意选择目录的时候需要加文件名,不然不会保存。

假设保存的文件是1.cer。在当前路径下用管理员打开cmd执行certutil -addstore root 1.cer,或者直接拖入这个文件到命令行会填充完整路径。执行结果如图:
在这里插入图片描述
Proxy-》SSL Proxying Settings,在Include一栏添加两个*即可
charles的一些使用教程_第1张图片
这样配置完应该就能解密https数据了

界面及功能

这里以4.5.6英文版为例,其他可能有所出入,但大致相同

File

只是将数据流保存到文件和从文件中导入用的。
charles的一些使用教程_第2张图片
这个自己试试就能知道了,点击New Session之后,数据流会显示到新创建的Session,旧Session只会保留原先的数据

Edit

其他选项没什么用,一般都是用快捷键操作的。就看最后一个Preference…(偏好设置)

这里面我做更改的:

  • User Interface:关闭Enable global hotkeys,关闭之后只有charles获取鼠标焦点时按快捷键,它才会响应。全局快捷键容易和其他软件冲突
  • User Interface:开启Show memory usage,这个实际上意义不大。就会在右下角显示一个总的内存使用量,如图
    在这里插入图片描述
  • Launch:关闭Check for updates,关闭自动更新

View

上面的一些都不重要,主要看最下面四个

  • Highlight Rules:可以添加一些规则,让他们显示不同颜色
    规则有两种,一种是域名匹配规则,还有一种是根据字段匹配(主要是请求头和响应头)
    比如我添加一个响应头包含Set-Cookie的显示为粉红色(Regex是使用正则,Match whole value是匹配整个值,Case Sensitive是忽略大小写)
    charles的一些使用教程_第3张图片
    效果如图,只要响应头包含set-cookie的都会变成粉红色:
    charles的一些使用教程_第4张图片
  • Focused Hosts:不好描述,如图
    只要添加某个域名规则,不符合的都会到Other Hosts
    charles的一些使用教程_第5张图片
    也可以直接在某个链接右键点击Focus,效果是一样的
  • Viewer Mapping:没用过,不知道干啥的
  • Protobuf Settings:没用过,应该是显示protobuf数据用的

Proxy

  • 断点:先点击Enable Breakpoints,右下角状态栏会有断点的标识,接着在Breakpoint Setings添加断点规则
    charles的一些使用教程_第6张图片
    然后我们浏览器访问 http://www.httpbin.org/ip,charles就会断下来,然后你可以随意修改响应头和响应内容,点Execute就会将修改的响应返回给浏览器。
    charles的一些使用教程_第7张图片
  • Recording Settings:只显示需要显示的内容
    charles的一些使用教程_第8张图片
    在Include和Exclude添加一些规则即可。如果Include存在规则,则只显示这些网站。如果Exclude存在规则,这些规则的网站不会显示。
  • 反向代理:Reverse Proxies
    将远程主机端口映射到本地端口,比如通过访问127.0.0.1:80相当于访问www.httpbin.org,如下图添加规则:
    charles的一些使用教程_第9张图片
    这样浏览器访问http://127.0.0.1/ip,就相当于访问http://www.httpbin.org/ip了。这个也会触发之前设置的断点。局域网产生的链接也会被重定向,假设你电脑的局域网ip为192.168.2.2,则其他机器访问http://192.168.2.2/ip也是一样的效果。

可以在上面规则的Local address指定本机地址,如127.0.0.1,192.168.2.2。
charles的一些使用教程_第10张图片
这个反向代理我还没想到有什么用

  • Windows Proxy:是否开启Windows全局代理,这和你在Windows设置里开启代理是一样的
  • Proxy Settings: 默认是开启http proxy,有时候也是需要开启socks代理。比如配合postern抓手机APP的包时。另外,如果只抓APP的包,不想抓Windows的包的话,可以把Windows那一栏中的Enable Windows proxy on launch关掉,这样每次启动就不会自动开启代理了
  • Access Control Settings:用于设置是否允许远程的包,比如手机设置代理之后,charles会弹出一个选择,问你允许还是拒绝。为了避免这种麻烦操作,可能还不一小心点了拒绝,可以直接在这里添加 一个0.0.0.0/0,就不会在出现询问了
  • External Proxy Settings:这个在mitmproxy里被称为上游代理(Upstream Proxy),也就是在当前代理之上再增加一层代理。比如客户端设置charles的代理,而charles设置访问谷歌的代理,这样就能抓到客户端访问谷歌的包了。
    charles的一些使用教程_第11张图片
    第一个是http代理,第三个是socks代理。第二个试了下没用,不知道干啥的。

下面的Bypas external proxies for …是指不通过external代理的域名,不填就是所有数据都经过external代理。设置了之后访问网站变的有点慢。而且开始设置的时候还一直访问不了谷歌,访问国内网站倒是显示ip是代理的ip,不过隔了一会就可以访问谷歌了

  • Web Interface Settings: 打开后可以浏览器访问 http://control.charles/ 来控制charles的一些行为。如果你汉化了,这个功能会用不了。
    charles的一些使用教程_第12张图片
    只有启用和禁用的选项,没有添加规则和删除规则的功能,挺鸡肋的。

Tools

charles的大部分核心功能都在这个栏目下了

  • No Caching:禁用缓存,具体操作是从请求中删除If-Modified-Since和If-None-Match头,添加Pragma:no-cache和Cache-control:no-cache。从响应中删除Expires,Last-Modified和ETag标头,添加Expires:0和Cache-Control: no-cache。
  • Block Cookies:阻止cookie,具体操作是删除请求头的Cookie字段,删除响应头的Set-Cookie字段。因为微博没有cookie会重定向,当你启用了这个再去访问微博的话,会一直重定向然后报500失败
  • Map Remote Settings:将某个链接映射到另一个链接,比如添加如下图规则
    charles的一些使用教程_第13张图片
    这样你使用百度搜索就会返回http://www.httpbin.org/get的内容
    charles的一些使用教程_第14张图片
  • Map Local Settings:同上,不过是映射到本地文件
    charles的一些使用教程_第15张图片
    如果同时开启Map Remote和Map Local并且有同一条规则,我测试是匹配的Map Remote,跳过了Map Local
  • Rewrite Settings:这个就比较强大了。用来自动修改请求和响应,可根据正则修改请求响应里的任何内容。比如之前的禁用缓存和cookie无非就是修改请求头,这里就可以自定义规则来做到
    例子1:
    charles的一些使用教程_第16张图片
    charles的一些使用教程_第17张图片
    这样访问http://www.httpbin.org/ip,就会显示ip是6.6.6.6了
    例子2:
    charles的一些使用教程_第18张图片
    charles的一些使用教程_第19张图片
    这个意思是修改请求参数,键不变,值变成777777。使用正则的时候,如果替换的值需要使用正则匹配到的值。需要在正则表达式中用()括起来要使用的值,可以有多个括号。而下面的替换的值,只需要使用$加数字就可以使用上面()匹配到的值。第一个括号为$1,依次类推。

这个规则的效果:
charles的一些使用教程_第20张图片

  • Block List:阻止某些链接的访问,可以中断连接或者返回403
  • Allow List:允许某些链接的访问,如果设置,不在列表内的请求都会被拒绝
  • DNS Spoofing Settings:大概就是自定义host,和修改hosts文件一样的效果
  • Mirror Settings:保存响应到本地目录,可以自己试试
  • Auto Save Settings:每隔几分钟自动保存拦截到的包,包含所有内容(请求、响应)。保存类型有多种格式:charles Session File、HTTP Trace File、JSON Session File 等
  • Client Process:这个是用来显示请求是来自哪个进程的,不过在Windows没有用。在Linux的效果如下图。图中注释翻译之前是Notes
    charles的一些使用教程_第21张图片
  • Compose:修改某个请求重发,一般不会在这个栏目上使用。而是直接点击某个请求右键选择compose
  • Compose New:应该没啥用
  • Repeat:重发某个请求,也是在右键菜单上有的
  • Advanced Repeat:多次重发
  • validate:不知道干啥用的
  • Profiles:你可以保存多套Tools的设置,在它们中切换

右键

右键的功能其实就是栏目的快捷键,对应上面的栏目即可

你可能感兴趣的:(小白进阶之路,charles,抓包)