Android应用测试基础知识和代理抓包
The following article is from 灼剑安全团队 Author 1e0n
点击上方蓝字关注我们
0x01 什么是APK文件?
APK是(AndroidPackage)的缩写,也就是我们安卓软件应用文件标准扩展名,我们只需要在安卓手机或者安卓模拟器中安装运行即可。APK实际上也是一个ZIP的文件,最简单的方式可以将文件重命名为.zip,然后用解压工具解压查看。
1.1 APK文件的基本内容
这里我们去随便下载一个安卓应用程序打开看看。
(1)AndroidManifest.xml
AndroidManifest的官方解释是应用清单,文件中包括软件的各种配置信息,在每个应用的根目录下必须包含它,并且名字得一模一样。其中还有很多的应用组件描述、声明、需要用到的库等等信息。如果觉得很难理解的话,可以暂时将它理解为类似网页源代码中包含的JS代码(当然并不准确)。官方示例文件代码如下:
(2)assets文件夹
assets文件夹下包括应用程序可能需要的任何其他文件。这些文件最后会被原封不动的打包在APK文件中,应用程序想要去使用它就必须要指定文件路径和文件名。其中的文件并不会被编译,而是会直接部署,并且只能通过流的形式读取;
(3)com文件夹
com文件夹也是一个包文件,其实质上是一个文件夹,在它之下的文件夹也是包文件,存放对应功能的类代码;
(4)lib文件夹
lib文件夹下主要存放的是一些系统的库文件,如.so结尾的文件。
(5)META-INF文件夹
META-INF文件夹下存放着程序入口的相关信息,每个jar程序都会存在这个文件夹。其中的MANIFEST.mf文件,是jar打包时自动生成的。
(6)res文件夹
res文件夹下存放着项目中所有的资源文件,安卓应用需要的资源文件都会从这个文件夹下的各个子文件夹中去调用。具体的一些细节暂时不用太过关注。
(7)src文件夹
src文件夹下存放着所有的java源程序。(有java基础的师傅可以研究下)
小结:这只是其中一部分文件或文件夹的粗略解释,还有很多内容要系统的学起来比较耗时耗力,建议遇到的时候,现学,哈哈。
0x02 像网页一样使用burpsuite抓包
首先需要用到的是一个安卓模拟器,只要能够成功运行安卓应用即可,我这里图方便直接用的夜神模拟器。
模拟器的安装过程可以自行百度,安装完成后。本来是应该安装一个APK文件来进行测试的,为避免相关问题。这里直接抓取浏览器的网页内容。当然,APP同理,之后会专门准备一个测试用的APP来专门写一篇详细的文章。
安装好模拟器后,需要对几个地方进行设置。
首先是burpsuite,需要按照下图设置,IP选择自己本机IP,端口自定义,我这里选择的是8080。(等会模拟器中也要相同端口)
然后是模拟器,打开设置-无线和网络-长按修改网络-设置代理(设置为本机IP和上面的端口)-保存。
事实上这个时候已经可以抓到包了,但是遇到HTTPS协议的网站会弹出安全警告。
这种情况需要安装证书,先关闭burp的拦截,在浏览器输入http://burp。按照下图操作。
接下来就可以像WEB一样去抓包测试APP了。
Charles抓App的https数据包浅析
☆ END ☆