抓包淘宝APP HTTPS请求2022最新多种方法

抓一下淘宝App的HTTPS请求。到目前为止非常坎坷。

之前抓小红书App的时候,也折腾过类似的事情。解决了几个问题:

  • 抓包工具:MITMProxy
  • 手机端的强制代理:ProxyDroid的全局模式。因为有些App会检测是否有代理,所以必须强制走iptables流量。Droni也可以。
  • SSLPinning:用了SSLUnpinning + Taichi。

用了以上的方法,愉快的抓取了非常多的信息,比较稳定。

但是今天用了同样的方法去抓淘宝App,怎么都搞不定。别说抓包了,连走代理都不行,连都连不上。记录一下遇到的问题和解决方法。问题依次是:

  1. 想要抓包淘宝App,首先要解决阿里系私有协议的问题。据各路文章,阿里用的是私有的协议Spdy。所以要使用一个hook来把是否使用spdy这个选项改为false。(参考1)
  2. 要达到这个方法,就需要用到xposed或者frida的方法。
    1. xposed之前有用过。查了一下,有人已经给出了代码。(参考2)代码链接(https://github.com/zhaoboy9692/me-tools)。不过下载安装到Taichi之后不起作用。Taichi显示无法运行这个module。
      1. 中间还花了些时间来研究xposed教程,尝试自己写。结果发现原来xposed基本上就是一个java写的app,不懂基础概念,超出能力了。算了。
    2. 转去理解frida。
      1. 第一次听说frida,简单理解了下,就是frida不止在安卓,在各个系统上都可以运行,基本上就是一个在线hook的工具。和xposed的区别就是xposed模块可以一劳永逸带着走,frida则需要联机使用。但足够灵活。分为控制端(一般是PC)和被控制端(一般是手机)。控制端支持Python/Java。被控制端是一个server端接受指令。(参考3、4)
      2. 研究阿里系并且提到Frida的文章不少。我主要跟着参考5。
      3. 理解了Frida,我用的时候遇到了几个问题:端口转发的问题和权限的问题。
    3. 解决完了Frida,淘宝还是连不上数据,总显示网络故障。我以为是代理服务器的问题。研究了下MITMProxy,终于还是确认ProxyDroid和Droni都没问题。因为小红书就很好。
    4. 继续研究,找到了这篇文章很好:参考10总结了不少抓包的问题和解决方法。简单来说,抓不到有几个可能:
      1. App自己不走代理,哪怕你设了代理。这种就只能强制走代理。
      2. App自己不信任用户证书,只信任系统证书
      3. App自己连系统证书也不信任,只信任特定证书。SSLPinning的问题。
    5. 觉得是SSLPinning的问题。先用了UNPinningSSL,不解决问题。于是想把证书放在系统级下面。
      1. 尝试自己改名,adb push等等。结果又遇到了权限问题,卡在了这里。Android 10以上无法修改/system了,哪怕root也不行。连adb disable-verity也执行不了。
      2. 权限问题这几个文章讨论的比较好:参考21/22。看到的唯一可能是用Magisk Module来做。先park在这里,再去研究下。

神奇,更新!

刚写完上面,5分钟后看到一个文章,提到了Move Certificates这个Magisk Modules,能够把user certificates移动到系统certificates。试了一下,成功了!可以顺利抓包了

附录

import frida
rdev = frida.get_remote_device()
processes = rdev.enumerate_processes()
for process in processes:
print process

参考

  1. 解决淘宝、闲鱼等淘系App无法抓包问题 – iamSummi – 程序员ITS500(https://www.its500.com/article?url=Summi/p/14491808.html)
  2. 淘宝系抓包hook模块(淘宝系抓包hook模块_哈里哈气的博客-CSDN博客_frida spdy)
  3. 一篇文章带你领悟Frida的精髓(基于安卓8.1)(frida-all-in-one/READMD.md at master · hookmaster/frida-all-in-one · GitHub)
  4. FRIDA实践(FRIDA实践 - 简书)
  5. 抓包:淘宝、支付宝(抓包:淘宝、支付宝 | 小歪的博客)
  6. 淘宝系抓包hook模块(https://blog.csdn.net/zhangmiaoping23/article/details/105827285?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ETopBlog-1.topblog&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ETopBlog-1.topblog&utm_relevant_index=1)
  7. XPosed+Charles抓包淘宝App(https://www.jianshu.com/p/7df2d305f0c1)
  8. 在使用frida hook的时候报错(在使用frida hook的时候报错 - 简书)
  9. Android hook神器frida(二)(Android hook神器frida(二) - bamb00 - 博客园)
  10. 大型 App抓不到包?app抓包 抓不到评论(https://www.lanbu.net/d/244)
  11. 某些app无法抓包问题(https://blog.csdn.net/qq_40157234/article/details/103760612)
  12. mtopsdk(淘宝系android app使用的sdk)强迫请求通过代理进行抓包(mtopsdk(淘宝系android app使用的sdk)强迫请求通过代理进行抓包_深入浅出信息安全的博客-CSDN博客_mtopsdk)
  13. Android 7.0 Https抓包单双向验证解决方案汇总(Android 7.0 Https抓包单双向验证解决方案汇总 - 猿人学Python爬虫)
  14. Android抓包攻防技术(Android抓包攻防技术 - 先知社区)
  15. 部分应用不能抓包的原因(部分APP无法代理抓包的原因及解决方法(flutter 抓包) - lulianqi15 - 博客园)
  16. App绕过SSL Pinning机制抓取Https请求(https://www.cnblogs.com/yyoba/p/12370510.html)
  17. Android应用中https SSL pinning以及绕过的方法介绍(https://zhuanlan.zhihu.com/p/127847550)
  18. adb安装CA证书(https://www.cnblogs.com/yumoblogs/p/14773298.html)
  19. 制作证书的方法(adb shell安装证书/修改证书到系统级/ - 小君~ - 博客园)
  20. 把 charles,Fiddler 证书安装到安卓根目录,解决安卓微信 7.0 版本以后安装证书也无法抓包问题,需要 root(把 charles,Fiddler 证书安装到安卓根目录,解决安卓微信 7.0 版本以后安装证书也无法抓包问题,需要 root · TesterHome)
  21. How to disable dm-verity on Android with “user” build type ROM?(https://android.stackexchange.com/questions/215800/how-to-disable-dm-verity-on-android-with-user-build-type-rom)
  22. https://gist.github.com/pwlin/8a0d01e6428b7a96e2eb

你可能感兴趣的:(协议,android,服务器,运维)