美团 APP 抓不到包 - V2EX
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 2020-02-06 10:04:43 +08:00 13948 次点击
    这是一个创建于 2082 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

    @n329291362 了解了
    odirus
        19
    odirus  
       2020-02-06 12:10:16 +08:00
    我再咨询一个问题

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

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

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

    @lushan 正打算用 wireshark 来看看
    MrhuangSTR
        38
    MrhuangSTR  
    OP
       2020-02-07 14:56:21 +08:00
    @sobigfish
    @gulu
    搜了一下 SSL Pinning : "SSL Pinning 是一种防止中间人攻击( MITM )的技术,主要机制是在客户端发起请求>收到服务器发来的证书进行校验,如果收到的证书不被客户端信任,就直接断开连接不继续请求。",一些解决方案诸如用安卓 7 一下的版本(我的 MuMu 模拟器是安卓 6),使用 Xposed+Trust Me 但依然抓不到;将抓包工具的证书直接安装到系统根目录中还没试过
    Artail
        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 跑的。
    doggielovelilyc
        40
    doggielovelilyc  
       2024-04-02 21:43:08 +08:00
    美团,大众点评是自由协议,逆向 apk 后就知道了,可以通过 hook 方法实现抓取
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2653 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 08:12 PVG 16:12 LAX 01:12 JFK 04:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86