新手区 [求助] Fiddler 抓不了 https 包

Heyniu · 2016年10月18日 · 最后由 gainiu 回复于 2018年08月01日 · 3099 次阅读

Fiddler 抓不了 https 包

  • 项目已从 http 转为 https
  • 各种配置都没问题
    • 能抓其他 App 的 https 包 >> 支付宝、简书、淘宝等
    • 不能抓我项目的 https 包
  • 项目的证书分别已安装在 PC 端还有手机上,还是抓不到
  • 已尝试 google 百度无果

具体表现

希望有在实际情况遇到此问题的朋友帮帮忙!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 10 条回复 时间 点赞

ALPN/spdy 协议啊,你们项目改造了吧,肯定抓不了啊。但是默认会转 http1.1。你 chrome://net-internals=>(spdy 或 http2.0) 看看。
目前没有好的抓包办法,看看最新的破解版的 charles。

Heyniu #10 · 2016年10月18日 Author

#1 楼 @lucasluo charles 可以看到请求,但是不能解密,手机已经安装了 charles 证书

你们的客户端对证书有校验吧. 你看看他们的代码里面有没有校验证书的字段吧

#3 楼 @seveniruby
客户端做了 2 件事:
1.http 切换为 https
2.接口请求时带上了证书
其他好像没改动,下午我具体了解下

我们公司的 app 之前也这样. 就是因为证书方面会有限制. 你可以用 burp suite 试试. burp 不会伪造证书, 他会重用老的证书的字段.

[Burp Suite & Charles ] HTTPS 抓包
PS:测试环境和生产环境用的证书不一样,生产环境用的证书应该严格保密的

我这边 App 的情况是这样的:

1、客户端服务端进行会话之前,客户端会对服务端下发的证书,进行验证

2、而使用 Fiddler 抓包时,是无法对服务端下发的证书进行验证的(因为 Fiddler 没有 App 的证书,Fiddler 的证书是软件自带的)

3、因此,我这边在开发和测试环境下,还提供了 1 个入口,就是客户端关闭对证书的验证,接受所有证书

4、客户端关闭证书验证之后,就可以使用 Fiddler 进行抓包了。

#5 楼 @seveniruby burp suite 也尝试了,情况与 fiddler wireshark charles 一样抓不到我们项目的 https
#6 楼 @sanlengjingvv 也看了些文章,现在大致的情况,我猜是 app 没有默认信任系统的证书,而是自定义的只信任服务器的证书。现在来说的话,只有拿到项目的证书以及密码才可能抓取到

#7 楼 @sunya 也看了 fiddler 的报错信息,以一次握手 ClientHello 就被干掉了,问过开发,他们表示不知道客户端有没对服务端下发的证书,进行验证

pass:
综上所述,这次的 https 抓包可能以失败告终,对我开展工作有一定影响

#3 楼 @seveniruby
#6 楼 @sanlengjingvv
#7 楼 @sunya
非常感谢你们的热心解答,目前问题得以解决,离不开你们的帮助
具体做法:
测试版:客户端信任所有证书,这样抓包工具的证书就会生效,可以抓到项目包
正式版:客户端只信任服务器证书,只要拿不到服务器的证书,就抓不到包
它们由一个开关来控制
over

Heyniu 关闭了讨论 10月19日 15:08

楼主,我最近抓包也遇到了同样的问题,想问一下具体做法是需要开发在客户端的项目里面添加信任证书的代码是吗?

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册