【软件测试】抓包工具charles

简介

Charles是一款抓包修改工具,抓取http/https协议的包

tips:当手机有安装vpn,记得将vpn链接去掉,否则会抓不到包(网络会出现直接走vpn线路)

一、手机如何代理环境

查看本地IP地址

a.打开charles,点击 help—>ssl proxying—>Install charles ……—>获取ip地址,如图示的IP地址为192.168.1.7



b.在 Charles 的菜单栏上选择 “Proxy”->”Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

MAC抓包https

在菜单栏选择 『Help -> SSL Proxying -> Install Charles Root Certificate』,会自动导入 Charles Proxy CA 证书并打开 Keychain Access,


双击新导入的证书弹出证书信息页面,将 Secure Sockets Layer(SSL) 设置为Always Trust,关闭页面后弹出密码提示,输入密码更新系统信任设置。

如果还是无法抓包,关闭浏览器重启后看下。

1. iPhone http代理设置

设置 -> 无线局域网 -> 当前连接的wifi 最右侧 详细信息按钮 -> 最下面的http代理填入IP,端口

注意:ios 10.3及以上系统,需要在手机:设置-》通用-》关于本机-》证书信任设置里面启用完全信用Charles证书


2. Android http代理设置

取消当前wifi网络,重新连接,高级选项,http代理,手动,填入IP,端口

android7以上使⽤charles抓取https 会出现unknown,即使安装了证书

安装证书:在⼿机浏览器打开 chls.pro/ssl 地址安装证书

解决⽅案:

安装charles证书

安装VirtualXposed

将需要调试的app安装在VirtualXposed上

charles Proxy>SSL Proxying Setting 添加需要查看的请求host

解决⽅案⼆(推荐)

⼿机上安装charles证书

项⽬中增加android:networkSecurityConfig配置,允许android7.0以上设备https抓包

Charles SSL Proxying Settings中配置host,如果需要针对全部host⽣效,host配置为*即可

配置代码如下

<application android:networkSecurityConfig="@xml/network_security_config">

<?xml version="1.0" encoding="utf-8"?>

 <network-security-config> // 配置后就可以通过charles抓取https(android 7.0以下设备默认是这种配置)

<base-config cleartextTrafficPermitted="true" >

<trust-anchors>

 <certificates src="system" />

<certificates src="user" />

 </trust-anchors>

 </base-config> // 以下配置只针对debug包有效,不推荐这种⽅式

 <!-- <debug-overrides>-->

 <!-- <trust-anchors>-->

 <!-- &lt;!&ndash;信任⽤户安装的证书&ndash;&gt;-->

 <!-- <certificates src="system" />-->

 <!-- <certificates src="user" />-->

 <!-- </trust-anchors>-->

 <!-- </debug-overrides>-->

 </network-security-config>

3. wifi环境下使用手机连接电脑需要注意以下几点:

手机和电脑需要连接不同的wifi。因为网管有做隔离所以相同的wifi无法连接代理 。

电脑防火墙需要处于关闭状态。

手机上的浏览器无法抓包时可以尝试清空缓存,特别是UC浏览器

4. 手机查看https内容

iOS:

ios手机浏览器访问chls.pro/ssl,安装证书后,进入设置-通用-关于本机-证书信任设置-选择刚才安装的证书-开启信任

Android:

电脑导出charles证书,传送到手机上,手机上在设置里面选择从存储设备安装证书,安装完就可以了

5.Charles确认连接

手机上任意打开一个网址,这是Charles会弹出一个框让你确认是否代理,点击allow就可以了,然后你就会在Charles上发现手机上的请求了。

二、常用功能

1.过滤功能

主要用来过滤掉不需要的域名的抓包信息。

操作步骤:

菜单栏->proxy->recording setting

include:需要抓取的域

exclude:不需要抓取的域

选择相应的选项后点击add按钮,弹出的界面中protocol选择相应的协议http或者https,在Host填入需要的域。

