基于charles抓取https请求使用过程解析

当我们需要分析HTTPS请求时,通常情况下,我们通过抓包工具来进行网络请求的截取和分析。而charles正是一种常用的网络抓包工具,大家可以通过设置Charles代理实现抓取Android、iOS等移动端应用请求。下面将详细讲解“基于charles抓取https请求使用过程解析”的完整攻略。

1. 安装Charles及准备环境

首先,我们需要在电脑上安装Charles,然后打开Charles,确保Charles能够接受来自其他设备的请求。具体操作如下:

  1. 打开Charles,选择菜单栏中的“Proxy” > “External Proxy Settings…”,在弹出的对话框中设置本地网络代理,并勾选“Use HTTP Proxy”选项。

  2. 在“HTTP Proxy”和“SSL Proxy”中都输入IP地址“127.0.0.1”,端口号选择“8888”。

  3. 确认设置后,点击“OK”退出对话框。

  4. 点击Charles左上角的“Help”按钮,选择“SSL Proxying” > “Install Charles Root Certificate…”,进行证书安装。

2. 配置设备代理

在上述步骤完成后,我们需要在设备上配置代理指向Charles。

Android设备

  1. 进入“设置” > “WLAN”,选择已连接的WiFi,并进入网络高级设置。

  2. 打开“代理”选项,选择“手动”,在“代理服务器主机名”中输入电脑IP地址(请在电脑打开命令提示符输入“ipconfig”查询),端口号输入“8888”。

  3. 配置完成后,确保电脑和设备连接通畅,重新打开APP,开始抓包。

iOS设备

  1. 进入“设置” > “Wi-Fi”,连接上Wi-Fi网络,并点击右侧“i”图标。

  2. 打开“HTTP代理”选项,选择“手动”,在“服务器”中输入电脑IP地址,端口号输入“8888”。

  3. 配置完成后,确保电脑和设备连接通畅,重新打开APP,开始抓包。

3. 抓包分析

待代理配置完成后,我们可以开始抓包分析了。

HTTPS抓包

  1. 在需要抓取的APP上进行需要请求的操作,Charlse默认可以捕获Http请求,需要抓取Https请求需要去设置中进行单独设置

  2. 点击“Proxy”菜单 > “SSL Proxying Settings”,在“SSL Proxying”选项中添加需要抓取的域名或IP,如“https://api.example.com”。

  3. 打开“Enable SSL Proxying”选项,从此所有https请求均会被Charles接受。

抓包分析

通过抓取到的请求,我们可以进行分析和处理,可以根据抓取到请求的具体情况,对应接口进行基本数据流程分析或加解密算法的研究,比如盗刷,劫持,伪造等方式

4. 示例说明

这里给出两个示例说明:

示例一:拦截POST请求中的用户名和密码

假设有一个登录界面,我们需要拦截该界面中的POST请求,并获取登录用户名和密码。

  1. 单击Charles的“Start”按钮,等待应用程序完成启动。

  2. 在现有的会话中打开登录页面,并尝试登录。

  3. 当登录页面发送POST请求时,Charles会捕获该请求。单击该请求以查看请求的内容。

  4. 确认POST请求未加密。如果加密,则需要在Charles上配置SSL代理。

  5. 可以看到POST请求中包含用户名和密码,以及其他扩展属性。

示例二:拦截加密的HTTPS请求

假设有一个经过加密的https请求,我们需要抓取该请求进行分析。

  1. 在Charles的“Proxy”菜单中,选择“SSL Proxying Settings”选项。

  2. 在“SSL Proxying”选项卡中单击“Add”按钮,添加需要解密的域名或IP地址。

  3. 确认“Enable SSL Proxying”复选框已选中。

  4. 启用Charles Root Certificate,在浏览器中打开特定的URL来下载证书。

  5. 打开需要分析的APP并重现加密请求。

  6. 在Charles的会话窗格中,单击请求并查看请求内容。看到使用布局为XML、JSON等格式的加密数据,可以使用Charles提供的解码器对数据进行解码。

