美文网首页
fiddler抓取ios上的https

fiddler抓取ios上的https

作者: 兔子不打地鼠打代码 | 来源:发表于2019-03-26 19:17 被阅读0次

    感谢肖佳大佬,此篇文章转载自他的博客,后续还有介绍,可以移步他个人的网站,此处只做抛砖引玉http://www.cnblogs.com/TankXiao/p/3063871.html

    Fiddler是我最喜爱的工具,几乎每天都用, 我已经用了8年了。 至今我也只学会其中大概50%的功能。 Fiddler绝对称得上是"神器", 任何一个搞IT的人都得着的。

    小弟我立志, 一定要把Fiddler的所有的功能和用法都写出来。 写成一个完整系列的教程。

    Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。

    Fiddler能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。 同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS。

    本文介绍Fiddler截获IPhone发出的HTTP/HTTPS包

    前提条件是:安装Fiddler的机器,跟Iphone 在同一个网络里, 否则IPhone不能把HTTP发送到Fiddler的机器上来。

    阅读目录

    1. 截获智能手机发出的HTTP包有什么用?
    2. 配置Fiddler, 允许"远程连接"
    3. 获取Fiddler所在机器的IP地址
    4. IPhone上安装Fiddler证书
    5. IPhone上配置Fiddler为代理
    6. 大功告成,开始抓包
    7. 只能捕获HTTP,而不能捕获HTTPS的解决办法
    8. Fiddler捕获其他手机或者平板

    截获智能手机发出的HTTP包有什么用?

    用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序

    用处二: 软件测试人员用于测试智能手机上的软件。

    用处三: 可以用来在App应用商店中刷排名

    用处四: 截获了HTTP/HTTPS后,你想干什么就干什么,比如修改Request,或者Response.

    配置Fiddler, 允许"远程连接"

    打开Fiddler, Tools-> Fiddler Options 。 (配置完后记得要重启Fiddler).

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

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

    image image

    获取Fiddler所在机器的IP地址

    这个简单吧。 我Fidder所在的机器地址是: 192.168.1.104

    IPhone上安装Fiddler证书

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

    1. 首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.1.104

    2. 打开IPhone 的Safari, 访问 http://192.168.1.104:8888, 点"FiddlerRoot certificate" 然后安装证书

    image

    [图片上传中...(image-a679a2-1553598481090-1)]

    IPhone上配置Fiddler为代理

    打开IPhone, 找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888

    image

    大功告成,开始抓包

    现在IPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。

    实例: 打开Safari,

    1. 输入http://www.cnblogs.com/tankxiao. 看看Fiddler能否捕获。

    1. 输入https://dynamic.12306.cn/otsweb/ 看看Fiddler能否捕获。

    是不是HTTP和HTTPS都截获到了????, 你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want.

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

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

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

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

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

    Fiddler捕获其他手机或者平板

    方法类似

    补充:

    最近iPhone系统更新到iOS 10.3后,在公司里用Charles抓包竟然出现了一些问题,https的请求都会失败,提示错误信息为Failure SSLHandshake: Received fatal alert: unknown_caYou may need to configure your browser or application to trust the Charles Root Certificate. 然而之前任何问题都没有,并且相关设置都正确:Mac上安装了Charles的根证书,并且设置了始终信任,然后手机上也登录了http://chls.pro/ssl安装了描述文件,一切都按正常程序走的,但是错误始终无法解决.这里Charles的相关使用不做介绍,不会使用的请参考本文结尾处唐巧大大的博文.

    相关环境

    • Charles 4.0.2
    • iPhone 6s iOS 10.3.1

    原因

    设置->通用->描述文件->charles proxy custom root certificate

    虽然charles的根证书已经在安装列表中显示,但它是被关闭的。在iOS 10.3之前,当你将安装一个自定义证书,iOS会默认信任,不需要进一步的设置。而iOS 10.3之后,安装新的自定义证书默认是不受信任的。如果要信任已安装的自定义证书,需要手动打开开关以信任证书。

    解决

    设置->通用->关于本机->证书信任设置-> 找到charles proxy custom root certificate然后信任该证书即可.

    image

    作者:范范饭特稀
    链接:https://www.jianshu.com/p/6ad09374053b
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:fiddler抓取ios上的https

          本文链接:https://www.haomeiwen.com/subject/mzbnvqtx.html