当前位置: 首页 > 后端技术 > Java

安利Mac好用的抓包工具-Charles

时间:2023-04-01 22:28:27 Java

Charles:让世界上没有难抓包。前言今天向大家推荐我用过最好用的抓包工具——Charles(音译:Charles),可以抓取每一端发起的网络请求。我主要用它来抓取移动设备上的请求上次小明就是用这种方式发现了一个付费App课程的漏洞。咳咳,不说了。毕竟打开开发者工具就可以在web端看到浏览器的网络请求了(滑稽)。下载安装方法一:官网下载链接:https://www.charlesproxy.com/...期限:30天试用方法二:百度网盘(推荐)链接:https://pan.baidu.com/s/1p7GJ...Term:无使用限制,附安装说明(你懂的),推荐使用正版软件。密码:关注微信公众号“程序员小明”回复“Charles”获取。配置与使用第一次启动时会提示自动配置,点击同意即可,当然也可以自定义配置。主要配置都在Proxy里面,端口号默认8888,也可以自己调整。下面介绍下使用Charles抓取浏览器和移动端网络请求的方法。浏览器以Mac为例(如题),需要在当前连接的网络上配置网络代理(http)和网络安全代理(https)。默认情况下,Charles会自动配置它,如下所示。当然,如果看到不一样的,也可以手动配置,其中127.0.0.1代表本机地址,端口号根据自己的配置指定。确认以上配置后,当我们打开百度时提示:您的连接不是私密连接!这个时候,你一定要冷静。这意味着当前的https代理证书不受信任。解决方法如下:打开Charles,选择Help->SSLProxy->InstallCharlesRootCertificate。在弹出的证书窗口中,可以看到证书已经安装。添加成功,但是此时证书图标有一个叉号,说明仍然不受信任双击证书,在弹出的CharlesProxyCA窗口中,点击“信任”按钮->使用此证书->选择“始终信任”并关闭窗口,使用账号密码授权后,可以看到该证书的叉号消失,表示已被信任。再次打开百度,我们就可以正常访问了。如果此时Charles弹出弹窗提示是否允许,选择允许即可。当然我们也可以设置所有的https网络请求都允许爬取。选择Proxy->SSLProxyingSettings,添加一个LocationHost:*Port:443移动端(本文重点)抓取http请求,同样在电脑端打开Charles。现在需要在手机上打开CharlesConfigureproxywifisettings-networkproxy,输入电脑的ip和端口号(默认8888),可以通过ifconfig查看本地电脑ip,保存后Charles会弹出弹窗提示是否允许,选择允许即可。如果你使用的手机系统是Android,此时Charles可以抓取http和https网络请求,如果你使用的是iPhone的ios系统,则目前只能抓取http网络请求,下面我们来看看如何实现ios系统手机抓取HTTPS网络请求。抓取ioshttps请求众所周知,ios是一个非常特殊的系统。首先,我们需要安装证书。选择Charles->Help->SSLProxying->InstallCharlesRootCertificateonaMobileDeviceorRemoteBrowser,可以看到如下提示:小明翻译:为手机配置http代理,打开手机设置的无线局域网(确保手机和电脑在同一个WiFi下:),点击右边的i,滚动到最下方,选择“配置代理”,代理地址就是弹窗的地址。打开手机浏览器,输入chls.pro/ssl,下载并安装证书ios下载证书后,需要到设置->通用->描述文件安装证书注意!它还没有完成!(多少大侠倒下了)安装成功后,其实我们并不信任证书,选择设置->通用->关于本机->证书信任设置,对证书启用完全信任!您可以设置不代理计算机的请求(可选)。选择Proxy->macOS,取消勾选,表示不抓取电脑的请求。同样,选择Proxy->MozillaFirefox并取消选中它以不捕获计算机上的MozillaFirefox浏览器。如果此应用场景只要求移动数据采集,那么这两项可以不勾选。今天Charles的操作和使用就介绍到这里,恭喜!我已经掌握了它80%的功能,足够日常开发和使用了。是不是感觉自己又变强了!当然它也有高端的玩法,比如打断点,修改请求和返回的参数,这次就不介绍了,以后有机会小明再补充。本文可转载,但必须注明原文出处。程序员小明,一个很少加班的程序员。欢迎关注微信公众号“程序员小明”获取更多优质文章。