美团 APP 抓不到包

2020-02-06 10:04:43 +08:00
 MrhuangSTR

1.目标数据是美团 APP 的超市 /便利店几个地方的店铺和店铺详情数据;

2.用 MuMu 模拟器打开 APP 设置好代理使用 Charles 抓包完全是抓不到店铺的包, 还出现请求 /unknow 的情况,搜索说是证书的原因;

3.后来改用 mitmweb 抓,MuMu 模拟器装上 mitmproxy 的 CA 证书,一开始能抓到有关店铺的 API,后来改地址重新定位就抓不到了;

4.再后来试了下 Xposed+Just True Me 在模拟器上试还是抓不到

5.美团 APP 是有自己的协议吗?这种情况下如何抓包呢

13113 次点击
所在节点    Python
40 条回复
explorerEX
2020-02-06 12:18:09 +08:00
我也遇到过,甚至检测到后台抓包代理服务器直接拒绝响应了,app 直接断网,有大佬点拨下这是什么情况吗?
sobigfish
2020-02-06 12:51:53 +08:00
SSL Pinning / HTTP Public Key Pinning (HPKP)
bazingaterry
2020-02-06 12:55:15 +08:00
美团点评移动端都套了一层私有协议的
gunavy
2020-02-06 13:32:21 +08:00
美团 iOS 两年前抓过,现在不知道有没有加 Pin
HFcbyqP0iVO5KM05
2020-02-06 13:34:23 +08:00
试试关键词 SSL PINNING
HFX3389
2020-02-06 13:42:48 +08:00
如果有结果了烦请大佬艾特回我一下,我想学习学习
Artail
2020-02-06 14:09:55 +08:00
美团 App 里面有一部分的 API 走的不是传统的 HTTP,是特定的一种二进制协议。如果你抓的恰好是这个,那还真的抓不到。
odirus
2020-02-06 14:19:41 +08:00
@bazingaterry
@Artail

感谢,原来如此
herozzm
2020-02-06 14:22:57 +08:00
@Artail 这种二进制为了防抓包?
muzuiget
2020-02-06 14:28:11 +08:00
对方写死 IP 地址,HTTP/HTTPS 客户端直连你怎么配代理也没有,这种情况就应该先用 wireshark 抓包观察下都和哪些 IP 通信,都用了什么协议,然后再定点爆破。比如对方做了能无视系统代理的手段,那就想把法把 HTTPS 客户端的交换密钥导出来,在 wireshark 里解密查看。
ChangQin
2020-02-06 15:22:52 +08:00
有可能是别的协议
tolbkni
2020-02-06 15:26:52 +08:00
通过 VPN 模式来抓包,这样应该无法被客户端忽略,跟普通的 HTTP 代理不同。
heart4lor
2020-02-06 15:49:28 +08:00
做了 SSL Pinning,可以参考我这篇博客 https://www.sunyongfei.cn/archives/213/
lizhuoli
2020-02-06 19:48:53 +08:00
现在很多大厂都是走了 Protobuf 接口了吧,虽然是 HTTPS 能拿到明文,但是 Protobuf 本身是二进制数据,没有 meta 你也猜不到是什么数据结构
bobuick
2020-02-06 20:45:32 +08:00
美团好像有些 app 是用的长连自己的协议,不是 http 也不是 https。以前有同事在那边做过类似架构
lushan
2020-02-07 12:15:42 +08:00
尝试一下 wireshark 和 科莱网络分析工具
MrhuangSTR
2020-02-07 14:46:39 +08:00
@CY4suncheng

@lushan 正打算用 wireshark 来看看
MrhuangSTR
2020-02-07 14:56:21 +08:00
@sobigfish
@gulu
搜了一下 SSL Pinning : "SSL Pinning 是一种防止中间人攻击( MITM )的技术,主要机制是在客户端发起请求–>收到服务器发来的证书进行校验,如果收到的证书不被客户端信任,就直接断开连接不继续请求。",一些解决方案诸如用安卓 7 一下的版本(我的 MuMu 模拟器是安卓 6),使用 Xposed+Trust Me 但依然抓不到;将抓包工具的证书直接安装到系统根目录中还没试过
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 跑的。
doggielovelilyc
270 天前
美团,大众点评是自由协议,逆向 apk 后就知道了,可以通过 hook 方法实现抓取

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/642451

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX