一、前言

1.1 常用代理工具

代理工具:

  • charles
  • burpsuite
  • fiddler
  • mitmproxy

高性能代理服务器:

  • squid
  • dante

反向代理:nginx

流量转发与复制:

  • em-proxy
  • gor
  • iptable
  • nginx

socks5代理:ssh -d 参数

1.2 代理的工作机制

1.3 优秀代理工具必备特性

  • 代理功能:http/https、socks5
  • 请求模拟工具:拼装请求、重放请求、重复请求
  • 网络环境模拟:限速、超时,返回异常
  • mock:请请修改、响应修改
  • fake:用测试环境替代真实环境

1.4 推荐工具

  • charles:开发/测试工程师必备
  • mitmproxy:测试开发工程师必备
  • zap:测试工程师安全测试工具
  • burpsuite:黑客必备渗透测试工具
  • fiddler:跨平台支持不好,不推荐
  • postman:代理功能太弱,不推荐

二、Charles介绍

Charles 是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request,response和HTTP headers (包含cookies与caching信息)。

Charles主要功能:

  1. 支持SSL代理。可以截取分析SSL的请求。

  2. 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  3. 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

  4. 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

  5. 支持重发网络请求,方便后端调试。

  6. 支持修改网络请求参数。

  7. 支持网络请求的截获并动态修改。

  8. 检查HTML,CSS和RSS内容是否符合W3C标准。

三、Charles下载安装

3.1 Charles下载安装

Charles的安装非常简单,直接通过charles官网安装最新版即可。

Charles 是收费软件,可以免费试用 30 天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时。

安装完成!

3.2 Charles破解

在线破解:https://www.zzzmode/mytools/charles/

注册名称随意填写,点击将生成一个激活码,使用输入的注册名称以及激活码激活即可。

四、Web抓包配置

4.1 开启代理开关

默认情况下,启动Charles后,就能自动抓Chrome浏览器、Firefox浏览器的包,如果不能抓,请检查Charles中是否勾选了代理开关“Windows Proxy/Mac Proxy”

4.2 配置代理


如果需要抓取https的包,还需要配置SSL代理。

打开浏览器的代理配置,端口指向Charles配置的8888:
推荐下载谷歌插件Proxy SwitchyOmega管理代理配置,具体可参考文章:http://c.biancheng/python_spider/SwitchyOmega.html

打开Charles的录制按钮,刷新网页,这个时候就能进行抓包了。

但是这里有一个问题,访问https的网站会如下图所示提示。这是因为我们需要安装https的证书。

4.3 安装信任证书

选择Help - SSL Proxying - Install Charles Root Certificate,一步步按照如下图示安装信任证书。

点击“安装证书”

选择“本地计算机”,点击“下一页”

选择“将所有的证书都放入下列存储”,点击“浏览”,选择“受信任的根证书颁发机构”

点击“下一页”

点击“完成”

点击“确定” “确定”

另外也可以在证书路径处查看证书,如下图所示证书是没有问题的。

注意:如果你在进行一系列证书安装过程中,浏览器是处于开启状态。证书安装完成后需要重启浏览器,证书才会生效!

五、其他问题

  1. charles提示“SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations”
    出现这种情况,charles解析不出path,我们就没法建立映射。

具体的解决方案为在proxy中的SSL Proxying setting中钩上Enable SSL Proxying,并且将要解析的host加上。如下图:

更多推荐

测试工程师必备的工具-Charles