Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1827|回复: 3
打印 上一主题 下一主题

抓包工具Charles

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2017-7-3 17:35:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 java 于 2018-4-3 17:34 编辑

抓包工具Charles   也是 抓包工具 是一个HTTP代理服务器,HTTP监视器,反转代理服务器


https://www.charlesproxy.com/


下载

链接: https://pan.baidu.com/s/1F1U8OL8orp94EoglDhGjbw 密码: w43s

charles-proxy-4.1.4_amd64.tar.gz 和 charles-bs-v414.jar
解压前者后,把lib目录下的charles.jar用charles-bs-v414.jar替换



linux安装了docker之后,用ifconfig指令看多了一个docker0,怎么关掉?  这会影响 charles启用的ip地址

$ sudo ifconfig docker0 down
$ sudo ifconfig docker_gwbridge down
回复

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
沙发
 楼主| 发表于 2017-8-17 11:55:48 | 只看该作者
本帖最后由 java 于 2017-10-17 18:20 编辑

charles工具使用
charles除了之前介绍过模拟弱网的功能外,还有很多强大的功能。最近客户端测试用到的功能介绍如下:
.准备工作1.手机设置代理
charles设置代理端口号8888:Proxy→ Proxy Settings
手机设置代理,连接wifi,点开设置http代理,选择手动,服务器填写charles所在本机的ip地址,端口号8888

2.SSL代理设置,允许抓取https协议
Proxy→SSL Proxying Settings→勾取Enable SSL Proxying→add→添加想要抓取的域名和端口号,以抓取阿波罗app数据为例
.拦截某个软件的接口数据
手机代理到电脑,charles会出现弹窗,询问allow还是deny,选择allow,连接成功。
通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。
在Charles的菜单栏选择"Proxy"->"Recording Settings",然后选择Include栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图截取阿波罗app数据:

如果只测试一个功能的情况下,可以只截取单个接口,例如测试阿波罗首页广告,只需截取splash接口,添加并勾选。

勾选Proxy →Start Recording,开启抓取记录,可以在charles界面看到你所过滤的网络请求,以阿波罗app为例:

Charles主要提供2种查看封包的视图,分别名为“Structure”和"Sequence"。
  • Structure视图将网络请求按访问的域名分类。
  • Sequence视图将网络请求按访问的时间排序。
大家可以根据具体的需要在这两种视图之前来回切换。
对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果响应内容是JSON格式的,那么Charles可以自动帮你将JSON内容格式化,方便你查看。
.更改返回数据来测试各种情况1.强大的mapping功能a.Map Local
可以将远程的某个文件代理到本地文件,进行调试。使用方法如下:
Tools→Map Local→勾选Enable Map Local→Add→填入需要映射本地文件的协议,主机地址,端口号
本地文件可以是自己造的测试数据,也可以是接口返回的数据保存到本地再进行修改,只需先将接口返回数据进行保存到本地:点击某接口response,右击save response。
b.Map Remote
Map Remote的功能原理和Map Local的原理相同,都是替换请求,只不过Map Local替换的请求为本地文件,而Map Remote替换的请求为线上请求。
使用方法:Tools→Map Remote→勾选Enable Map Remote→Add→填入需要替换请求的协议,主机地址,端口号。
如图,splash接口映射到entry接口,splash接口访问的是entry接口的数据。
2.断点功能
我们可以通过使用断点功能来篡改请求的数据或者返回的数据,达到模拟的效果,已测试阿波罗app为例方法如下:
类似于mapping,我们可以针对接口右键选择"BreakPoints",这样这个接口就被加入到断点状态了
需要进一步修改断点的属性,可以在菜单栏"Proxy"–>"Breakpoints Settings"里进行添加删除或者修改,配置方式和mapping雷同,并且可以选择这个断点是在request还是response,还是两者都要。
这个时候再刷新app界面,会直接跳转到断点模版,这个时候你可以在对应状态情况下修改request或者response,然后点击下方按钮“Execute”。
跳转到断点界面,先点击下方执行按钮“Execute”。

然后点开Edit Response界面,选择JSON格式,格式清晰,方便修改,直接在上面进行数据修改,改成你想要测试的数据,然后点击执行按钮

再次刷新app界面,然后app返回的是新改的数据,根据返回数据测试客户端显示是否正确。


http://www.cnblogs.com/summer-sun/p/5479254.html
回复 支持 反对

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
板凳
 楼主| 发表于 2017-10-17 19:37:51 | 只看该作者
本帖最后由 java 于 2018-3-29 17:02 编辑

4.手机下载ssl证书
   1).Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser...   
       会弹出一个提示框,如下显示:
      
       浏览器输入这个地址即可下载证书,记住要用Android自带的浏览器.   地址是:http://charlesproxy.com/getssl
    2).然后按照他的提示安装证书即可.

也可直接保存到机器上再传送到手机上
Help->SSL Proxying -> Save Charles Root Certificate...

设置--安全--从SD卡安装  找到下载的 .pem 或 .cer文件安装


回复 支持 反对

使用道具 举报

1228

主题

1997

帖子

7582

积分

认证用户组

Rank: 5Rank: 5

积分
7582
地板
发表于 5 天前 | 只看该作者
本帖最后由 Qter 于 2024-4-28 15:05 编辑

charles
链接:https://pan.baidu.com/s/1cKIT_1df5K9kh53BxfhIAw
提取码:0mwm

上面的好像不是Windows平台的


Charles 4.5.6汉化版,赶紧上车,懂的都懂

百度网盘:链接:https://pan.baidu.com/s/1y7KuzSg_SKmtEP4OTRycwg?pwd=52pj

提取码:52pj

直接下载:
https://www.123pan.com/s/2GLRVv-CW4Gv

注册信息:
用户名:52pojie
注册码:E63519EFB77448393C

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-5-3 00:26 , Processed in 0.059611 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表