安全知识点非常多也非常杂,要想掌握必须花费大量时间,如果仅仅看了文章、复制粘贴记个笔记、收藏了某个POC就认为自己会了,懂了,这种浅尝辄止到头来还是坑自己,一定要动手实践。
美团的这篇技术文章写的非常好
工作中如何做好技术积累
下面这段是其中的一部分,分享给大家
古人云:“纸上得来终觉浅,绝知此事要躬行。” 学习领域有所谓721模型:个人的成长70%来自于岗位实践,20%来自向他人学习,10%来自于培训。虽然这种理论存在争议,但对于工程师们来说,按照实践、学习和培训的方式进行重要性排序,大致是不错的。所以重视实践,在实践中成长是最重要的学习原则。
人类的认知有两种:感性认知和理性认知。这两种认知互相不可替代性。实践很大程度来自于感性学习,看书更像是理性学习。以学开汽车做例子,很难想象什么人能够仅仅通过学习书本知识就会开汽车。
书本知识主要是传道——讲述抽象原型,而对其具体应用场景的讲述往往含糊其辞,对抽象原型之间的关系也是浅尝辄止。采用同样精确的语言去描述应用场景和关联关系将会失去重点,让人摸不着头脑。所以,仅仅通过看书来获得成长就像是用一条腿走路。
重视实践,充分运用感性认知潜能,在项目中磨炼自己,才是正确的学习之道。在实践中,在某些关键动作上刻意练习,也会取得事半功倍的效果。
下面我将以安全工程师的角度来构建一个基本的学习路线图,由于我个人偏 web+misc 所以不包含逆向内容,请见谅
基本功很重要
虚拟机使用 - 学会安装、使用虚拟机,明白VMware几种网络连接的区别
如何科学上网 - 懂得都懂
Markdown 语法 - 学会记笔记也很重要
字符编码 - 没啥好说的,基本功
git 及 github 的使用 - 多参与开源项目可以快速提高开发水平
数据类型的处理
正则 - 了解正则语法
python - 掌握语法,能够编写POC,能够按需求修改exp
dotnet
java
php
Linux 是啥
Linux 基础命令
Linux 服务搭建 - 起码要学会怎么搭建 httpd、nginx
Docker 使用 - 必须要掌握的,可以节约你大量时间
Windows 下常用命令
Windows 服务器能干啥
HTTP 协议
html+js
web 基础漏洞
web 逻辑漏洞
靶场 - 如果有空闲时间可以打打靶场练习
各类通用漏洞利用
OOB
JWT
linux 权限、文件
linux 提权、漏洞利用
linux lol
windows 认证体系
windows 提权、漏洞利用
windows lol
windows rdp 利用
windows 凭证抓取
linux 提权
windows 提权
第三方软件提权
各种 webshell
windows 权限维持
linux 权限维持
各类 C2、免杀
工作组、域是什么、如何搭建域环境
Kerberos
域凭证抓取
域控提权
pth/k/t
Exchange
linux 日志、信息
windows 日志、信息
恶意文件分析
文件取证
内存取证
流量分析
应用程序、WEB、数据库取证