Flutter iOS App https抓包

#0x1

工具準備:rvictl、wireshark、charles

#0x2

1、手機USB連上mac后,使用指令rvictl -s xxxx68a776da7d40789adcbf2f991c8e9345xxxx打開虛擬網絡接口rvi。

image.png

2、mac共享wifi網絡,手機鏈接共享后的wifi,訪問APP任意接口wireshark開始抓包,此步驟用來獲取APP API接口域名地址。


image.png

3、獲取到域名后,修改手機HOSTS,將該域名解析指向mac。


image.png

4、mac啟動charles,打開菜單Proxy->Reverse Proxies Settings,打開反向代理設置,添加之前wireshark抓到域名。


image.png

5、開始愉快的抓包吧!


image.png

#0x3 frida腳本(無需手動改手機hosts)

/*
*
* @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
            }))
        }
    }
})
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容