一、Fiddler工具
1)fiddler解密https原理
其实fiddler就是中间人攻击,依次经过如下过程
- fiddler接到客户端的https请求,fiddler将请求转发给服务器
- 服务器生成公钥证书,返回给fiddler;fiddler拦截下真的公钥证书,并生成伪造的公钥证书给客户端;
- 客户端使用伪造的公钥证书加密共享密钥发送给fiddler,fiddler使用伪造的私钥解密获取共享密钥
- fiddler将解密后的共享密钥,使用真正的公钥加密发送给服务器端,服务器使用共享密钥与fiddler通信
- fiddler使用共享密钥与客户端通信
2)使用步骤
- 打开fiddler--TOOLS--HTTPS--勾选“capture https connects”(捕获https)--勾选“decrypt https traffic”(解密https)--勾选“ignore server certificate errors”(忽略服务器证书异常)--勾选“check for certificate revocation”(检查撤销证书)
- 安装证书:actions--点击“trust root certificate”(信任证书)--yes--是(下载好后,点击"open windows certificate manager"
![](https://img2020.cnblogs.com/blog/2118168/202009/2118168-20200929151202444-1341475839.png)
3)手机抓包:
- 安装手机证书:action--export root certificate to desktop(导出到桌面) --连接发送到手机进行安装;
- 或者通过配置代理,--代理:手动;服务器:IP地址,通过ipconfig查看;端口:fiddler设置的未占用的端口;通过手机浏览器:http://ip:端口/下载证书
4)遇到的坑:有的原生浏览器不会自动带入http协议,所以需要检查http://ip:端口/是否完整
- 添加完整的http协议,输入如:http://192.168.101.108:8888/,因为有的手机浏览器没有默认的自动补全的功能
- 需要在原生的搜索框输入,带了“搜索”图标的一般不是原生搜索框,需要找到原生的输入框输入
二、charles使用
步骤:registername 任意输入;选择相应版本;下载好后替换本地charles.jar
右键charles属性查看安装路径,charles.jar在lib文件下面
1)、抓包
1.charles 设置代理:点击proxy---选择proxy settings 设置port端口以及勾选支持的协议
2)安装证书
help--点击SSL proxing ---点击 install charles root certificate on a moblie or remote brwoser
3).保证手机和电脑同一个网段,设置代理,输入相应的IP 和charles端口
4).针对https抓包,解决乱码问题,添加ssl proxing settings;IP对应输入项目的域名,端口默认443
5).设置过滤
filter输入只显示的域名
6).弱网测试
Proxy->Throttle Settings,选择相应网络即可,针对某个域名勾选Enable Throttling