推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
MrhuangSTR
V2EX  ›  Python

美团 APP 抓不到包

  •  
  •   MrhuangSTR · Feb 6, 2020 · 15601 views
    This topic created in 2462 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    40 replies  •  2024-04-02 21:43:08 +08:00
    ai277014717
    ai277014717
    Feb 6, 2020
    1
    应该要 hook 掉证书校验的 api
    yalin
    yalin
    Feb 6, 2020
    2
    美团有证书验证吧
    odirus
    odirus
    Feb 6, 2020
    3
    我感觉 iOS 抓包省心很多
    MrhuangSTR
    MrhuangSTR
    OP
    Feb 6, 2020
    4
    @ai277014717 这是要脱壳吗...
    MrhuangSTR
    MrhuangSTR
    OP
    Feb 6, 2020
    5
    @yalin 按理说 Xposed+Just True Me 这个应该可以绕过证书验证的啊
    xi_lin
    xi_lin
    Feb 6, 2020
    6
    @odirus 有证书验证的话 iOS 也抓不了
    MrhuangSTR
    MrhuangSTR
    OP
    Feb 6, 2020
    7
    @odirus 我去试试
    zhangyiming
    zhangyiming
    Feb 6, 2020 via Android❤️1
    8
    安卓 root 以后,把证书 push 进根证书区
    dearmymy
    dearmymy
    Feb 6, 2020
    9
    @xi_lin 越狱,装 sslkill 插件。ios 能用的黑科技少点,要不上不了架。还是 ios 方便
    odirus
    odirus
    Feb 6, 2020
    10
    我自己试了一下,应该是有部分抓不到,对客户端知之甚少,听各位大佬分析
    xi_lin
    xi_lin
    Feb 6, 2020
    11
    @dearmymy 我赞同 iOS 上黑科技能用的少一些这个说法。另外,不越狱也能用 objection 注入 hook,需要重签名。
    但是一般的话 Android 上 Xposed 方案我觉得可能更方便一些。
    Clay0620
    Clay0620
    Feb 6, 2020
    12
    Android 6 以上,https 抓包需要在 App 端内置证书,找个 5 系统的手机试试
    kerro1990
    kerro1990
    Feb 6, 2020
    13
    app 内置证书抓不到
    lengjingxu
    lengjingxu
    Feb 6, 2020
    14
    换美团的 h5 版本呢? http://i.meituan.com/
    odirus
    odirus
    Feb 6, 2020
    15
    @kerro1990 @xi_lin

    各位大佬,请问 “app 内置证书抓不到” 这个说法是用到了哪方面的知识点呢,想学习一下。

    以前我发现有些软件不到包,是因为程序内部的 http client 可能没有实现代理功能,也就是说即使设置了代理,程序会这条规则。后面我用的是 Stream 这类软件(信任了自签发的证书),发现大部分的包都可以抓了。

    如果按照我的理解,app 验证证书就无法抓包的话,一旦我使用了 stream 这类软件并使用自签名证书,stream 无法抓到包,那 APP 也应该无法继续收到请求响应了,但我今天开启了 stream 之后 APP 依然是可以显示搜索结果的,这个地方就很疑惑了...
    hshpy
    hshpy
    Feb 6, 2020
    16
    iOS 可以抓,要到系统设置,通用,关于,证书信任设置再信任一次证书
    n329291362
    n329291362
    Feb 6, 2020
    17
    大众点评客户端不是 http 协议
    美团可能也不是
    用 wireshark 看看呗
    odirus
    odirus
    Feb 6, 2020
    18
    @hshpy 我就是用的这种方式,我看了一下电影板块里面的猫眼数据是可以看到完整 API 响应的。主页搜索是看不到的

    @n329291362 了解了
    odirus
    odirus
    Feb 6, 2020
    19
    我再咨询一个问题

    如果我用了 stream 这类软件,并且在系统里面信任了证书( iOS,Android 我知道有个版本问题),代码里面是否可以看出我用的自签发证书而拒绝响应呢?

    我们再测试过程中用抓包软件比较多,所以想了解得多一些,感谢各位了。
    n329291362
    n329291362
    Feb 6, 2020
    20
    @odirus 忘了说 他们还是有些页面走的 http 协议的 不过不多
    拒绝响应的话 你的客户端应该打不开页面 并且抓包软件里是 unknow
    没记错的话
    explorerEX
    explorerEX
    Feb 6, 2020
    21
    我也遇到过,甚至检测到后台抓包代理服务器直接拒绝响应了,app 直接断网,有大佬点拨下这是什么情况吗?
    run2
    run2
    Feb 6, 2020
    22
    SSL Pinning / HTTP Public Key Pinning (HPKP)
    bazingaterry
    bazingaterry
    Feb 6, 2020
    23
    美团点评移动端都套了一层私有协议的
    gunavy
    gunavy
    Feb 6, 2020
    24
    美团 iOS 两年前抓过,现在不知道有没有加 Pin
    HFcbyqP0iVO5KM05
    HFcbyqP0iVO5KM05
    Feb 6, 2020 via Android
    25
    试试关键词 SSL PINNING
    HFX3389
    HFX3389
    Feb 6, 2020
    26
    如果有结果了烦请大佬艾特回我一下,我想学习学习
    Artail
    Artail
    Feb 6, 2020
    27
    美团 App 里面有一部分的 API 走的不是传统的 HTTP,是特定的一种二进制协议。如果你抓的恰好是这个,那还真的抓不到。
    odirus
    odirus
    Feb 6, 2020
    28
    @bazingaterry
    @Artail

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

    @lushan 正打算用 wireshark 来看看
    MrhuangSTR
    MrhuangSTR
    OP
    Feb 7, 2020
    38
    @sobigfish
    @gulu
    搜了一下 SSL Pinning : "SSL Pinning 是一种防止中间人攻击( MITM )的技术,主要机制是在客户端发起请求–>收到服务器发来的证书进行校验,如果收到的证书不被客户端信任,就直接断开连接不继续请求。",一些解决方案诸如用安卓 7 一下的版本(我的 MuMu 模拟器是安卓 6),使用 Xposed+Trust Me 但依然抓不到;将抓包工具的证书直接安装到系统根目录中还没试过
    Artail
    Artail
    Feb 16, 2020
    39
    @herozzm 我个人的理解是目的有两个:1、framework 级别对数据类型做保护,就是如果这里表明类型是 int,却给个 string,framework 会直接把保护做掉,业务侧就不必在做更多级别的判断。2、这个不是基于 HTTP 做的,直接在 TCP 层往上做掉的,这样做可能性能会更优。数据交互都是二进制,一方面数据会更安全,另一方面,速度会更快,之前我试过一个 90 KB 大小的网络请求,进行反序列化的时候,JSON 差不多接近 3s 的耗时,美团这套二进制差不多 0.8 左右。这个数据可能有所波动。我用 15mid 15inch 的 MBP 的 iOS Simulator 跑的。
    doggielovelilyc
    doggielovelilyc
    Apr 2, 2024
    40
    美团,大众点评是自由协议,逆向 apk 后就知道了,可以通过 hook 方法实现抓取
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 451ms · UTC 21:12 · PVG 05:12 · LAX 13:12 · JFK 16:12
    ♥ Do have faith in what you're doing.