Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!作为程序员, 这个工具的使用还是必须, 废话不多说, 来点实在的, 下面来详细介绍下这款强大好用的抓包工具的使用
首先需要下载java的运行环境支持(一般用burp的人肯定也都有装java环境,下载链接:链接: http://pan.baidu.com/s/1c2wRVHI 密码: rkcu, 这个是昨天刚从甲骨文官网下载的),装好java环境后,下载Charlet(链接: http://pan.baidu.com/s/1c14dr0k 密码: 9cjv 本软件仅供学习使用不要用作其他商业目的,不要乱传播,要不然楼主被抓了以后没法分享了)
下面是pc端的抓包使用情况 Charles支持抓去http、https协议的请求,不支持socket。
然后charles会自动配置浏览器和工具的代理设置,所以说打开工具直接就已经是抓包状态了。 这里打开百度抓包下,工具界面和相关基础功能如下图所示:
上图中的7个位置是最常用的几个功能。
1. 那个垃圾桶图标,功能是clear,清理掉所有请求显示信息。
2. 那个望远镜图标,功能是搜索关键字,也可以使用ctrl+f实现,可以设置搜索的范围。
3. 圆圈中间红点的图标,功能是领抓去的数据显示或者不显示的设置。 这个本人认为是charles工具很方便的一个两点,一般都使其为不显示抓去状态,只有当自己测试的时候的前后,在令其为抓取并显示状态。这样可以快准狠的获取到相关自己想要的信息,而不必在一堆数据请求中去寻找。
4. 编辑修改功能,可以编辑修改任意请求信息,修改完毕后点击Compose就可以发送一个修改后的请求数据包。
5. 抓取的数据包的请求地址的url信息显示。
6. 抓取的数据包的请求内容的信息显示,post请求可以显示form形式,直观明了。
7. 返回数据内容信息的显示.
其中5、6、7中都有各种形式的数据显示形式,其中raw是原始数据包的状态, 更多功能可以去帮助文件中查看英文版教程!
charles抓包的显示,支持两种模式,Structure和Sequence,其优点分别如下。
Structure形式如下图 优点:可以很清晰的看到请求的数据结构,而且是以域名划分请求信息的,可以很清晰的去分析和处理数据。
Sequence形式如下图 优点:可以很清晰的看到全部请求,不用一层一层的去点开,这里是以数据请求的顺序去执行的,也就是说那个请求快就在前面显示。
具体要说两种形式哪个更好,这个就是见仁见智了。个人喜欢第一种,左侧列表栏比较习惯!
这里相比其他抓包软件来说要简单的多了,具体步骤如下:
1. Charles上的设置
要截取iPhone上的网络请求,我们首先需要将Charles的代理功能打开。在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888,并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图所示:
我们需要获取Charles运行所在电脑的IP地址,打开Terminal,输入ifconfig en0, 即可获得该电脑的IP
2. iPhone上的设置
在iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888,如下图所示:
设置好之后,我们打开iPhone上的任意打开网络链接, 尽情地玩耍,哈哈!(然后你会发现很多app的密码和账户一览无余,so,以后注册小公司网站时密码一定要和自己的qq, 支付宝等等密码区分开,要不然小公司服务器被攻破之后,后果可想而知)
注意:手机要与电脑在同一个WiFi下哦!这个很重要
相信上面介绍的那些你已经学会了吧,下面再说说charles的一些其他常用的功能
选择请求后,右键可以看到一些常用的功能,这里说说Repeat 就是重复发包一次。 然后Advanced Repeat就是重复发包多次,这个功能用来测试短信轰炸漏洞很方便。
还有比如说修改referer测试CSRF漏洞,修改form内容测试XSS,修改关键的参数测试越权,修改url、form、cookie等信息测试注入等,都非常方便。
好了,这款工具的介绍就到这里了!
Charles是一款很好用的抓包修改工具,但是如果你不是很熟悉这个工具的话,肯定会遇到各种感觉很莫名其妙的状况,这里就来帮你一一解答。
1. 为什么下载了不能用啊?打不开啊。
因为charles是需要java环境才能运行的,需要先安装java环境才可以。
2. 为什么我用着用着就自动关闭了?大概30分钟就会关闭一次。
因为charles如果没有注册的话,每次打开后就只能哟个30分钟,然后就会自动关闭,所以最好在使用前先按照说明去进行工具的注册操作。
3. 为什么用了charles后,我就上不了网页了,但是qq可以。
因为如果charles是非正常状态下关闭的话,那么浏览器的代理就不会被自动取消,所以会导致这种情况。
解决办法:
第一种:直接打开charles,然后再正常关闭即可。 第二种:将浏览器代理位置的勾选去掉。
4. 为什么我用charles不能抓到socket和https的数据呢?
首先,charles是不支持抓去socket数据的。 然后,如果抓不到https的数据的话,请查看你是不是没有勾选ssl功能。 Proxy - Proxy Settings - SSL 设置
5. 为什么我用charles抓取手机APP,什么都是配置正确的,但是却抓不到数据。
首先,请确保电脑和手机是在同一个局域网下,这个很重要。然后确保手机的代理是否设置正确!
6. 抓包后发现form中有些数据显示是乱码怎么办?
首先,请在Raw模式下查看,Raw模式显示的是原始数据包,一般不会因为编码问题导致显示为乱码。
其次,解决中文乱码
Response中文乱码:在Info.plist 中 的vmoption 添加-Dfile.encoding=UTF-8 ( info.plist路径: 应用程序->Charles.app->显示包内容->Info.plist)
7. 我用charles抓手机app的数据,但是同时也会抓去到电脑端的数据,可以设置吗?
可以,设置位置在Proxy - MacOS Proxy ,勾选表示接收电脑的数据抓包,如果只想抓去APP的数据请求,可以不勾选此功能。
8. 想要复制粘贴某些数据的话,怎么办,右键没有相应功能啊?
请直接使用Command +C 和 Command+V 即可。