例如:protocol:http Host:newupload.baidu.com

2.网速模拟功能

可以看在低网速下的相关功能的表现。

操作步骤:

菜单栏->proxy->throttle settings

勾选enable throttling选项后选择需要的网速

Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)(MTU的说明请看百度百科)

配置后可以使用测速软件测试下现在的网速,确保生效

3.断点功能

可以绕过客户端判断,直接往服务器发消息。测试接口的各种边界情况,比如出错、超时等表现,Charles的断点+随意篡改。

操作步骤:

菜单栏→proxy→breakpoints

预先设置需要断点的接口。根据相应的选项填入即可

右键→breakpoints

选中抓到的接口后右键选择breakpoints。下次执行时即可断住

设置对应域名的断点:菜单栏→proxy→breakpointssettings(相当于该接口无法请求)





4.Map Remote功能

Map Remote 功能:是将指定的网络请求重定向到另一个网址;可以切换测试环境

操作步骤:

菜单栏->tools->Map Remote

进入Map Remote勾选enable Map Remote

add--》进入edit Mapping

举例将美拍线上接口指向pre环境接口

protocol:协议类型

Host:需要的域名

prot:对应端口

ps:线上api对应https和443端口,beta和pre对应到http和80端口(其他项目需要自个了解后再做定向处理)


5.Map Local功能

Map Local:将某个网络请求重定向到本地的某个文件

操作步骤:

菜单-Tools-Map Local

进入Map Local 勾选enable Map Local

add–进入edit Mapping

填入需要映射本地文件的协议,主机地址,端口号

本地文件可以是自己造的测试数据,也可以是接口返回的数据保存到本地再进行修改,只需先将接口返回数据进行保存到本地:点击某接口response,右击save response。


使用map local功能,请求并不会请求到服务端,会请求本地文件,这是和断点功能不同的地方

6.批量执行功能

可以批量执行或重复执行相同的接口。

操作步骤:

右键→repeat

重复执行接口,只执行一次

右键->repeat advanced

重复执行多次或并发执行

iterations:迭代次数

concurrency:并发数

concurrency为1时,重复执行iterations的次数

concurrency不为1时,并发执行concurrency的次数

7.模拟发送请求功能

charles也可以模拟发送请求,选择你想要改造的接口,点选上面的钢笔进入编辑(可以改参数header任何你能改的信息)

编辑成功后点击Execute执行请求


8.允许重写某个地址的对应key信息

charles允许重写对应域名的key信息,比如更改网页的cookie或是token过期时,方便复现对应问题

9.电脑也允许抓包

Mac :Help--SSL Proxy--Install Charles Root Certificate--这时会打开【钥匙串访问】--解锁系统根证书--找到Charles Proxy CA--打开--选择信任–使用此证书时:始终信任

windows: Help--SSL Proxy--Install Charles Root Certificate--安装证书--下一步--将所有证书放入下列存储--浏览选择受信任的根证书到颁发机构--完成



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,776评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,527评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,361评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,430评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,511评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,544评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,561评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,315评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,763评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,070评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,235评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,911评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,554评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,173评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,424评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,106评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,103评论 2 352

推荐阅读更多精彩内容

  • 关键词:Charles macOS 一、Charles *Charles是常用的网络封包截取工具,在做移动开...
    Jeff_9021阅读 638评论 0 0
  • 简介 Charles是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软...
    超哥_c2fd阅读 707评论 0 1
  • Charles的简单介绍: Charles又名青花瓷,是Mac端的一款截取与分析网络请求的工具(windows也可...
    Adminwang阅读 32,271评论 0 26
  • 简书上的文章已经不再维护,有兴趣阅读其他文章,或一起交流的朋友,请移步 我的博客:punmy.cn 原文 本篇博客...
    胖绵羊阅读 10,179评论 7 36
  • 简介 Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。...
    FITZ9311阅读 380,899评论 63 446