以往安全爱好者研究的往往是关注app的本地安全,比如远控、应用破解、信息窃取等等,大多人还没有关注到app服务端的安全问题,于是在这块的安全漏洞非常多。
移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起。移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入、文件上传、中间件/server漏洞等,但是由于部分app不是直接嵌入网页在app中,而是使用的api接口返回josn数据,导致扫描器爬虫无法爬取链接。
ios的话无法做到反编译,因此一般会借助反汇编工具,比如IDA,越狱后的环境的话,会借助ida、classdump等辅助工具,方便利用应用的逻辑进行分析。
android更多的是先进行反编译,apktool、dex2jar和jd-gui的组合。在android apk安全检测的时候我一般是这个思路:先看一下是不是加壳的,如果是的话会对apk尝试脱壳,然后通过反汇编、反编译工具得到汇编代码或反编译代码,然后根据特征定位代码位置,然后结合上下文分析,有时候可能要动态调试。
以下是个人总结的app反编译思路以及工具的使用:
脱壳的话可以使用dexhunter,Android通用脱壳工具DexHunter是2015年下半年,大牛 zyqqyz最先在看雪论坛放出来的,见《Android dex文件通用自动脱壳器》这篇文章的说明。
反编译流程:
一,apk反编译得到程序的源代码、图片、XML配置、语言资源等文件
下载apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.j