二、http[s]代理抓包
  这个方法利用在移动设备上设置代理,通过人工操作使app与服务端交互
  步骤:
  a. 在抓包机器上开启代理,测试可以用burp,需要自动化提交扫描任务可以自己写一个代理程序,移动设备设置代理服务器。

  b. 在移动设备上操作app,代理端抓取如下。

  总结:
  整个思路已经很清晰,那么其实要做的是让这个过程自动化,反编译之后有一个问题,url不一定完整,很多URL都是拼接起来的,我尝试写一套分析引擎,自动化反编译,然后通过对源码的分析,拼接完整的api url,再进行漏洞扫描。
  下图是一个dome,后面准备用python来写,放到服务器上。

  案例分享
  1、任意用户登录
  某次测试一个app,RP比较好,发现一任意用户登录漏洞。在本地的配置文件中有登录用户的帐号和密码,APP设计比较奇葩,只是验证了用户登录邮箱,没有 验证密码,导致通过修改本地的配置文件可以实现任意用户登录,登录之后能够查看别人的订单等数据。在android虚拟机中安装的app都在/data /data目录下,大概的目录结构如下:

  app安装目录下的结构都是差不多的,主要有缓存文件、数据库目录、本地文件、配置文件等。比较重要的目录有databases、shared_prefs。分别保存了数据库文件和配置文件。
  言归正传,查看了安装app的shared_prefs目录,发现其中一个文件内容如下:

  可以看到有用户的登录邮箱和密码,将邮箱修改成存在的用户邮箱,密码随意输入,然后adb shell之后,用linux命令删除android虚拟机上已经存在的配置文件,再用adb push将修改后的文件发送到android虚拟机,再打开app发现已经用其它用户成功登录了。