1.目标数据是美团 APP 的超市 /便利店几个地方的店铺和店铺详情数据;
2.用 MuMu 模拟器打开 APP 设置好代理使用 Charles 抓包完全是抓不到店铺的包, 还出现请求 /unknow 的情况,搜索说是证书的原因;
3.后来改用 mitmweb 抓,MuMu 模拟器装上 mitmproxy 的 CA 证书,一开始能抓到有关店铺的 API,后来改地址重新定位就抓不到了;
4.再后来试了下 Xposed+Just True Me 在模拟器上试还是抓不到
5.美团 APP 是有自己的协议吗?这种情况下如何抓包呢
1 ai277014717 2020-02-06 10:10:04 +08:00 应该要 hook 掉证书校验的 api |
![]() | 2 yalin 2020-02-06 10:11:46 +08:00 美团有证书验证吧 |
![]() | 3 odirus 2020-02-06 10:19:39 +08:00 我感觉 iOS 抓包省心很多 |
![]() | 4 MrhuangSTR OP @ai277014717 这是要脱壳吗... |
![]() | 5 MrhuangSTR OP @yalin 按理说 Xposed+Just True Me 这个应该可以绕过证书验证的啊 |
![]() | 7 MrhuangSTR OP @odirus 我去试试 |
8 sunzongzheng 2020-02-06 10:34:39 +08:00 via Android ![]() 安卓 root 以后,把证书 push 进根证书区 |
![]() | 10 odirus 2020-02-06 10:48:27 +08:00 我自己试了一下,应该是有部分抓不到,对客户端知之甚少,听各位大佬分析 |
![]() | 11 xi_lin 2020-02-06 11:00:03 +08:00 @dearmymy 我赞同 iOS 上黑科技能用的少一些这个说法。另外,不越狱也能用 objection 注入 hook,需要重签名。 但是一般的话 Android 上 Xposed 方案我觉得可能更方便一些。 |
![]() | 12 Clay0620 2020-02-06 11:04:14 +08:00 Android 6 以上,https 抓包需要在 App 端内置证书,找个 5 系统的手机试试 |
13 kerro1990 2020-02-06 11:06:14 +08:00 app 内置证书抓不到 |
14 lengjingxu 2020-02-06 11:15:52 +08:00 换美团的 h5 版本呢? http://i.meituan.com/ |
![]() | 15 odirus 2020-02-06 11:53:55 +08:00 @kerro1990 @xi_lin 各位大佬,请问 “app 内置证书抓不到” 这个说法是用到了哪方面的知识点呢,想学习一下。 以前我发现有些软件不到包,是因为程序内部的 http client 可能没有实现代理功能,也就是说即使设置了代理,程序会这条规则。后面我用的是 Stream 这类软件(信任了自签发的证书),发现大部分的包都可以抓了。 如果按照我的理解,app 验证证书就无法抓包的话,一旦我使用了 stream 这类软件并使用自签名证书,stream 无法抓到包,那 APP 也应该无法继续收到请求响应了,但我今天开启了 stream 之后 APP 依然是可以显示搜索结果的,这个地方就很疑惑了... |
![]() | 16 hshpy 2020-02-06 11:56:11 +08:00 iOS 可以抓,要到系统设置,通用,关于,证书信任设置再信任一次证书 |
![]() | 17 n329291362 2020-02-06 12:06:02 +08:00 大众点评客户端不是 http 协议 美团可能也不是 用 wireshark 看看呗 |
![]() | 18 odirus 2020-02-06 12:07:56 +08:00 |
![]() | 19 odirus 2020-02-06 12:10:16 +08:00 我再咨询一个问题 如果我用了 stream 这类软件,并且在系统里面信任了证书( iOS,Android 我知道有个版本问题),代码里面是否可以看出我用的自签发证书而拒绝响应呢? 我们再测试过程中用抓包软件比较多,所以想了解得多一些,感谢各位了。 |
![]() | 20 n329291362 2020-02-06 12:14:59 +08:00 |
21 explorerEX 2020-02-06 12:18:09 +08:00 我也遇到过,甚至检测到后台抓包代理服务器直接拒绝响应了,app 直接断网,有大佬点拨下这是什么情况吗? |
![]() | 22 run2 2020-02-06 12:51:53 +08:00 SSL Pinning / HTTP Public Key Pinning (HPKP) |
23 bazingaterry 2020-02-06 12:55:15 +08:00 美团点评移动端都套了一层私有协议的 |
![]() | 24 gunavy 2020-02-06 13:32:21 +08:00 美团 iOS 两年前抓过,现在不知道有没有加 Pin |
25 HFcbyqP0iVO5KM05 2020-02-06 13:34:23 +08:00 via Android 试试关键词 SSL PINNING |
![]() | 26 HFX3389 2020-02-06 13:42:48 +08:00 如果有结果了烦请大佬艾特回我一下,我想学习学习 |
![]() | 27 Artail 2020-02-06 14:09:55 +08:00 美团 App 里面有一部分的 API 走的不是传统的 HTTP,是特定的一种二进制协议。如果你抓的恰好是这个,那还真的抓不到。 |
![]() | 28 odirus 2020-02-06 14:19:41 +08:00 |
![]() | 30 muzuiget 2020-02-06 14:28:11 +08:00 对方写死 IP 地址,HTTP/HTTPS 客户端直连你怎么配代理也没有,这种情况就应该先用 wireshark 抓包观察下都和哪些 IP 通信,都用了什么协议,然后再定点爆破。比如对方做了能无视系统代理的手段,那就想把法把 HTTPS 客户端的交换密钥导出来,在 wireshark 里解密查看。 |
![]() | 31 ChangQin 2020-02-06 15:22:52 +08:00 有可能是别的协议 |
32 tolbkni 2020-02-06 15:26:52 +08:00 通过 VPN 模式来抓包,这样应该无法被客户端忽略,跟普通的 HTTP 代理不同。 |
![]() | 33 heart4lor 2020-02-06 15:49:28 +08:00 做了 SSL Pinning,可以参考我这篇博客 https://www.sunyongfei.cn/archives/213/ |
34 lizhuoli 2020-02-06 19:48:53 +08:00 via iPhone 现在很多大厂都是走了 Protobuf 接口了吧,虽然是 HTTPS 能拿到明文,但是 Protobuf 本身是二进制数据,没有 meta 你也猜不到是什么数据结构 |
35 bobuick 2020-02-06 20:45:32 +08:00 美团好像有些 app 是用的长连自己的协议,不是 http 也不是 https。以前有同事在那边做过类似架构 |
![]() | 36 lushan 2020-02-07 12:15:42 +08:00 尝试一下 wireshark 和 科莱网络分析工具 |
![]() | 37 MrhuangSTR OP |
![]() | 38 MrhuangSTR OP |
![]() | 39 Artail 2020-02-16 15:03:59 +08:00 @herozzm 我个人的理解是目的有两个:1、framework 级别对数据类型做保护,就是如果这里表明类型是 int,却给个 string,framework 会直接把保护做掉,业务侧就不必在做更多级别的判断。2、这个不是基于 HTTP 做的,直接在 TCP 层往上做掉的,这样做可能性能会更优。数据交互都是二进制,一方面数据会更安全,另一方面,速度会更快,之前我试过一个 90 KB 大小的网络请求,进行反序列化的时候,JSON 差不多接近 3s 的耗时,美团这套二进制差不多 0.8 左右。这个数据可能有所波动。我用 15mid 15inch 的 MBP 的 iOS Simulator 跑的。 |
40 doggielovelilyc 2024-04-02 21:43:08 +08:00 美团,大众点评是自由协议,逆向 apk 后就知道了,可以通过 hook 方法实现抓取 |