• 抓包工具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一样,这里不在具体介绍。

  • 相关阅读:
    horizontal line and right way to code it in html, css
    Inline vs. block-level elements: a demonstration
    How wide is the default `<body>` margin?
    Getting wrong Version from Assembly using Reflection
    Where is the default size of a div element defined or calculated?
    Why padding is included in height sometimes?
    动态分析Android App之动态调试
    学习: Linux的 date 命令
    一个有趣的安全分析场景DSL设计
    Beats Elastic中的Auditbeat使用介绍
  • 原文地址:https://www.cnblogs.com/wangguoyuan-09/p/6866541.html
Copyright © 2020-2023  润新知