charles抓包

一、抓包工具作用

1、看发出去的请求
2、定位问题:看是server端的问题还是客户端
3、能模拟一些服务端返回的异常情况

二、抓包方式:

电脑抓包不需要配置,直接打开charles,就会自动抓取电脑上所有的http请求,目前https请求抓不到需要安装相关证书,配置。

手机抓包设置:

1、必须保证手机和电脑在同一个局域网
2、获取电脑ip,查看charles端口号,默认是8888(charles中proxy-proxy settings)
3、将手机设置ip和端口。从wifi进入,设置ip,端口和charles一致

三、charles设置断点

选择需要拦截的请求,右键-breakpoints,这样每次该请求对服务器进行访问时,都会被charles拦截

拦截后就可以对发送的请求进行更改,比如对http://bj.58.com/设置断点后,再次刷新页面,如下

进入edit request,就可修改请求的所有信息:url、请求方法、herders、cookies等等,修改完成后,点击execute ,就会按照修改后的请求去访问服务器

比如将地址改为http://iqiyi.com,点击execute,就会跳转到爱奇艺网站,而不是北京58网站

选择要拦截的响应数据,并请求上右键-breakpoints,页面重新发送请求,在向服务器发送过程中停止,不改变内容,直接点击execute原样请求服务器。则在服务器返回数据时就再次会停止,此时服务器返回了响应数据,可在response中修改内容:

比如修改上述内容为“”hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh“”,执行execute

以上是使用charles对请求或响应数据进行修改案例。

另,charles因为会对电脑上所有的请求抓包,数据比较多乱,如果想只看某一个请求,可以在请求上右键-focus,就可以对所有的请求分类为  关注的请求和other hosts

四、charles抓取https

1、安装根证书

 点击安装证书,安装过程中,直接将该证书安装到信任证书目录下

 安装完成后,还需要进行一步设置

如下图,勾选Enable SSL Proxying,点击添加,弹出下面的对话框,Host 表示你要抓取的 ip 地址或是链接,Port 填写 443 即可:

然后再次访问百度,发现可以抓包了

 手机抓包:

1、手机必须跟电脑在同一个网段

2、设置代理:进入手机无线网,选择代理--手动:填写IP(电脑的ip),端口8888.设置完成后,就可以抓包了

如果想要抓https的包,

1、pc安装证书:Charles--help---sslproxying---install charlex root certificate 然后弹出证书安装窗口,按照操作安装证书到pc。

2、手机需要下载证书,下载地址: 点击charles---help--ssl proxying---install charles root certificate on a mobile device .....会弹出一个信息框,上面写的有证书下载地址

3、在手机浏览器输入地址,下载证书并安装。安装完成后,在手机通用--关于本机--证书信任列表中,将Charles证书设置为信任证书即可

原文地址:https://www.cnblogs.com/bendouyao/p/8604797.html