关闭

Charles抓包工具简单使用

发表于:2024-4-26 09:36

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小码菌    来源:CSDN

  1、在PC端抓https包
  Charles pc端抓包非常简单,启动Charles会自动与浏览器设置成代理,不需要进行过多的设置,接下来我就就是通过浏览器发送网络请求,Charles就会直接抓取到这些信息和响应信息。
  如果启动charles后并没有捕获到请求,请检查你的浏览器是否使用了代理软件,或者检查下Proxy->Recording setting->include 下面有没有单独设置只抓取某个域名下面的请求,有的话,remove掉。
  2、pc端 抓取HTTPS协议
  虽然现在Charles能够直接抓包了,但是https协议的报我们是抓取不了的,需要安装SSL证书才可以。Help -> SSL Proxying -> Install Charles Root Certificate
  然后再进行信任证书,在 Mac 上的“钥匙串访问” App 中,选择其中一个钥匙串列表中的钥匙串,然后连按一个证书,设置Charles的证书为始终信任。
  然后还需要进行ssl代理设置。
  打开Charles,上方菜单栏 —>Proxy —>SSL Proxy Settings —->Add,如图:
  Host:填*表示所有网站都抓
  Port:443
  点击OK,通过以上配置后,我们抓取的信息,就都可以看到https的请求了(明文的)。
  3、手机端(以iphone为例子)
  手机端也需要安装证书
  打开charlse的 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or Remote Browser
  出现弹窗,chls.pro.ssl是下载证书的地址,打开手机safari浏览器会自动弹出下载框,点击允许。
  然后手机打开设置,会出现你刚才下载的证书,点击进去安装,ios的需要格外设置下信任证书。
  设置->关于本机->信任证书。
  我们需要保证电脑和手机连接在同一内网,也就是在同一个路由器上
  然后开始设置代理,设置->无线局域网->配置代理-手动
  打开charles-help->local ip address,将弹窗里面的ip地址输入到手机上服务器那一栏
  打开charles-proxy-proxy setting->port 将端口号填上手机 端口号那一栏,保存。
  代理就配置成功了,就可以实现手机端的抓包了。
  常用工具
  从这左到右介绍:
  清除 - 开始/结束 - 锁/解锁 - 慢网 - 断点 - 模拟请求 - 刷新 - 提交 - 工具 - 设置
  请求地址
  Structure(结构)
  Sequence(序列)
  Web 抓取HTTPS协议
  1.点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate 】安装Charles根证书即可;
  2.点击安装证书-----存储位置选择本地计算机-----选择将所有的证书都放入下列存储受信任的根证书。
  颁发机构:
  3.点击【Proxy】–>【SSL Proxying Settings…】
  4.,在弹出选项卡中,勾选【Enable SSL Proxying】点击【add】,在Host输入【*】表示接收任何主机,在Prot 输入【443】最后点击【ok】保存。
  App抓取IOS的Https包
  前提:PC跟手机处在同一局域网下
  1.点击【Help】–>【local IP Address】获取下ip地址,也可以直接通过电脑自带的CMD命令来获取电
  脑IP【ipconfig】;
  2.点击【Proxy】–>【Proxy Settings】我们在设置下端口号“9999”;
  抓安卓的包注意点。
  android 6.0 之后的一些app在成功安装证书后仍然无法对https连接进行手抓包,有可能是该app没有添加信任用户自定义证书的权限。请确认该app是否有如下配置:
  1 <base-config cleartextTrafficPermitted="true">
  2 <trust-anchors>
  3 <certificates src="system" />
  4 <certificates src="user" />
  5 </trust-anchors>
  6 </base-config>
  这主要是因为android 6.0之后的版本默认配置发生了变化,更多请看Android开发文档。
  手机端设置
  1,打开手机的设置页面—选择【无线局域网】;
  2,IOS点击连接的WIFI后面的感叹号,安卓应该是长按连接的WIFI;(注:这里主要以IOS为例)
  3,点击【配置代理】–>【手动】;
  4,输入本机【IP地址】以及端口号【9999】,这是我本机的,根据自己情况合理配置;
  5,点击【存储】
  接下里验证下手机请求,当我们看到Charles里能抓到这个连接,就说明配置没问题,看到unknown,这个不要紧,那是我们没有安装针对手机端的证书,下面继续我们手机端HTTPS证书安装。
  手机端证书安装
  1,点击顶部菜单栏【Help】–>选择【SSL Proxying】,点击【install Charles Root Certificate】安装Charles根证书即可;
  2,点击安装【Install Charles Root Certificate On a Mobile Device or Remote Browser】在移动设备上或远程浏览器安装证书即可;(这里和上面安装一样)
  3.证书下载之后,点击【设置】–【通用】–【VPN与设备管理】点击证书安装
  4.点击【设置】–【通用】–【关于本机】–【证书信任设置】点击开启信任
  注意点:
  1.首次连接会弹出信任窗口,点击Allow
  2.证书安装之后还是抓不了包,可能是因为电脑的防火墙没有关闭,可在控制面板找到防火墙进行关闭,电脑的杀毒软件,自带的McAfee也需要禁用
  3.还是存在不能抓包尝试重装一下Charles的证书,可以点击【Help】–【SSL Proxying】点击重置掉信任证书,重新进行安装证书的步骤,进行了相关配置的更改记得要重启下Charles在操作
  4.抓不到包还有可能是手机证书装过Fiddler或者其它抓包软件的证书,最好卸载掉,然后重装一下Charles证书
  这些搞下来,还不能抓到包估计就是开发代码问题了哈哈哈
  Charles过滤
  通常情况下,我们需要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,以下几种办法:
  方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。例如我们的服务器的地址是:http://ceshi.com, 那么只需要在 Filter 栏中填入 ceshi 即可。
  方法二:在 Charles 的菜单栏选择 “Proxy”->”Recording Settings”,然后选择 Include 栏,选择添加一个项目,然后填入需要监控的协议,主机地址,端口号。这样就可以只截取目标网站的封包了。如下图所示:
  弱网测试
  Charles配置弱网设置
  1,点击【Proxy】–>【Throttle Setting】
  2,勾选上【Enable Throttle】,也可以勾选【only for selected host 】 设置一个指定注解访问进行网络限制,不影响其他软件;
  3,在【Throttle preset】选择常见预设的网络情况,也可以在【Bandwidth】自己设置网络的上传和下载速率打断点篡改数据在我们的测试场景中,可能需求修改请求参数或者返回参数进行测试,比如支付方面的接口,涉及用户登陆权限的接口参数。这里就不再举例了;
  修改请求数据
  1,选择请求会话右键勾选【Breakpoints】这是我们会发现工具栏有个六边形按钮已经变为红色;
  2,设置断点,点击菜单栏【proxy】勾选【Breakoint Setting …】这是会弹出断点设置弹窗;
  3,在弹出的断点设置弹窗,双击想打断点的接口,进行断点编辑;
  4,编辑断点,如果修改Request数据,九江Request勾选,如果修改Response数据,就将Response勾选,当然你也可以都勾选;
  5,在手机上重新进行请求,Charles 会自动进行拦截并跳转到请求数据修改页面;
  重复发送请求
  在我们的测试工作中,可能你会发先一个bug,开发会让你在操作一遍,他要查看日志经i选哪个定位分析,这时候,在客户端上进行操作一遍就会麻烦,这是直接用Charles 发送一遍重复的请求就可以了,并且,重新发送请求也可以帮助我们进行功能测试
  选择需要重新发送请求的会话上,直接点击工具栏【重新按钮】
  Compose编辑接口
  在我们的测试工作中,可能需要发送不同的参数进行请求。
  选择需要修改的请求,右键选择【Compose】这时多出一个笔的请求。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号