抓包基本是每个初级测试需要掌握的技能,Charles是我在工作上最常使用的抓包工具,下面总结一下我在工作过程中使用Charles遇到的问题和如何解决的。
首先使用Charles需要到官网上下载,Charles官网:https://www.charlesproxy.com/,
根据自己设备的类型选择Charles,下载以msi为后缀的文件,下载后进行安装,一直下一步就行。我当时下载安装后开启Charles出现类似failed to find Java vm的提示,当时在解决这个问题上用了很长时间,其实根据字面意思也知道是没有安装Java jdk的原因,导致Charles运行失败。
安装Java jdk首先需要到官网上https://www.oracle.com/java/technologies/javase-jdk8-downloads.html下载java jdk的安装包,目前最新版的是242,我当时下载的是1.8.1的包,需要根据自己电脑的类型下载对应的包,我电脑是win10的64位的系统,下载之前注意同意协议
下载后点击exe文件,一直下一步就安装成功了。安装时要注意程序的安装路径,需要用路径进行环境变量的配置。右击计算机-属性-高级系统设置-环境变量。
配置环境变量:
1.在新弹出窗口上,点系统变量区域下面的新建按钮,弹出新建窗口,变量名为JAVA_HOME,变量值填JDK安装的最终路径,点确定完成;
2.下面需要设置Path变量,由于系统本身已经存在这个变量,所以无需新建,在原本基本上添加JDK相关的,找到Path变量双击编辑,由于每个值之间用;符号间断,所以先在末尾加上;(注意是英文格式的,不要输其他符号空格等),加上;符号后在末尾加入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin,点确定完成;
3.下面添加CLASSPATH变量,由于不存在,所以新建一个,变量名CLASSPATH,变量值%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar,首尾不带空格的,点确定完成,至此环境变量配置完成,点确定关掉环境变量配置窗口。
然后cmd运行java version的命令,出现如下类似文字,验证jdk安装成功。
此时Charles可以正常启动运行,需要对Charles进行设置去连接手机,首先安装证书,安装证书是为了抓取https的,点击Charles的help-ssl proxying-Install Charles Root Certificate,安装证书-本地计算机-选择将所有证书都放在下列存储-浏览文件-选择受信任的根证书,点击确定就可以啦。然后点击proxy-勾选windows proxy,再设置SSL Proxying-Enable SSL Proxying,勾选443,Charles就设置完了。
再对手机进行设置:android和ios设置代理连接Charles的区别在于,ios需要对下载后的证书进行安装,而安卓不需要。
连接手机之前需要通过charles的help-SSL Proxying-Install Charles Root Certificate on a Mobile Device or Remote Browser知道电脑的ip地址,端口和下载charles证书的网址chls.pro/ssl。
安卓需要先通过设置-wlan-当前所连wifi(注:手机和连接Charles的电脑要处在在同一网段),长按wifi,进行高级设置,手动配置代理,输入刚才查看电脑的ip地址和端口。点击保存,手机代理设置完成。这时连接手机会弹出是否允许手机和电脑连接的提示,要点击允许。然后需要用第三方浏览器输入网址chls.pro/ssl。不是自带的浏览器,自带的浏览器下载下来的证书无法安装成功。打开手机程序通过charles抓到接口的响应数据来验证手机和电脑是否连接成功。
ios设置代理步骤基本和安卓相同,ios下载证书需要用safari浏览器,下载后到设置中对已下载证书进行安装,一般下载证书后会在设置中弹出已下载证书允许安装,点进去,就会弹出刚才安装的证书,对证书进行安装就可以啦。然后连接charles查看相应数据验证手机和电脑是否连接成功。