一、前言
学习了这么久的Android APP漏洞挖掘,很多朋友私聊我如果系统的学习 Android APP漏洞挖掘,说实话作为一名刚入门的新手小白,实在不敢说如何学习才能算一个比较正确的学习路线,这里只是简单分享一下自己认为的学习路线和心得体会,如果有什么不足的就请相关大佬进行补充吧。
二、学习路线
Android 漏洞挖掘我认为主要是分为Android 系统层面的漏洞挖掘和APP端的系统层面,这里我们主要介绍APP端的系统挖掘,有朋友问我,学习App漏洞挖掘,是不是简单的原理了解,复现一些案例就可以了,我觉得这样可能远远不够吧,漏洞挖掘与逆向技术总是分不开的,试想如果你拿到一个app,你都不会脱壳,也不会抓取https报文,不会协议分析,不会hook,其实想挖到比较有价值的漏洞,其实很难,所以一个漏洞人员应该至少了解Android app开发、常见漏洞原理、Android APP逆向技术。三者合一可能才算的一名好的漏洞人员,当然我只认为自己也还是一名新手,学习之路任重而道远了。下面将逐步介绍,有一些也可能在后续再慢慢补全。
Android APP漏洞挖掘学习路线:
1.初阶
工具篇:
(1)工具基本使用
如果你想学习一个领域的东西,我认为其实你可以先尝试去使用它的工具,这样相比一上来学习理论知识,可能更加有趣一点,而且在后面学习过程中,掌握一些基本的工具,也是开始学习的基础。那么Android APP漏洞挖掘你可能需要掌握的工具:
1 |
基本的逆向工具:AndroidKiller、Android Studio、JEB、jadx-gui、010Editor、GDA、IDA、GDB等 |
基本的逆向工具很多可以在看雪论坛和吾爱破解上找到,所以基本资源还是很容易找的
漏洞测试工具:Android漏洞挖掘三板斧——drozer+Inspeckage(Xposed)+MobSF
能力篇:
(2)掌握Android APP动静态调试技巧:
1 |
静态分析: |
(3)掌握Hook 动态注入技术:
1 |
熟练使用Hook框架: |
Xposed学习:参考源码编译(2)——Xopsed源码编译详解 和开发过程中使用Xposed官方文档即可
frida学习:参考肉丝大佬GitHub - r0ysue/AndroidSecurityStudy: 安卓应用安全学习
(4)掌握Android APP加壳和脱壳技术:
1 |
掌握动态加载的基本原理 |
脱壳技术学习推荐:看雪2w班课程和肉丝大佬的脱壳王课程,朋友给我说这两门课的质量很高
(5)掌握抓包和协议分析的技术:
1 |
掌握密码学理论初步:学习AES、DEA、Base64等常见的密码算法原理 |
工具书推荐:r0ysue Frida逆向与抓包实战
视频推荐:看雪2w班
理论篇:
(6)掌握Android App开发和APP漏洞的基本原理:
推荐参考Android APP漏洞之战系列文章:
本系列主要分为Android 开发原理和漏洞原理两部分,推荐学习
[原创]Android APP漏洞之战(1)——Activity漏洞挖掘详解-Android安全-看…
[原创]Android APP漏洞之战(2)——Service漏洞挖掘详解-Android安全-看雪…
[原创]Android APP漏洞之战(3)——Broadcast Recevier漏洞详解-And…
Android APP漏洞之战(4)——Content Provider漏洞详解
原创]Android APP漏洞之战(5)——权限安全和安全配置漏洞详解
[原创]Android APP漏洞之战(6)——HTTP/HTTPs通信漏洞详解
[原创]Android APP漏洞之战(7)——信息泄露漏洞详解
后续还在继续更新,争取今年写完
到这里为止,我觉得可以算的算一名初级的Android APP漏洞挖掘工程师了吧
2.中阶
(7)学习掌握漏洞自动化工具开发
1 |
利用一些开源框架,如AndroGuard、appt、jadx等工具,自己开发一些可以自动测试APP漏洞的安全工具,类似drozer、mobsf等 |
(8)Fuzz技术的学习
1 |
学习Fuzz技术在APP上的使用,现在Fuzz技术在漏洞挖掘方面的使用不断增加,学习Fuzz技术的原理 |
3.高阶
(9)逆向技术的全面进阶
1 |
脱壳技术: |
(10)Fuzz技术进阶
1 |
熟练掌握Fuzz在app上的漏洞挖掘技术 |
三、总结
这里是考虑不少朋友私聊我Android APP漏洞如何挖掘学习,我本人也是入门菜鸟,所以肯定有很多不会地方,只是将自己的学习心得梳理了一下,有不足之处请论坛各位大佬就指正出来。
- source:security-kitchen.com
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论