以上就是基于charles抓取https请求使用过程解析的完整攻略,可根据实际情况操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于charles抓取https请求使用过程解析 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Python学习笔记之线程

    Python学习笔记之线程 线程的定义 线程是一种轻量级的执行单元,它可以在同一进程中并发执行多个任务。Python中,线程是通过threading模块来实现的。 以下是一个示例代码: import threading def worker(): print(‘Worker thread started’) # do some work here print…

    python 2023年5月13日
    00
  • Python利用pynimate实现制作动态排序图

    Python利用pynimate实现制作动态排序图 什么是pynimate pynimate是一个Python模块,用于可视化数据的动画制作。它基于Matplotlib构建,可以使用Matplotlib已有的绘图工具,创建动态、交互的图表。 pynimate构建于Matplotlib之上,因此,它的使用方法与Matplotlib非常相似,只需要稍作调整就可以…

    python 2023年6月6日
    00
  • Python获取网页数据详解流程

    当然,我很乐意为您提供“Python获取网页数据详解流程”的完整攻略。以下是详细的步骤和示例: Python网页数据的流程 Python获取网数据的流程通常包括以下几个步: 导入所需的库 发送请求 获取响应内容 4.析响应内容 提取所需数据 1. 导入所需的库 在Python中,我们通常使用requests库发送HTTP请求,使用BeautifulSoup库…

    python 2023年5月13日
    00
  • Python中的字符串切片(截取字符串)的详解

    关于Python中的字符串切片,以下是详细攻略: 什么是字符串切片? 字符串切片,也称为截取字符串,是指从字符串中提取出一部分字符串的操作。Python中的字符串切片采用类似于列表的访问方式,使用方括号“[ ]”并提供起始索引和结束索引,两者用冒号“:”隔开表示。 字符串切片步骤 使用方括号“[ ]”指定切片的范围。 以冒号“:”为分隔符,左边表示起始索引,…

    python 2023年5月14日
    00
  • 浅谈python抛出异常、自定义异常, 传递异常

    浅谈Python抛出异常、自定义异常和传递异常 异常处理是编程中必不可少的部分,能够提高程序的健壮性和可读性。Python中的异常处理机制提供了非常方便和灵活的方法。 Python中抛出异常 抛出异常可以在代码运行过程中发现错误,主动终止程序的运行。 Python中内置了许多异常类型,比如 IndexError、KeyError 等等,还有 Exceptio…

    python 2023年5月13日
    00
  • Python文件读写open函数详解

    当需要在Python中读取或写入文件时,open()函数是Python中最常用的函数之一。本文将详细介绍Python中的文件读写open函数的用法及其常见参数。 打开文件 使用Python打开文件通常需要三个参数:文件名、以哪种模式打开文件,以及编码方式(可选)。下面是最基本的使用方法: with open(‘file.txt’, ‘r’, encoding…

    python 2023年6月5日
    00
  • 解决python3 json数据包含中文的读写问题

    下面是详细攻略: 1. 问题描述 在Python3中,在处理json数据时,如果数据中包含中文字符,就会出现读写问题。具体表现为:在写入包含中文字符的json数据时,会出现编码错误;在读取包含中文字符的json数据时,会出现解码错误。 2. 解决方案 2.1 写入json数据 当数据中包含中文字符时,需要在写入前将其转换为Unicode编码,再写入到json…

    python 2023年5月20日
    00
  • Python列表去重复项的N种方法(实例代码)

    Python列表去重复项的N种方法(实例代码)攻略 在Python中,有多种方法可以去除列表中的重复项。本文将详细讲解Python列表去重复项的N种方法,包括使用set()函数、使用列表推导式、使用循环和使用字典。下面将分别介绍这些方法的具体实现。 使用set()函数 在Python中,可以使用set()函数将列表转换为集合,从而去除其中的重复项。下面是一个…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部