飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 36198|回复: 77

[iOS] Flutter iOS App https抓包

    [复制链接]
  • TA的每日心情
    奋斗
    2015-10-29 08:08
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2020-10-14 16:37:06 | 显示全部楼层 |阅读模式
    #0x1
    工具准备:rvictl、Wireshark、Charles


    #0x2
    1、手机USB连上mac后,使用指令rvictl -s (手机UDID)打开虚拟网络接口rvi。

    1.png

    2、macOS共享WiFi网络,手机链接共享后的wifi,访问APP任意接口Wireshark开始抓包,此步骤用来获取App API接口域名地址。

    2.png

    3、获取到域名后,修改手机hosts,将该域名解析指向macOS。

    3.png

    4、macOS启动Charles,打开菜单Proxy->Reverse Proxies Settings,打开反向代理设置,添加之前Wireshark抓到域名。

    4.png

    5、开始愉快的抓包吧!

    5.png


    #0x3 frida脚本(无需手动改手机hosts)
    [JavaScript] 纯文本查看 复制代码
    /*
    *
    * @creantan
    *
    * Example usage:
    * # frida -U -f com.xxx.yyy -l flutter_connect_.js --no-pause
    *
    */
    
    var sIP = 'xxx.xxx.xxx.xxx' //目标IP地址
    var xIP = '192.168.2.1'//代理电脑IP地址
    
    //IP字符串转int
    function ipToInt(ip){
        var  result = ip.split('.');
        return (parseInt(result[3]) << 24 
            | parseInt(result[2]) << 16
            | parseInt(result[1]) << 8
            | parseInt(result[0]));
    }
    
    //int转IP字符串
    function parseIp (number) {
      var ip = ''
      if (number <= 0) {
        return ip
      }
      const ip3 = (number << 0) >>> 24
      const ip2 = (number << 8) >>> 24
      const ip1 = (number << 16) >>> 24
      const ip0 = (number << 24) >>> 24
      ip += ip0 + '.' + ip1 + '.' + ip2 + '.' + ip3
      return ip
    }
    
    function parsePort(number) {
            return ((number & 0xFF) << 8) | ((number & 0xFF00) >> 8);
    }
    
    Interceptor.attach(Module.findExportByName(null, "connect"), {
        onEnter: function(args) {
                var fd = args[0].toInt32()
                if (Socket.type(fd) !== 'tcp')
              return;
    
                  var ipAddr = args[1].add(4)
                  var ip = parseIp(Memory.readU32(ipAddr))
                  var portAddr = args[1].add(2)
            var port = parsePort(Memory.readUShort(portAddr));
            
            //判断是否为目标地址
            if (ip === sIP) {
                    console.log("[+] connect: " +ip+ ':'+ port);
    
                    //替换IP地址为代理主机
                    Memory.writeU32(ipAddr,ipToInt(xIP))
    
                    //打印替换后地址
                    console.log(hexdump(ptr(args[1]), {
                    length: 32,
                    header: true,
                    ansi: true
                    }))
            }
        }
    })




    评分

    参与人数 8威望 +8 飘云币 +8 收起 理由
    bluesky10 + 1 + 1 PYG有你更精彩!
    AnnaLin + 1 + 1 热心分享 共同提升!
    梦幻水晶 + 1 + 1 PYG有你更精彩!
    弱口令狙击手 + 1 + 1
    fishso + 1 + 1 PYG有你更精彩!
    ahxuansheng00 + 1 + 1 PYG有你更精彩!
    zhczf + 1 + 1 PYG有你更精彩!
    tiantian89 + 1 + 1 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2024-3-12 14:50
  • 签到天数: 260 天

    [LV.8]以坛为家I

    发表于 2020-10-14 17:59:35 | 显示全部楼层
    感谢分享 !   
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2023-3-28 00:29
  • 签到天数: 1786 天

    [LV.Master]伴坛终老

    发表于 2020-10-15 02:16:42 | 显示全部楼层
    谢谢分享哦
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-5-25 10:38
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    发表于 2020-10-15 17:28:29 | 显示全部楼层
    有没有逆向Flutter相关教程。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-2-26 17:57
  • 签到天数: 171 天

    [LV.7]常住居民III

    发表于 2020-10-16 08:17:50 | 显示全部楼层
    网络抓包是个大学问,在cookie上面做文章的越来越多了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-10-19 08:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2020-10-19 08:31:51 | 显示全部楼层
    感谢楼主,学习亮
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-9 22:48
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2020-10-27 15:38:58 | 显示全部楼层
    向C版学习,水果逆向
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-6-27 14:20
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2020-10-29 12:07:25 | 显示全部楼层
    学习一下,感谢分享!!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表