本文主要介绍如下内容:
1、Charles如何抓取HTTP报文
2、Charles如何抓取手机上的HTTP包
3、使用Charles篡改数据信息
一、Charles抓取HTTP包
1、Charles的安装
1、下载地址:官网http://www.charlesproxy.com下载
2、破解:Charles是收费软件,需要破解。破解方法是下载charles.jar替换原来的 jar包。
3、charles.jar下载地址:http://pan.baidu.com/s/1i3Qt24H(我下的charles版本为3.11.2)
ps:jar包对应的charles版本3.11.2 ,可网上搜取最新的
2、安装完成后打开Charles,默认打开之后就可以正常抓取数据报文
在浏览器中输入:http://bj.58.com/
然后Charles抓取到的报文如下图:
如果感觉请求太多,可以切换到Sequence窗口设置过滤条件进行查看必要的请求,如下图:
选中筛选出来的请求,然后选择相应的Request、Response选项,对该请求进行分析,如下图:
二、Charles抓取手机上的HTTP包
前提:手机和安装有Charles的PC要在同一个局域网内
1、选择Charles,对代理进行设置
Proxy>Proxy Setting,设置代理端口号为:8888(默认值),也可以修改为其他未占用的端口号
2、设置手机代理
选择手机的WiFi打开无线网设置界面,选择代理>手动,然后主机名填写Charles主机的IP,端口号为8888,如下图:
3、设置完成后,直接在手机上浏览网页,Charles即可抓取响应的HTTP请求,如下图:
注意:如果不在抓取手机的包,请取消代理的设置,不然会影响手机的正常上网
三、Charles篡改数据信息
以访问http://bj.58.com/ 为例
原理说明:
当访问http://bj.58.com/这个网址的时候,是client端发起HTTP请求到server服务端,然后server服务端在返回给client端相应的数据信息。
那么如果我们要篡改数据,那么我们需要在client与server端进行拦截,这样无论是client端发送的数据还是server端返回的数据这样我们就都可以看到了,然后就可以对其数据进行修改,那该如何拦截呢?看下面
1、先使用Charles抓取访问http://bj.58.com/访问的请求,如下图:
2、选择该请求,右键然后选择Breakpoints,相当于在该请求上打了一个断点,如下图:
也就是说当在此方位bj.58.com这个网址的时候,会被Charles进行拦截,
3、清除访问的数据,重新访问bj.58.com这个网址
我们发现界面会一直在转圈请求数据,这是看我们的Charles发现已经拦截到了访问58的请求数据,如下图:
在该界面我可以对其访问的请求方式和访问的URL进行修改,如下图:
这里我们不做任何修改,选择下面的Execute进行放过
4、放过后会发现服务器返回的数据也被我们拦截到了,如下图:
然后在该选项卡我们可以查看Headers、Cookie、和界面的一些信息;选择HTML,将其中的家教老师修改成;家教老师666666,如下图:
然后选择Execute进行放过
5、然后我们在看浏览器返回的界面,发现界面的数据已经被修改了,如下图:
注意:
使用完成后将添加的断点去掉,否则每次访问都会被Charles进行拦截。