查尔斯是一种网络包装工具。我们可以将其用于应用程序的应用分析,以获取应用程序运行期间发生的所有网络请求和响应内容。结果是一致的。
与提琴手相比,查尔斯具有更强大的功能和更好的跨平台支持。因此,我们选择查尔斯作为分析移动应用程序数据包的主要移动包装工具,以帮助完成应用程序数据捕获工作。
在本节中,我们以Jingdong应用程序为例,在通过Charles运行的应用程序操作期间获取网络数据包,然后检查特定的请求和响应内容以了解Charles的使用情况。
请确保查尔斯已经正确安装并打开了代理服务。手机和查尔斯在同一局域网下。查尔斯特工和查尔斯卡证书已设立。
首先,查尔斯在自己的PC上运行。当查尔斯运行时,它将在PC的端口8888上打开代理服务。该服务实际上是HTTP/HTTPS的代理。
确保手机和PC在同一局域网中,我们可以使用手机模拟器通过虚拟网络连接,或者我们可以使用手机和PC通过无线网络连接。
将移动电话代理的代理地址设置为查尔斯可以捕获请求和响应。在同一时间,查尔斯还有权修改请求和响应。
Charles在初始状态中的操作接口如下图所示。
查尔斯将始终监视PC和手机中发生的网络数据包。捕获的数据包将显示在左侧。随着时间的流逝,捕获越来越多的数据包,左列表的内容将越来越多。
可以看出,查尔斯在图的左侧捕获的请求站点可以显示。我们单击任何条目以查看相应的请求详细信息,包括请求,响应和其他内容。
接下来,清除查尔斯的捕获结果,然后单击左侧的扫帚按钮以清空所有捕获的请求。该应用程序,如下图所示。
此时,当您打开手机JD时,请小心地将Charles的代理设置并配置CA证书,否则它将不起作用。
打开任何产品,例如iPhone,然后打开其产品评论页面,如下所示。
为了连续上拉和加载注释,您可以看到查尔斯在此过程中捕获了Jingdong应用程序中的所有网络请求,如下图所示。
api.m.jd.com链接将出现在左列表中,并且不断闪烁,查尔斯(Charles)捕获了当前应用程序获得的注释数据的请求。我们单击扩展并继续进行刷新评论。随着拉力的开发,这里将有一个网络请求记录。目前,确定新的数据包请求是获得注释的请求。
为了验证其正确性,我们单击以查看目的的细节之一。将其切换到“目录”选项卡。目前,我们找到了一些JSON数据,检查结果,结果与我们在应用程序中看到的评论的内容一致,如下图所示。
目前,此请求的相应接口是获得产品评论的接口。这样,我们成功捕获了在刷新过程中发生的请求和响应内容。
现在分析此请求和响应的详细信息。首先,您可以返回概述选项卡,显示请求接口URL,然后响应状态状态代码,请求方法等,如下图所示。
该结果类似于在浏览器开发人员工具的Web侧捕获的结果表格。
接下来,单击“目录”选项卡以查看请求和响应的详细信息。
上部显示了请求的信息,下半部分显示了响应的信息。例如,对于reqeust,我们切换到“标头”选项卡以查看请求的标头信息。为了进行响应,我们可以看到响应的身体信息,并且内容已格式化,如下图所示。
由于此请求是发布请求,因此我们还需要关心帖子的帖子信息,请切换到“表单”选项卡进行查看,如下图所示。
这样,我们成功捕获了应用程序中注释界面的请求和响应,您可以查看响应返回的JSON数据。
至于其他应用程序,我们还可以以这种方式进行分析。如果我们可以直接分析请求的URL和参数的规则,直接使用该程序模拟以批量捕获它。
查尔斯还具有功能强大的功能,可以通过捕获的请求进行修改并发送修改后的请求。单击上面的修改按钮,左侧的列表将具有从编辑图标开始的链接。这意味着与此链接相对应的请求是由我们修改的,如下图所示。
我们可以删除表单中的字段,例如在此处删除合作伙伴字段,然后单击“删除”。这次,我们修改了原始请求携带的表单数据,然后单击下面的执行按钮以执行修改后的请求,如下图所示。
可以发现,接口请求结果再次出现在左列表上,并且内容保持不变,如下图所示。
以表单形式删除合作伙伴字段没有任何影响,因此此字段无关。
有了此功能,我们可以轻松地使用Charles进行调试。您可以通过修改参数,接口等修改不同请求的响应状态,并且可以知道哪些参数是必要的,哪些参数是不必要的,哪些参数是分开的。LAW,最终获得了程序的最简单接口和参数表单。模拟电话。
以上内容是通过Charles软件包分析应用程序请求的过程。通过查尔斯,我们成功捕获了流过该应用程序的网络数据包,捕获了原始数据,我们还可以修改原始请求并重新组织修改的请求,以了解接口测试。
了解请求和响应的具体信息,如果我们可以分析请求的URL和参数规则,则可以使用该程序分批模拟该程序。当然,这是最好的。
但是随着技术的开发,应用程序界面通常具有键。我们无法直接找到这些规则。我该怎么办?接下来,我们将了解使用Charles和Mitmdump直接连接Python脚本的过程,以实时处理刮擦响应。
微信公共帐户:攻击编码员