移动APP安全在渗透测试中的应用

       移动app安全方面的威胁主要在本地安全,比如远控、应用破解、信息窃取等等,大多人还没有关注到app服务端的安全问题,但是在这块的安全漏洞也是非常多的。

  移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起。但是移动app跟web应用在安全问题解决办法上是完全不同的。移动app一般保护方法有伪加密、代码混淆、运行时验证和apk加密。移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入、文件上传、中间件/server漏洞等,但是由于部分app不是直接嵌入网页在app中,而是使用的api接口返回josn数据,导致扫描器爬虫无法爬取链接。

  下图是抓的糗事百科糗事列表

 
移动APP安全在渗透测试中的应用_第1张图片
 

  那么我尝试去找app服务端的漏洞,目前想到的两种方法:

  1.反编译APP

  2.http[s]代理抓包

  貌似这两种方式拿到的链接都是零零散散的,不好找漏洞,我把所有抓取的链接直接提交任务到多引擎web漏洞扫描器,扫描器可以批量扫SQL注入等等,其实除了这些漏洞,还有很多可以利用的信息。

  一、反编译APP

  有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。

  1. dex2jar反编译

  工具:dex2jar+jdgui

  方法:

  a. 修改apk为zip扩展名


移动APP安全在渗透测试中的应用_第2张图片
 

  b. 解压出classes.dex文件

  c.使用dex2jar反编译(dex2jar.bat classes.dex)

 
移动APP安全在渗透测试中的应用_第3张图片
 

  最后反编译出来的源码如下图。虽然部分类被配置proguard.cfg 混淆了,但是还是可以利用的。


移动APP安全在渗透测试中的应用_第4张图片
 

  2. apktool反编译

  工具:apktool

  这个工具比较简单,直接(apktool d apkfile)就可以反编译apk文件,反编译出来的东西为smali反汇编代码、res资源文件、assets配置文件、lib库文件,我们可以直接搜索smali文件和资源文件来查找链接等。


移动APP安全在渗透测试中的应用_第5张图片
 

  利用app查找网站真实IP

  除了app服务端的漏洞,还有一个比较好玩的利用方式,通过收集app里面的子域名ip来寻找目标网站的真实IP,根据经验,大多app的接口都没有使用cdn等服务。

 
移动APP安全在渗透测试中的应用_第6张图片
 

  糗事百科真实IP


移动APP安全在渗透测试中的应用_第7张图片
 

  二、http[s]代理抓包

  这个方法利用在移动设备上设置代理,通过人工操作使app与服务端交互,

  步骤:

  a. 在抓包机器上开启代理,测试可以用burp,需要自动化提交扫描任务可以自己写一个代理程序,移动设备设置代理服务器。


移动APP安全在渗透测试中的应用_第8张图片
 

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


移动APP安全在渗透测试中的应用_第9张图片
 

  总结:

整个思路已经很清晰,那么其实要做的就是让这个过程自动化,反编译之后有一个问题,url不一定完整,很多URL都是拼接起来的,我尝试写一套分析引擎,自动化反编译,然后通过对源码的分析,拼接完整的api url,再利用漏洞分析工具进行漏洞扫描。

  下图是一个dome,后面准备用python来写,放到服务器上。


移动APP安全在渗透测试中的应用_第10张图片
 

整个过程不是非常难,移动app开发者可以看得出来app在安全方面的威胁其实还是蛮大的,不注重安全保护的话,后果你懂的。在此建议广大移动app开发者都可以去试试免费的app加密,毕竟自己开发出来的东西,都不会想要被破解。

 


你可能感兴趣的:(漏洞,加密,服务端,移动APP,应用安全)