Cheug's Blog

当前位置:网站首页 / 技术积累 / 正文

使用Fiddler对于iOS APP的HTTP/HTTPS抓包

2018-04-12 / 技术积累 / 1664 次围观 / 0 次吐槽 /

PC上安装Fiddler

官方地址:http://www.telerik.com/download/fiddler

提供一个中文汉化修改版:Fiddler (v4.6.1.5)_汉化版.zip

Fiddler配置

打开Fiddler,   Tools-> Fiddler Options 。

选中"Decrpt HTTPS traffic",    Fiddler就可以截获HTTPS请求

选中"Allow remote computers to connect".  是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来

image.png

image.png

这里注意默认的通信端口为 8888 ,如果你的这个端口呗占用可以修改任意端口

手机配置

(1)  网络代理设置

安装Fiddler的机器,跟iPhone 必须在同一个网络里, 否则iPhone不能把HTTP发送到Fiddler的机器上来。一般情况,我们手头上是台式机和手机,台式机只有网线,没有无线wifi,所以和手机不在同一个网络,这时,我们就需要设置代理了

如果不知道你的本机IP是多少,可以打开CMD 输入ipconfig 查看本机IP

image.png

我的地址为192.168.1.104 ,我使用默认端口8888,所以打开iPhone设置,选择WIFI,已连接的WIFI信息,配置代理,输入Fiddler所在机器的IP地址以及Fiddler的端口号8888

image.png image.png  image.png


(2) Fiddler证书安装

这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步

打开IPhone 的Safari, 访问  http://本机IP:8888, 点"FiddlerRoot certificate" 然后安装证书


OK,现在可以抓包了。iPhone上的app发出的HTTP/HTTPS都可以被Fiddler获取。 


注意

(1) 用完了, 记得把IPhone上的Fiddler代理关闭, 以免IPhone上不了网。

(3) 如果提示证书不存在,可以手动生成证书

打开CMD,进入fillder的目录,执行下面的命令:

makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012

抓包时如果遇到全部都是 tunnel to的情况,有显示但是全都抓不到内容,可能是因为版本的原因导致证书不正确。

(2) 只能捕获HTTP,而不能捕获HTTPS的解决办法

有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:

1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->"描述文件")

2. 安装上面的方法,重新安装Fiddler证书






Powered By Cheug's Blog

Copyright Cheug Rights Reserved.