V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Alife
V2EX  ›  问与答

请教使用 Fiddler 或者 Charles 抓 https 包失败的问题

  •  
  •   Alife · 2016-09-08 15:20:01 +08:00 · 54054 次点击
    这是一个创建于 3003 天前的主题,其中的信息可能已经有所发展或是发生改变。

    要抓 iphone 上的 https 数据包

    首先使用的是 Fiddler 使用 Safari 访问 https://www.google.com.hk 可以在 Fiddler 中看到明文数据,然后打开要抓取的 app ,发现 Fiddler 中显示

    A SSLv3-compatible ClientHello handshake was found. Fiddler extracted the parameters below

    然后又使用 Charles 测试,同样出现上述现象,Overview 中显示如下

    Failure SSLHandshake: Remote host closed connection during handshake Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.

    以上是大致信息,设置代理后,该 app 显示请求失败

    Q1: 这个是什么原因,是不是该 app 做了证书检查导致,同样设置代理后 app store 同样打不开

    Q2:可不可以自签名一个证书,域名绑定和要抓取的域名一致,绕过本地证书检查.

    第 1 条附言  ·  2016-09-09 09:21:03 +08:00
    Charles 下抓包看截图,ssl proxy 设置 *:443

    https://ooo.0o0.ooo/2016/09/08/57d129ec92a40.png

    第一个域名 https://xp.apple.com 出错
    第二个域名 https://www.google.com.hk 显示抓包成功

    同样 Fiddler 下抓包显示如下

    https://ooo.0o0.ooo/2016/09/08/57d1316c64f19.png

    同样 https://xp.apple.com 只显示 Tunnel to
    https://www.google.com.hk 成功,可以看到 Url

    微博图床用不了,抱歉不能直接显示图片
    第 2 条附言  ·  2016-09-09 09:22:05 +08:00
    用 chrome 访问 https://xp.apple.com 会报 404 ,但是在 Fiddler 中可以看到明文的 404 返回信息

    但是抓取 iphone 上的 app store 的 https://xp.apple.com 却不行

    还发现个问题:

    这个网站 https://imququ.com/#JerryQu 的小站

    使用 Fiddler 抓取 https 时,返回结果看到的为什么是乱码?浏览器显示的也是乱码?
    35 条回复    2024-07-09 10:39:58 +08:00
    popok
        1
    popok  
       2016-09-08 15:52:43 +08:00 via iPhone
    手机设置代理后,访问一个网址,你 Charles 里点 help ,然后 ssl 什么的那里面有一个什么在移动设备上安装证书的选项,在 iPhone 上安装 Charles 的证书,并信任,然后就可以了。
    yatessss
        2
    yatessss  
       2016-09-08 16:02:08 +08:00
    得在手机里装证书,然后在 charles 里设置需要代理的域名, charles 抓包 ssl 得需要设置指定的域名,你抓包一个就得设置一个域名
    popok
        3
    popok  
       2016-09-08 16:17:05 +08:00 via iPhone
    @yatessss 域名可以填通配符*的,端口 443
    Alife
        4
    Alife  
    OP
       2016-09-08 16:19:55 +08:00
    @yatessss
    @popok 很确定 Charles 都设置正确了, 且 Fiddler 不去要额外设置,为什么也无法显示明文内容

    和服务器证书假面方式有关系吗? 这个? 不是很明白

    SSL TLSv1.2 (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)

    以下是 Charles Overview 中显示的内容

    URL https://域名
    Status Failed
    Failure SSLHandshake: Remote host closed connection during handshake
    Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
    Response Code -
    Protocol HTTP/1.1
    SSL TLSv1.2 (TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)
    Method CONNECT
    Kept Alive No
    Content-Type -
    Client Address /192.168.1.110
    Remote Address 域名 /ip
    Connection
    Timing
    Request Start Time 16-9-8 14:42:17
    Request End Time -
    Response Start Time -
    Response End Time -
    Duration -
    DNS 1 ms
    Connect 73 ms
    SSL Handshake 173 ms
    Request -
    Response -
    Latency -
    Speed -
    Response Speed -
    Size
    Request 190 bytes
    Header 190 bytes
    Query String -
    Cookies -
    Body -
    Uncompressed Body -
    Compression -
    Response -
    Header -
    Cookies
    Body -
    Uncompressed Body -
    Compression -
    Total 190 bytes
    yatessss
        5
    yatessss  
       2016-09-08 16:24:44 +08:00
    @popok 学习了。。。
    yatessss
        6
    yatessss  
       2016-09-08 16:27:00 +08:00
    额。。。 按说手机装上证书 设置一下就应该可以了。。。。 显示里不是这样写了嘛 >Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
    hanzichi
        7
    hanzichi  
       2016-09-08 16:35:02 +08:00
    Alife
        8
    Alife  
    OP
       2016-09-08 17:40:05 +08:00
    Charles 下抓包看截图,ssl proxy 设置 *:443

    https://ooo.0o0.ooo/2016/09/08/57d129ec92a40.png

    第一个域名 https://xp.apple.com 出错
    第二个域名 https://www.google.com.hk 显示抓包成功

    同样 Fiddler 下抓包显示如下

    https://ooo.0o0.ooo/2016/09/08/57d1316c64f19.png

    同样 https://xp.apple.com 只显示 Tunnel to
    https://www.google.com.hk 成功,可以看到 Url

    微博图床用不了,抱歉不能直接显示图片
    Alife
        9
    Alife  
    OP
       2016-09-08 17:40:59 +08:00
    @yatessss iphone 已经正确安装证书
    popok
        10
    popok  
       2016-09-08 19:31:45 +08:00
    @Alife 刚试了下, APP store 的确实抓不到的,可能确实某些 APP 做了证书的限制
    Alife
        11
    Alife  
    OP
       2016-09-09 08:48:43 +08:00
    @popok 是抓不到吧,但是如果是 app 做了证书检查,也不至于中间人看不到内容啊.

    搞不明白啊
    hack
        12
    hack  
       2016-09-09 08:51:57 +08:00 via Android
    协议支持那里要改一改,对于开了 HSTS 的 现阶段我是直接放弃
    Alife
        13
    Alife  
    OP
       2016-09-09 09:15:33 +08:00
    @hack 改成什么?我已经改成 <client>;ssl3;tls1.0;tls1.2 了,不行啊

    用 chrome 访问 https://xp.apple.com 会报 404 ,但是在 Fiddler 中可以看到明文的 404 返回信息

    但是抓取 iphone 上的 app store 的 https://xp.apple.com 却不行
    hack
        14
    hack  
       2016-09-09 10:52:28 +08:00 via Android
    @Alife 那就是抓不到了啊
    Alife
        15
    Alife  
    OP
       2016-09-09 11:37:38 +08:00
    @hack 3ks. 那就这么放弃了,也不知道为啥. 难道要去 stackoverflow 问下吗.
    Niphor
        16
    Niphor  
       2016-09-09 11:51:19 +08:00
    我是直接设成 tls1.0;tls1.1;tls1.2 的...
    hack
        17
    hack  
       2016-09-09 13:56:01 +08:00 via Android
    @Alife 对呀,好了咋弄的麻烦 @下
    ingfivan
        18
    ingfivan  
       2016-10-15 13:57:57 +08:00
    @Alife 哈喽 这个问题找到解决方案了吗,我和你遇到了同样的问题
    Alife
        19
    Alife  
    OP
       2016-10-17 10:45:45 +08:00 via iPhone
    @ingfivan 还没有啊
    Totato5749
        20
    Totato5749  
       2017-06-01 02:55:55 +08:00
    我怀疑是不是跟自己签的证书有关
    Alife
        21
    Alife  
    OP
       2017-06-01 08:59:57 +08:00
    @Totato5749 不知啊,证书用的是 fiddler 自动生成的啊
    loadnl
        22
    loadnl  
       2017-06-28 16:18:26 +08:00
    method 为 connect 的不能抓。那个好像是直接转发 不代理
    Alife
        23
    Alife  
    OP
       2018-04-08 10:11:12 +08:00
    zdxu
        24
    zdxu  
       2018-05-26 20:53:39 +08:00
    请问你这个问题解决了吗?好像是 method 是 connect 导致,但是我还没找到解决方案。
    Alife
        25
    Alife  
    OP
       2018-06-14 11:25:21 +08:00 via iPhone
    @zdxu 未完全解决,23 楼提供的方法可以解决部分,但不是全部
    realajie
        26
    realajie  
       2018-12-26 14:19:24 +08:00
    如 25 楼所述,还是没完全解决。
    yanglihui
        27
    yanglihui  
       2019-03-11 08:49:25 +08:00
    @Alife
    怎么个部分解决?
    一直是这样设置的。
    抓微博、知乎一类的都可以,但某个 APP 不行。
    我看楼主截图,mothod 是 connect、协议是 http1.1 的,是否和这个有关呢
    RihcardLu
        28
    RihcardLu  
       2019-08-02 10:25:59 +08:00
    @yanglihui @Alife @realajie 遇到了同样的问题,和协议无关,原因是因为服务器加入了证书检测,想要绕过只能 root 或翻墙

    相关资料

    https://www.zhihu.com/question/60618756/answer/492263766
    hero2040407
        29
    hero2040407  
       2019-09-15 14:01:03 +08:00
    设置 通用 关于本机 证书信任设置
    okface
        30
    okface  
       2021-01-07 19:58:03 +08:00
    遇到同样问题了,我抓的是豆瓣,app 第一页可以显示,点不进去详情,例如某电影或书籍。也不能搜索。只能看豆瓣首页的一些广告啥的。其他 app 我试了 safari 、lark 等,都可以。我感觉不是豆瓣改协议了,是 ios 升级之后代理的证书还没来得及适配? charles 和 fiddler everewhere 都试了,ios13.7 。
    Alife
        31
    Alife  
    OP
       2021-01-13 11:26:43 +08:00 via iPhone
    @okface 有一些 app 会在客户端本地验证证书,这样的都没法抓包。
    okface
        32
    okface  
       2021-01-14 01:31:17 +08:00
    @Alife ssl pinning 对吧。后来测试豆瓣在低版本安卓可以。
    Alife
        33
    Alife  
    OP
       2021-01-14 12:05:16 +08:00 via iPhone
    @okface 对的,这个就是应对中间人篡改证书问题的
    Alife
        34
    Alife  
    OP
       2021-01-14 15:41:46 +08:00
    自己记录一下
    如何对使用了 ssl pinning 的 APP (如知乎)进行抓包?
    https://www.zhihu.com/question/60618756
    soakit
        35
    soakit  
       142 天前
    重置 Fiddler 设置
    有时候,重置 Fiddler 的设置可以解决一些奇怪的问题:

    在 Fiddler 中,点击 Tools 菜单,然后选择 Options.
    在 Options 窗口中,选择 HTTPS 选项卡,并点击 Reset All Certificates.
    关闭并重新启动 Fiddler ,然后再次配置 HTTPS 解密和证书信任。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3236 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:09 · PVG 21:09 · LAX 05:09 · JFK 08:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.