V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fenglirookie
V2EX  ›  程序员

关于接口抓包

  •  
  •   fenglirookie · 2023-11-01 17:29:27 +08:00 · 2595 次点击
    这是一个创建于 387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在有一个第三方的 APP ,我现在使用 Charles 抓包工具,手机已经安装 Charles 的证书,此时我配置好之后,app 上的每一个请求 Charles 上都会有记录 但是 contents 里面全是乱码。这种情况 我查了一下资料说的是因为 APP 做了双向验证 所以 抓不聊 https 的包,想咨询一个广大 V 友,对于这个有什么解决方案吗?

    33 条回复    2023-11-15 14:51:06 +08:00
    Tamamopoi
        1
    Tamamopoi  
       2023-11-01 17:34:31 +08:00
    小黄鸟安装系统级证书可解。
    但是需要 root/虚拟机,系统证书放在/system/etc/security/cacerts ,重启后小黄鸟就能抓 https 的包了。
    cian
        3
    cian  
       2023-11-01 17:37:14 +08:00 via Android
    这个需要逆向或者 decode 证书
    libook
        4
    libook  
       2023-11-01 17:42:45 +08:00
    也可能做了二次加密,先对数据加密,然后再扔给 HTTPS 二次加密传输,这种你用 HTTPS 证书抓出来的就是第一次加密的数据,要想解密得逆向 app 程序,找到密钥和加密算法,如果此时 app 还做了安全加固,就更难了。
    CEBBCAT
        5
    CEBBCAT  
       2023-11-01 17:44:47 +08:00
    一楼说的不一定对,你现在能抓到 path 、header 吗?可以的话那说明 body 用了应用自定义的加密方式
    lxxzml
        6
    lxxzml  
       2023-11-01 17:58:03 +08:00
    我也有个 app 抓包都抓不到。小米平板 3 ,已 root ,安卓 7 系统,xposed ,justtrustme,justtrustme++都安装了,charles 里面连请求都看不到。但是 app 里面请求都成功了。可能是 sslping 的问题导致的。
    lxxzml
        7
    lxxzml  
       2023-11-01 17:58:48 +08:00
    @lxxzml charles 的证书通过 adb 也安装到系统目录下了
    Puteulanus
        8
    Puteulanus  
       2023-11-01 18:00:57 +08:00
    能看到请求应该不是双向证书验证吧,更像二次加密
    blunterry
        9
    blunterry  
       2023-11-01 19:20:26 +08:00
    微信网页版不让登录,但是客户端可以登录,是不是因为网页版存在安全漏洞,跟客户端用的不是同一个后端 api ?
    cian
        10
    cian  
       2023-11-01 19:27:35 +08:00 via Android
    逆向过很多 app ,有这方面的需求可以找我
    chairuosen
        11
    chairuosen  
       2023-11-01 19:39:25 +08:00
    也可能是类似 protobuf 的二进制序列化叙述
    renmu
        12
    renmu  
       2023-11-01 19:42:22 +08:00 via Android
    @blunterry 不是,就是微信不想让你登
    flyqie
        13
    flyqie  
       2023-11-01 19:49:10 +08:00 via Android
    @blunterry #9

    统信 uos 版了解一下。

    不是技术原因,纯商业问题。
    wangyongbo
        14
    wangyongbo  
       2023-11-01 19:56:25 +08:00
    @lxxzml 可能是这个 APP 不使用 系统代理。
    awolf
        15
    awolf  
       2023-11-01 19:57:59 +08:00
    @lxxzml 我遇到的情况是用了 flutter ,不走系统代理,所以怎么设置都不会请求代理
    guanbeilang
        16
    guanbeilang  
       2023-11-01 20:42:19 +08:00
    第一步:首先明确:是否已经可以正常抓 https 的包,如果不能,可能是根证书的安装、信任步骤没有完成
    检查方法是:打开浏览器,看一下 https 的网站打开后 Charles 中能不能看到内容。 [小概率是这个情况]

    第二步打开 App 看内容如果是加密的,有可能 App 本身对流量进行了加密(你可以抓一下微信的包试试看) [很大概率是这个情况]

    除了主动的加密,App 为了避免被抓包,可以使用 ssl pinning 方法来保护自身,现象类似断网的状态(根据 App 自身的设计,始终加载中或提示网络错误或者假死都有可能)
    BaiLinfeng
        17
    BaiLinfeng  
       2023-11-02 02:48:30 +08:00 via Android
    @Tamamopoi 小程序也可以?😎
    fenglirookie
        18
    fenglirookie  
    OP
       2023-11-02 09:58:23 +08:00
    @Puteulanus 能看到请求,但是请求的 contents 里面全是乱码,这种是不是就要逆向 APP 拿到解密算法呀?
    fenglirookie
        19
    fenglirookie  
    OP
       2023-11-02 10:04:55 +08:00
    @zh826256645 看了 写的很详细,但是我主营业能力是 JavaScript 所以 其实没看懂
    fenglirookie
        20
    fenglirookie  
    OP
       2023-11-02 10:10:34 +08:00
    @Tamamopoi 小黄鸟是什么?
    fenglirookie
        21
    fenglirookie  
    OP
       2023-11-02 10:13:17 +08:00
    @fenglirookie
    @Tamamopoi 哦 查看到了
    liaoyuan6666
        22
    liaoyuan6666  
       2023-11-02 10:28:24 +08:00
    是乱码,说明 APP 进行了加密
    fenglirookie
        23
    fenglirookie  
    OP
       2023-11-02 10:57:03 +08:00
    @liaoyuan6666 那就是要反编译 解密 APP 了哇?
    lxxzml
        24
    lxxzml  
       2023-11-02 11:04:54 +08:00
    @cian 老哥,看到留个联系方式,我加你
    lxxzml
        25
    lxxzml  
       2023-11-02 11:09:42 +08:00
    @wangyongbo 不是,有的请求能抓到,有的请求抓不到,只能看到给 umeng 发的打点日志。
    cian
        26
    cian  
       2023-11-02 11:38:16 +08:00 via Android
    @lxxzml vx: d2ViM3d1bWluZw==
    Puteulanus
        27
    Puteulanus  
       2023-11-02 13:02:17 +08:00
    @fenglirookie 应该是要
    fenglirookie
        28
    fenglirookie  
    OP
       2023-11-02 13:33:34 +08:00
    @Puteulanus 好的 谢谢啦
    liuidetmks
        29
    liuidetmks  
       2023-11-02 13:53:05 +08:00
    国内环境这么恶劣,加密,sslpin 是基操了
    xchaoinfo
        30
    xchaoinfo  
       2023-11-02 17:23:03 +08:00
    可以给个 app 下载链接,我手上有配置好的抓包设备。
    fenglirookie
        31
    fenglirookie  
    OP
       2023-11-06 14:55:13 +08:00
    xchaoinfo
        32
    xchaoinfo  
       2023-11-08 11:02:04 +08:00
    @fenglirookie 是第三方的服务开启了 SSL 的验证,但是该 app 本身登录等动作没有验证

    ```
    POST https://xxxxx/app/newUser/login HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 424
    Host: xxxxx
    Connection: Keep-Alive
    Accept-Encoding: gzip
    User-Agent: okhttp/4.7.2
    URLEncoded form

    mtoken: 60be9c45fxxxxx
    deviceStr: 46bd7fc2c08c8fab201b1f67fxxxxxx
    downloadSrc: yingyongbao
    android_version: 30
    manufacturer: 21091116AC
    cpu_abi: arm64-v8a
    nickname: 爱美的臭 xxx
    oaid: d1f5b8b7f32c9xxx
    aaid: 1b8ad251-e54d-465b-92dc-2a58a9xxxx
    vaid: d2d3d1c763exxx
    device: 3
    version: 11015
    apkVersion: 11.0.1.5
    isEnglish: 0
    requestTimestamp: 1699411604769
    key: b08bcf1a3bfe676e338946e864xxxxx
    ```
    fenglirookie
        33
    fenglirookie  
    OP
       2023-11-15 14:51:06 +08:00
    @xchaoinfo 你这是用什么抓的哟
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2782 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:50 · PVG 20:50 · LAX 04:50 · JFK 07:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.