SEC学习2023版-0009-基础安卓篇
基础安卓
001-基础入门-蓝图
知识点
1、Web常规-系统&中间件&数据库&源码等
2、Web其他-前后端&软件&Docker&分配站等
3、Web拓展-CDN&WAF&OSS&反向&负载均衡等
1、APP架构-封装&原生态&H5&flutter等
2、小程序架构-Web&H5&JS&VUE框架等
章节点
应用架构:Web/APP/云应用/小程序/负载均衡等
安全产品:CDN/WAF/IDS/IPS/蜜罐/防火墙/杀毒等
渗透命令:文件上传下载/端口服务/Shell反弹等
抓包技术:HTTP/TCP/UDP/ICMP/DNS/封包/代理等
算法加密:数据编码/密码算法/密码保护/反编译/加壳等
APP应用开发架构
1、原生开发
安卓一般使用java语言开发,当然现在也有kotlin语言进行开发。如何开发就涉及到具体编程了,这里就不详说了。
简单描述就是使用安卓提供的一系列控件来实现页面,复杂点的页面可以通过自定义控件来实现。
2、使用H5语言开发
使用H5开发的好处有很多,可多端复用,比如浏览器端,ios端,当然H5开发的体验是没有原生好的。
结合我做过的项目来说,一般是这个页面需要分享出去的话,就用H5开发。
3、使用flutter开发
flutter是近年来谷歌推出的一款UI框架,使用dart语言进行开发,支持跨平台,weight渲染直接操作硬件层,体验可媲美原生。
但是flutter技术比较新,生态还不完善,开发起来效率相对偏低。
4、常规Web开发
Web App软件开发简单地说,就是开发一个网站,然后加入app的壳。
Web App一般非常小,内容都是app内的网页展示,受制于网页技术本身,可实现功能少,而且每次打开,几乎所有的内容都需要重新加载。
所以反应速度慢,内容加载过多就容易卡死,用户体验差,而且app内的交互设计等非常有效。但开发周期长端,需要的技术人员少,成本低。
APP应用
判断app原生态还是web封装:
- 凭经验,没有工具直接分析。界面美观程度,功能按钮,显示正常不正常等等。
- 反编译看源码
APP-开发架构-原生态-IDEA
演示:remusic项目源码
说明:
- 一点一点设计的,不是网页转app的那一套。
- 成套源码设计,app主导是java,成本高+最难
- 用户体验好,符合手机。
安全影响:
- 反编译
- 提取源码
- 提取源码当中的资产
- 提取资产进行常规测试
- 反编译看协议
- 看的是写到的资产
- 抓包
- 抓数据包提取资产
- 资产类型常规测试
- 逆向的角度去(反编译)分析逻辑设计安全(多)
APP-开发架构–Web封装-封装平台
演示:ShopXO源码程序+一门APP打包
说明:
- web页面封装进入app,本质上还是web页面。
- 用户体验差,有些不符合手机观感。
安全影响:常规Web安全测试
APP-开发架构-H5&Vue-HBuilderX
演示:HBuilderX案例
说明:相对于web封装,换了一种实现的语言。
安全影响:
- API-接口安全
- JS框架安全问题
- JS前端测试
APP逆向和APP安全
APP逆向侧重点在代码层面,而APP安全测试在资产层面。
小程序应用
WX小程序-开发架构-Web封装-平台
演示:ShopXO源码程序+一门APP打包
搭建:HBuilderX
安全影响:常规Web安全测试
WX小程序-开发架构-H5&Vue-HBuilderX
演示:HBuilderX案例
安全影响:API&JS框架安全问题&JS前端测试