Alife
V2EX  ›  问与答

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

  •  
  •   Alife · Sep 8, 2016 · 55988 views
    This topic created in 3720 days ago, the information mentioned may be changed or developed.

    要抓 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:可不可以自签名一个证书,域名绑定和要抓取的域名一致,绕过本地证书检查.

    Supplement 1  ·  Sep 9, 2016
    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

    微博图床用不了,抱歉不能直接显示图片
    Supplement 2  ·  Sep 9, 2016
    用 chrome 访问 https://xp.apple.com 会报 404 ,但是在 Fiddler 中可以看到明文的 404 返回信息

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

    还发现个问题:

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

    使用 Fiddler 抓取 https 时,返回结果看到的为什么是乱码?浏览器显示的也是乱码?
    35 replies  •  2024-07-09 10:39:58 +08:00
    popok
    popok
    Sep 8, 2016 via iPhone
    1
    手机设置代理后,访问一个网址,你 Charles 里点 help ,然后 ssl 什么的那里面有一个什么在移动设备上安装证书的选项,在 iPhone 上安装 Charles 的证书,并信任,然后就可以了。
    yatessss
    yatessss
    Sep 8, 2016
    2
    得在手机里装证书,然后在 charles 里设置需要代理的域名, charles 抓包 ssl 得需要设置指定的域名,你抓包一个就得设置一个域名
    popok
    popok
    Sep 8, 2016 via iPhone
    3
    @yatessss 域名可以填通配符*的,端口 443
    Alife
    Alife
    OP
    Sep 8, 2016
    4
    @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
    yatessss
    Sep 8, 2016
    5
    @popok 学习了。。。
    yatessss
    yatessss
    Sep 8, 2016
    6
    额。。。 按说手机装上证书 设置一下就应该可以了。。。。 显示里不是这样写了嘛 >Notes You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Proxying in the Help menu.
    hanzichi
    hanzichi
    Sep 8, 2016
    7
    Alife
    Alife
    OP
    Sep 8, 2016
    8
    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
    Alife
    OP
    Sep 8, 2016
    9
    @yatessss iphone 已经正确安装证书
    popok
    popok
    Sep 8, 2016
    10
    @Alife 刚试了下, APP store 的确实抓不到的,可能确实某些 APP 做了证书的限制
    Alife
    Alife
    OP
    Sep 9, 2016
    11
    @popok 是抓不到吧,但是如果是 app 做了证书检查,也不至于中间人看不到内容啊.

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

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

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

    相关资料

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

    在 Fiddler 中,点击 Tools 菜单,然后选择 Options.
    在 Options 窗口中,选择 HTTPS 选项卡,并点击 Reset All Certificates.
    关闭并重新启动 Fiddler ,然后再次配置 HTTPS 解密和证书信任。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2112 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 13:08 · PVG 21:08 · LAX 05:08 · JFK 08:08
    ♥ Do have faith in what you're doing.