zoukankan      html  css  js  c++  java
  • 抓包工具Charles的使用

         Fiddler和Charles都是抓包工具,可以抓pc端请求;抓手机上的请求,但需要设置代理;还可以修改请求数据和返回数据。

     1.为什么使用抓包工具

        如移动端是app本身的事还是接口是否成功返回结果,或者app调用接口的路径是否正确,没有接口说明文档等情况下,使用抓包。

        在App开发与后台联调过程中,经常会遇到后台数据返回不全,请求参数需要修改,请求需要重发等情况。

         如果每次都在app端修改,或者自己造数据,会增加工作量,而且每次要重新运行app,浪费时间。

         因此,经过研究,可以使用抓包工具charles,对app进行抓包,请求断点,修改请求与返回的数据,重新发送请求。

        1>网页抓包

        打开Charles,直接访问网页就可以捕捉到请求。

        2>app抓包

    先配置charles证书:

     

    之后会弹出安装证书:

     

    点击安装,一路下一步,直到提示“导入成功”

     

    此时证书还是不被信任的,让不信任变成信任:打开IE浏览器—>工具—>Internet选项—>内容—>证书—>把中级证书颁发机构中的charles证书导出来—>再把导出来的证书导入到受信任的根证书颁发机构中。这样就ok了。

     

     

        再设置代理,端口号,手机和台式机必须在同一wifi

        步骤:1.电脑连上一个wifi1,右键查看wifi1状态,详细信息,找到IP;
                2.进入手机端连的wifi1,输入服务器ip=IP,端口号就是8888;
                3.弹出的对话框,点allow,就可以发请求了,Charles就可以抓到了。

                                    

         另外,如何要抓https的请求,需要安装相应证书,才可以捕获到请求。

         HTTPS的抓包需要在HTTP抓包基础上再进行设置,设置前抓包HTTPS是这样的,如下图:

      

           设置后,如下图:

    以下为在HTTP抓包基础上进行HTTP抓包的进一步设置步骤:

    (1)安装ssl证书到手机设备

    点击 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device

    得到地址:htttp://charlesproxy.com/getssl

     在手机Safari浏览器输入地址 http://charlesproxy.com/getssl,出现证书安装页面,点击安装。如果是Android设备,选择设置->从储存设备安装。

     注:iOS 10.3系统,需要在 设置→通用→关于本机→证书信任设置 里面启用完全信任Charles证书

     (2)Charles设置Proxy

    Proxy -> SSL Proxying Settings...                   

    勾选Enable SSL Proxying,点击Add    在Locations里面添加要使用SSL代理的网站,端口号输入443

    Host设置要抓取的https接口,开发提供,如果没有网站,可填写*,代表所有请求

        (3)进行https抓包

     让手机重新发送https请求,可看到抓包的数据,包括请求数据和服务器返回的数据

         3>数据篡改,并返回结果, charles通过breakpoints修改APP请求

         步骤:1.右键要修改的请求,选择breakpoints,设置断点;

                  2.进入Edit Reponse界面,编辑返回信息,比如参数啊什么的(也可以修改URL请求)

     

                  3.执行Execute,重新发送请求

    下面举个例子:

    charles有一个breakpoints功能,可以截断、修改客户端的request、repsponse请求。如在charles返回response请求时,我们可以修改response,从而修改返回给客户端的内容。
    如这里,我们要修改返回给客户端的http://www.charlesproxy.com/中的Charles is an HTTP proxy,修改为HaloCoolnull
    c1

    具体:
    1. 客户端先访问http://www.charlesproxy.com/看下,可以看到charles抓取了一大堆数据,ctrl+f查找看下我们需要的Charles is an HTTP proxy这段文字,在哪个请求中
    c2
    可以看到是在这个http://www.charlesproxy.com/请求中出现的

    2. 在http://www.charlesproxy.com/这条请求上右键,选择breakpoints。这样,当我们再访问http://www.charlesproxy.com/这个站点时,charles分别会在这个请求的request、response停留,除非我们excute继续
    c3

    3. 再访问http://www.charlesproxy.com/,可以看到IE在等待响应
    这里画箭头的地方可以看到Edit request修改request请求。我们这里只要修改response,因此直接点击excute继续下去
    c4

    4. 修改response
    选择Edit Response中的html,将Charles is an HTTP proxy修改为HaloCoolnull
    c5

    效果:
    可以看到已经修改成功
    c6

    附录:
    附录1:第2步中除了可以在选择的url右键设置breakpoints外,还可以通过proxy | Breakpoints设置更加详细的断点参数,如只breakpoints response请求
    c7

    2.fildder抓包功能原理与Charles一样,这里不在具体介绍。

  • 相关阅读:
    XP下在控制面板和登录界面中隐藏用户方法
    DataGirdView 单元格限制内容输入参考(按键时的判断)
    VB.Net操作Excel
    VS扩展:标签左置 — productivity power tools
    使用VBS自动删除已经从FTP下载下来的文件
    VB.Net下ComboBox操作收集
    修改网卡IP信息的批处理文件
    VB.NET自定义控件 —— 添加控件自定义属性
    使用关键字对数组进行模糊查找;对一维字符串数组进行排序
    mysql多字段模糊查询
  • 原文地址:https://www.cnblogs.com/wangguoyuan-09/p/6866541.html
Copyright © 2011-2022 走看看