Charles+frida抓包闲鱼APP

发表于:2023-7-19 09:45

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:阿涛456    来源:知乎

  安装夜神模拟器并配置代理
  下载夜神模拟器,按照指引安装即可。会默认创建android7的模拟器;
  配置网络代理,ip地址可以在本机cmd里输入 ipconfig查看,例如我的是192.168.31.255;
  打开WLAN配置,长按WiredSSID,选择修改网络,弹出配置页面,配置如下:
  配置ip地址+端口号,这样,模拟器里的请求会被代理到本机的charles 8888 端口上。
  安装Charles证书到模拟器系统证书目录
  从本机证书管理中导出charles证书
  Win+R输入 certmgr.msc,打开证书管理器,如下图所示:
  找到charles的证书,右键-》所有任务-》导出,过程如下:
  使用openssl获取证书hash值
  使用xftp把bbbb.cert上传到linux系统中,使用如下命令获取hash值:
  openssl x509 -subject_hash_old -in bbbb.cer #拿到证书到md5值(8位)
  例如我的是:13b412fa
  重命名证书文件问hash.0
  将本机的证书文件重名为为13b412fa.0
  推送证书文件hash.0到模拟器系统证书目录
  D:\Program Files\Nox\bin>  ## 模拟器安转目录下
  .\nox_adb push E:\13b412fa.0 /system/etc/security/cacerts/13b412fa.0
  权限问题解决办法:
  .\nox_adb shell
  mount -o rw,remount -t auto /system ## 这个操作完后再push
  安装本地frida环境
  1、安装python 2、安装Frida
  pip install frida-tools # CLI tools
  pip install frida       # Python bindings
  frida-ps -U ## 验证安装
  如果出现frida命令不可用,可以找到frida的安装目录,配置到环境变量path中。
  部署frida-server到模拟器
  这步之前先去下载并安装闲鱼app到模拟器。
  去下载frida-server-16.0.10-android-x86.xz
  解压后push到模拟器内部并启动:
  .\nox_adb push E:\frida-server-16.0.10-android-x86 /data/local/tmp/
  .\nox_adb shell
  su
  /data/local/tmp/frida-server-16.0.10-android-x86 ## 启动命令
  验证安装,新开一个cmd窗口,
  frida-ps -U
  结果如下图:
  可以看到模拟器内部已经启动的闲鱼APP
  使用Frida+Python脚本强制关闭spdy协议
  原理:在判断是否走spdy协议的时候增加hook,都返回false,强制走https协议
  脚本内容如下,在本地环境执行即可:
  mport frida, sys
  def on_message(message, data):
      print("[%s] => %s" % (message, data))
  pid = 0
  device = frida.get_usb_device(1000)
  process = device.enumerate_processes()
  for data in process:
      print(data)
      if data.name == "闲鱼":
          pid = data.pid
          break
  session = device.attach(pid)
  uuid = '''
      Java.perform(
          function(){
                  console.log("############################ Frida 开启 ############################");
                  var session = Java.use("mtopsdk.mtop.global.SwitchConfig");
                  if (session != undefined) {
                      console.log(`------>定位到类名: ${session}`);
                      session.A.implementation = function(){
                          console.log(`------>定位到函数: is_enableSpdy`);
                          return false;
                          }
                  };
          }
      )
  '''
  script = session.create_script(uuid)
  script.on('message', on_message)
  script.load()
  sys.stdin.read()
  再看抓包效果
  在闲鱼APP上进行一些操作,抓包结果如下图:
  好了,请求我们已经抓到了,接下来是工具话,以到达批量抓取的目的,对此你有什么好的方案吗? 
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号