每一个已经入门一个领域的人都有自己的一套入门方法,在无人指点的情况下,通过自己的摸索加上努力的沉淀逐渐成为一个领域的专家,从入门到成为专家也只是时间的问题,如果有高人指点,那么入门的时间会大大缩短,将那些无意义且浪费时间的部分忽略掉,从而以最短的时间获得最高的收益。
今天分享的一套学习路径,我认为是最好最有效的,可能不适用于所有人,只要有人从中受益,那么今天的分享就是价值的,那么如何更好更有效的入门 web 安全呢?你是如何入门的,欢迎评论区分享。
第一个小目标:编写一个 web 应用系统
首先 web 安全是什么?web 安全的主体是 web 系统,当你对 web 系统都不熟悉的情况下,如何做好 web 安全呢?所以我们入门 web 安全的第一步是熟悉 web 系统,了解 web 系统由哪些组件构成,不同组件的作用是什么,然后是有哪些功能,如何实现的。
如何快速了解 web 系统?我认为编写一个 web 系统是最快速,最有效的方式,在这个过程中,你需要学习:
1、web 系统的中间件服务器,如何搭建,如何配置
2、http 协议原理,看得懂网站交互的数据包
3、前端技术,html、css、javascript 之间的关系,前端常见框架等
4、后端技术,与数据库交互、文件操作等功能的实现原理,以及后端语言有哪些
5、编程技术,选定后端语言后如何实现功能,也就是编程算法
有了这些基础之后,再去理解漏洞的原理和漏洞的测试方法,将会事半功倍,所以初学者入门 web 安全需要制定的第一个小目标就是,自己编写一个简易的 web 系统,功能可以不多,但是要覆盖最常见的功能,至于编程语言的选定,根据自身的兴趣而定,比如 php+mysql+nginx+apache、java+tomcat+spring+mysql、asp.net+iis+mssql 等。
第二个小目标:学习漏洞原理,发现自己网站的漏洞
第一个小目标最关注的是功能的实现,对于安全无需过多考虑,不然整个时间线就拉长,可以选在在特定的时间完成特定的事情,让学习更加聚焦。在此基础上,你开发的网站可能会存在各种各样的漏洞,接下来的目标就是通过漏洞的学习来发现自己网站的所有漏洞。
因为系统是由你开发的,所有的功能和代码都是由你编写,这套系统,没有人会比你更加熟悉,所以在学习漏洞原理的时候,思考自己在处理相关问题时是否存在相应的问题,然后进行测试,发现漏洞之后,试着根据漏洞原理去修复该问题。
在实际的渗透测试过程中,了解系统的功能、架构是第一步,只有这样才能更好的测试和发现网站的隐藏漏洞,这是一个非常好的积累漏洞知识的过程。
你的系统可能不会覆盖所有漏洞,所以可以基于漏洞列表进行一一学习测试,直到将所有漏洞学习测试完毕,然后整理出自己的测试列表,记录测试的种类、方法、步骤,这个在你未来的工作中也可以一一对照进行测试。
第三个小目标:选择 SRC 目标系统,一一测试,直到发现漏洞
前两个目标都是在学习积累,第三个目标就是实战,通过自己的技术积累,让其发挥价值,发现企业的漏洞,并报告,获得第一份赏金漏洞。
在第二个小目标学习的过程中,你已经有了一个测试的检查项列表,也就是针对任意网站,你已经知道如何测试,测试哪些内容,接下来就是要获取目标列表,然后一一测试,所以这个目标的关键是获取目标列表。
渗透测试的第一步是信息收集,要基于企业域名扩展更多的网站,那么如何信息收集就是这个目标的关键,这个目标更贴近实战,去选择一个 SRC 作为目标,然后收集其所有子域名、IP 信息,将该企业的所有边界网站整理出来,然后套用第二个目标的检查项进行一一测试,我相信,你一定可以找到漏洞。
总结
经过这个三个目标的洗礼,你一定可以入门 web 安全,而且会是一个技术能力很强的人,能完整实现三个目标的人,我认为是比较少的,在如今大环境如此不好的前提下,积累自身能力是最重要的事情,让你即使在如此不好的环境下也能找到非常好的工作,如果你想跟更多小伙伴一起学习,欢迎扫描下方二维码加入我们,一起学习提升。
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
三、网络安全学习路线
先放上路线图
第一阶段:基础操作入门
入门的第一步是学习一些当下主流的安全工具课程并配套基础原理的书籍,一般来说这个过程在1个月左右比较合适。在这个部分我介绍的课程和书籍都属于难度非常低的,就算是完全零基础的小白只要认真学也是能够学会的
课程我推荐下面这套Web安全入门基础课程,难度不大而且完全免费。这套课程至今已经有19万的学习人次,好评度99%。一共包含了40节课,课程内容主要包含了burp、awvs、cs、msf等当下主流工具的使用,而且每节课程都配备了练习靶场。听完课程后再去靶场进行练习,靶场当中有任何不懂的问题也可以在学习群里请教前辈,这样能够大大提升你的学习效率
在学习基础入门课程的同时,推荐同时阅读相关的书籍补充理论知识,这里比较推荐以下几本书:
- 《白帽子讲Web安全》
- 《Web安全深度剖析》
- 《Web安全攻防 渗透测试实战指南》
第二阶段:学习基础知识
在这个阶段,你已经对网络安全有了基本的了解。如果你认真看完了上面推荐的书籍和课程,相信你已经在理论上明白了上面是sql注入,什么是xss攻击,对burp、msf、cs等安全工具也掌握了基础操作。这个时候最重要的就是开始打地基!
所谓的“打地基”其实就是系统化的学习计算机基础知识。而想要学习好网络安全,首先要具备5个基础知识模块:
学习这些基础知识有什么用呢?
计算机各领域的知识水平决定你渗透水平的上限。
- 比如:你编程水平高,那你在代码审计的时候就会比别人强,写出的漏洞利用工具就会比别人的好用;
- 比如:你数据库知识水平高,那你在进行SQL注入攻击的时候,你就可以写出更多更好的SQL注入语句,能绕过别人绕不过的WAF;
- 比如:你网络水平高,那你在内网渗透的时候就可以比别人更容易了解目标的网络架构,拿到一张网络拓扑就能自己在哪个部位,拿到以一个路由器的配置文件,就知道人家做了哪些路由;
- 再比如你操作系统玩的好,你提权就更加强,你的信息收集效率就会更加高,你就可以高效筛选出想要得到的信息
这些基础该学到什么程度呢?
计算机各领域的知识水平决定你渗透水平的上限,但是零基础并不是要把上面的全部都学的很好再去搞渗透,那不仅会劝退大部分人,而且像我前面说的深度学习很容易学的囫囵吞枣,最后反而竹篮打水一场空
作为初学者,可以先学习基础。比如你先学一个编程语言的基础,用PHP做例子,你起码要懂if else这些、连接数据库;比如学数据库,用MySQL做例子,那至少也是要会增删改查、子查询这几个操作;网络的话比较难,也是很抽象的,你做外网的渗透,至少要懂基础的http协议,知道端口是什么,知道网站是怎么架设起来的;操作系统的基础相对比较好学,主要是各种命令的作用,各种软件的安装和使用
学习书籍和资源推荐:
《HTTP权威指南》
《Python核心编程》
《PHP和MySQL Web开发》
《JavaScript高级程序设计》
靶场:
Damn Vulnerable Web Application
Audi-1/sqli-labs
BUUCTF
bugku
网络信息安全攻防平台
第三阶段:实战操作
1.挖SRC
挖SRC的目的主要是讲技能落在实处,学习网络安全最大的幻觉就是觉得自己什么都懂了,但是到了真的挖漏洞的时候却一筹莫展,而SRC是一个非常好的技能应用机会
SRC平台:
2.从技术分享帖(漏洞挖掘类型)学习
观看学习近十年所有0day挖掘的帖,然后搭建环境,去复现漏洞,去思考学习笔者的挖洞思维,培养自己的渗透思维!
安全大佬博客:
书籍推荐:
- 《WEB之困-现代WEB应用安全指南》
- 《内网安全攻防渗透测试安全指南》
- 《Metasploit渗透测试魔鬼训练营》
- 《SQL注入攻击与防御》
- 《黑客攻防技术宝典-Web实战篇(第2版)》
到这一步,再加上之后对挖掘漏洞的技术多加练习与积累实战经验,基本就可以达到安全工程师的级别
最后
为了帮助大家更好的学习网络安全,小编给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,所有资料共282G,朋友们如果有需要全套网络安全入门+进阶学习资源包,可以点击免费领取(如遇扫码问题,可以在评论区留言领取哦)~
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
————————————————
👉优快云大礼包🎁:全网最全《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)👈
