首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 187 天前 · 6837 次点击
    这是一个创建于 187 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    @n329291362 了解了
    odirus
        19
    odirus   187 天前
    我再咨询一个问题

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

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

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

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