2022⽹络安全学习路线⾮常详细推荐学习
关键词:⽹络安全⼊门、渗透测试学习、零基础学安全、⽹络安全学习路线
分享⼀套web安全零基础学习视频教程
⾸先咱们聊聊,学习⽹络安全⽅向通常会有哪些问题
1、打基础时间太长
学基础花费很长时间,光语⾔都有⼏门,有些⼈会倒在学习 linux 系统及命令的路上,更多的⼈会倒在学习语⾔上;linux操作系统书籍
2、知识点掌握程度不清楚
对于⽹络安全基础内容,很多⼈不清楚需要学到什么程度,囫囵吞枣,导致在基础上花费太多时间;看到很多⼩伙伴,买了
HTML,PHP,数据库,计算机⽹络等书籍,每本还很厚,很多写得也很深,发现越学越没⾃信,别⼈学个 PHP 或者数据库就可以到⼯作,⽽⽹络安全要学这么多,越来越怀疑⾃⼰是不是选错了⽅向;
3、知识点分不清重点
很多⼈花了很⼤精⼒学完了基础内容,但是发现很多知识和后续⽹络安全关联不⼤,没有分清重点,浪费了很多时间;
4、知识点学习不系统
之前看到很多⼩伙伴在 b 站了好多视频,也去其他平台买了点⼩课,百度云盘上也有 1-2T 的学习资料和视频内容,但是每⼀类学完都需要花费不少时间,且内容很多有重复性,学完 SQL 注⼊后,后⾯⼜看到另⼀家讲这个 SQL 注⼊,还不错,⼜会去学习⼀遍,发现学完所有 web 漏洞原理后,⾃⼰还是不太确定⾃⼰是否把 Web 漏洞这块的知识点学全没有;
5、⾃⼰解决问题难
对于初学者来说,很多会⾃⼰搭建⼀些靶场,但是由于配置环境等原因,耽误时间会很多,尤其初学者碰到连续 3 个问题⽆法解决的时候,很容易放弃;对于⼀部分动⼿能⼒较差的同学,这块可能会直接影响到继续学习的信⼼;
6、实战⽔平不够
对于学⽹络安全,渗透测试⽅向的技术,其实很⼤程度上学习的就是“⿊客”技术,通过学习怎么进攻和⼊侵,才能够更清楚系统和应⽤怎么去防御;⽽这块也恰恰是⽹络安全的核⼼,如果光有理论,实战经验少,也是较难去就业;在平时学习中,除了可以搭建⼀些开源的靶场⽤于练习,最好还是要有真实漏洞组成的靶场⽤于学习,当然也可以去 SRC 平台去渗透测试⼀些真实⽹站(⼀定要获得授权才可以渗透真实⽹站),但是难度发现⼜⽐较⼤,很多初学者会丧失信⼼,怀疑⾃⼰;
7、内⽹学习困难较⼤
Web 渗透这块的资料在互联⽹到处都是,学习起来相对较为轻松,但是内⽹这块的资料在互联⽹相对较少,能够借鉴的资料不多,另外也需要有相应的靶场配合练习,才能有技术上的提⾼和积累;学习难度会⽐较⼤。
了解了问题,同时结合⾃⾝的⼀些特点来调整学习⽅向,会事半功倍,以下为 3 种学习线路,适⽤于不同的学习⼈
⽅法 1:先学习编程,然后学习 Web 渗透及⼯具使⽤等编程入门书籍排行榜前十名
适⽤⼈:有⼀定的代码基础的⼩伙伴
(1)基础部分
基础部分需要学习以下内容:
(1.1)计算机⽹络 :
重点学习 OSI、TCP/IP 模型,⽹络协议,⽹络设备⼯作原理等内容,其他内容快速通读;
(1.2)Linux 系统及命令 :
由于⽬前市⾯上的 Web 服务器 7 成都是运⾏在 Linux 系统之上,如果要学习渗透 Web 系统,最起码还是要对 linux 系统⾮常熟悉,常见的操作命令需要学会;
**学习建议:**学习常见的 10%左右的命令适⽤于 90%的⼯作场景,和 office 软件⼀样,掌握最常⽤的 10%的功能,基本⽇常使⽤没什么问题,遇到不会的,再去度娘;常见的 linux 命令也就 50-60 个,很多⼩⽩囫囵吞枣什么命令都学,发现记不住啊这个学习⽅法也是不对的;
数据统计函数怎么用(1.3)Web 框架 :
熟悉 web 框架的内容,前端 HTML,JS 等脚本语⾔了解即可,后端 PHP 语⾔重点学习,切记不要按照开发的思路去学习语⾔,php 最低要求会读懂代码即可,当然会写最好,但不是开发,但不是开发,但不是开发,重要的事情说三遍;
(1.4)数据库:
需要学习 SQL 语法,利⽤常见的数据库 MySQL 学习对应的数据库语法,也是⼀样,SQL 的⼀些些⾼级语法可以了解,如果没有时间完全不学也不影响后续学习,毕竟⼤家不是做数据库分析师,不需要学太深;
(2)Web 安全
(2.1)Web 渗透
掌握 OWASP 排名靠前的 10 余种常见的 Web 漏洞的原理、利⽤、防御等知识点,然后配以⼀定的靶场练习即可;有的⼩⽩可能会问,去哪⾥资料,建议可以直接买⼀本较为权威的书籍,配合 b 站的免费视频系统学习,然后利⽤开源的靶场辅助练习即可;
【推荐靶场】常见的靶场都可以上 github 平台搜索,推荐以下靶场 DVWA、bWAPP、upload-labs-master、SQL-lib-master、WebBug、pikachu 等,有些是综合靶场,有些是专门针对某款漏洞的靶场;
(2.2)⼯具学习
Web 渗透阶段还是需要掌握⼀些必要的⼯具,⼯具的学习 b 站上的视频⽐较多,挑选⼀些讲解得不错的视频看看,不要⼀个⼯具看很多视频,⼤多数视频是重复的,且很浪费时间;
**主要要掌握的⼯具和平台:**burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理⼯具 ssrs、hydra、medusa、airspoof 等,以上⼯具的练习完全可以利⽤上⾯的开源靶场去练习,⾜够了。
练习差不多了,可以去 SRC 平台渗透真实的站点,看看是否有突破,如果涉及到需要绕过 WAF 的,需要针对绕 WAF 专门去学习,姿势也不是特别多,系统性学习学习,然后多总结经验,更上⼀层楼。
(2.2)⾃动化渗透
⾃动化渗透需要掌握⼀门语⾔,且需要熟练运⽤,可以是任何⼀门⾃⼰已经掌握得很熟悉得语⾔,都可以,如果没有⼀门掌握很好的,那我推荐学习 python,最主要原因是学起来简单,模块也⽐较多,写⼀些脚本和⼯具⾮常⽅便;
什么⿁?⼜要学习编程,刚才不是说了编程不是学习⽹络安全的必要条件,不懂⾃动化渗透也不影响⼊门和就业,但是会影响职业的发展,且学习 python 不需要掌握很多不需要的模块,也不需要开发成
千上万⾏的代码,仅利⽤它编写⼀些⼯具和脚本,少则 10 ⼏⾏代码,多则1-200 ⾏代码,⼀般代码量相对开发⼈员已经少得不能再少了,例如⼀个精简得域名爬⾍代码核⼼代码就 1-20 ⾏⽽已;
有的⼩伙伴可能⼜急了,那到底需要怎么学嘛?正弦余弦正切函数值表图
⼏天时间学习⼀下 python 的语法,有代码基础得⼩哥哥和⼩,最快可能⼀天就可以学习完 python 的语法,因为语⾔都是相通的,但是学习语⾔最快的就是写代码,别⽆他法;接下来可以开始尝试写⼀些常见得⼯具,如爬⾍、端⼝探测、数据包核⼼内容提取、内⽹活跃主机扫描等,此类代码⽹上⼀搜⼀⼤把;然后再写⼀些 POC 和 EXP 脚本,以靶场为练习即可;有的⼩伙伴可能⼜要问了,什么是 POC 和EXP,⾃⼰度娘去,养成动⼿的好习惯;
(2.3)代码审计
什么⿁?⼜要看代码。此处内容要求代码能⼒⽐较⾼,因此如果代码能⼒较弱,可以先跳过此部分的学习,不影响渗透道路上的学习和发展。
但是如果希望在 Web 渗透上需要⾛得再远⼀些,需要精通⼀门后台开发语⾔,推荐 php,因为后台采⽤ php 开发的⽹站占据最⼤,当然你还精通 python、asp、java 等语⾔,那恭喜你,你已经具备很好的基础了;
代码审计顾名思义,审计别⼈⽹站或者系统的源代码,通过审计源代码或者代码环境的⽅式去审计系统是否存在漏洞(属于⽩盒测试范畴);
pmp网址那具体要怎么学习呢?学习的具体内容按照顺序列举如下:
掌握 php ⼀些危险函数和安全配置;
熟悉代码审计的流程和⽅法;
掌握 1-2 个代码审计⼯具,如 seay 等;
掌握常见的功能审计法;(推荐审计⼀下 AuditDemo,让你产⽣⾃信)
常见 CMS 框架审计(难度⼤);
**【推荐书籍】**代码审计有⼀本国外的书籍《代码审计:企业级 Web 代码安全架构》,当然有空的时候可以去翻翻,建议还是在 b 站上⼀套系统介绍的课程去学习;github 上到 AuditDemo,下载源码,搭建在本地虚拟机,然后利⽤⼯具和审计⽅法,审计 AuditDemo 中存在的 10 个漏洞,难度分布符合正态分布,可以挑战⼀下;
⾄于 CMS 框架审计,可以去⼀些 CMS 官⽅⽹站,下载⼀些历史存在漏洞的版本去审计,框架的学习利⽤官⽅⽹站的使⽤⼿册即可,如ThinkPHP3.2 版本是存在⼀些漏洞,可以尝试读懂代码;但是切记不要⼀上来就看代码,因为 CMS 框架的代码量⽐较⼤,如果不系统先学习框架,基本属于看不懂状态;学习框架后能够具备写简单的 POC,按照代码审计⽅法结合⼯具⼀起审计框架;其实也没有想想中的那么难,如果你是开发⼈员转⾏的,恭喜你,你已经具备代码审计的先天性优势。
那有的⼩伙伴⼜问了,我代码很差,不学习代码审计⾏不⾏,代码审计不是学习⽹络安全的必要条件,能够掌握最好,掌握不了也不影响后续的学习和就业,但你需要选择⼀个阶段,练习得更专业精通⼀些,如 web 渗透或者内⽹渗透,再或者是⾃动化渗透;
(3)内⽹安全
恭喜你,如果学到这⾥,你基本可以从事⼀份⽹络安全相关的⼯作,⽐如渗透测试、Web 渗透、安全服务、安全分析等岗位;
如果想就业⾯更宽⼀些,技术竞争更强⼀些,需要再学习内⽹渗透相关知识;
内⽹的知识难度稍微偏⼤⼀些,这个和⽬前市⾯上的学习资料还有靶场有⼀定的关系;内⽹主要学习的内容主要有:内⽹信息收集、域渗透、代理和转发技术、应⽤和系统提权、⼯具学习、免杀技术、APT 等等;
不要和我说专业名词,叭叭叭叭叭叭!具体要怎么学?
**【推荐书籍】**这个问题有点⼤,呃呃呃呃呃呃!可以看《内⽹安全攻防:渗透测试实战指南》,这本书写得还不错,国内为数不多讲内⽹的书籍,以书籍⽬录为主线,然后配合⼯具和靶场去练习即可;
那⼩伙伴⼜要问了,那去哪⾥可以下载到内⽹靶场!呃呃呃呃呃!这个难倒我了,如果你能⼒够强,电脑配置⾼,可以⾃⼰利⽤虚拟机搭建内⽹环境,⼀般需要 3 台以上的虚拟机;你也可以到国外⼀些内⽹靶场使⽤,有⼀些收费的靶场还可以;
(4)渗透拓展
渗透拓展部分,和具体⼯作岗位联系也⽐较紧密,尽量要求掌握,主要有⽇志分析、安全加固、应急响应、等保测评等内容;其中重点掌握前三部分,这块的资料⽹络上也不多,也没有多少成型的书籍资料,可通过⾏业相关的技术或者⾏业分享的资料去学习即可,能学到这⼀步,基本上已经算⼊门成功,学习⽇志分析、安全加固、应急响应三部分的知识也相对较为容易。
⽅法 2:先学习 Web 渗透及⼯具,然后再学习编程
适⽤⼈:代码能⼒很弱,或者根本没有什么代码能⼒,其他基础也⽐较差的⼩伙伴
那有的⼩伙伴就会问了,那你基础都不打好,怎么学习 Web 渗透?
基础部分还是要学习的,⽐如 linux 系统、计算机⽹络、⼀点点的 Web 框架、数据库还是需要提前掌握;
mobilism软件
那像 php 语⾔、⾃动化渗透和代码审计部分内容,可以放在最后,当学习完毕前⾯知识后,也相当⼊门后,再来学习语⾔,相对会容易⼀些;
**【优先推荐】**⽅法 2,对于⼩⽩来说,代码基础通常较弱,很多很多⼩⽩会倒在前期学习语⾔上,所以推荐⽅法 2 的学习,先学习 web 渗透和⼯具,也⽐较有意思,容易保持⼀个⾼涨的学习动⼒和热情,具体学习内容我就不说了,请⼩伙伴们参照⽅法 1 即可。