很多朋友问我,想搞网络安全,编程重要吗,选什么语言呢?
国内其实正经开设网络安全专业的学校很少,大部分同学是来自计算机科学、网络工程、软件工程专业的,甚至很多非计算机专业自学的。因此不像这三个专业,有系统的课程体系,大一教什么,大二教什么,大三又教什么,那么清晰明白,网络安全这条路很多都是自学摸索。
我从大二开始入坑网络安全,至今也有十个年头了,也见过许许多多自学成才的例子,工作这些年,先后学习过C、C++、Java、Python、Objective-C、JavaScript、TypeScript,现在回过头来,有一些自己的思考。
很多培训班,一上来就给你讲一堆各种攻击手法、各种工具使用,很多人搞得一头雾水,为什么要学这些,这些背后的原理是什么全都不知道。
我主张学习网络安全可以像做软件开发中的“敏捷开发”,先从一个最小的核心开始,逐步迭代,已臻完善。
这个最小的核心是什么呢?
如果你是偏向于搞网络渗透的方向,这个最小核心就是:
HTTP + Web + 漏洞扫描工具
先把HTTP协议的工作机制掌握了,然后学习Web技术,包括前后端如何协同工作,浏览器如何工作,服务器又是如何处理一个HTTP请求,一个网站是如何搭建起来的等等。接着再学习使用一些Web漏洞扫描工具,学习网站漏洞的概念,开始有“安全”这个意识。
围绕Web相关的知识掌握得差不多了,然后可以开始迭代起来了:
1、有了上面这些基本知识,可以开始学习各种花式的Web漏洞攻击,什么XSS、CSRF、SQL注入、SSRF等等。
2、学习漏洞原理的过程中,开始熟悉一些Web服务器的工作机制,日志技术,容器技术这些知识,以及背后的操作系统Linux/Windows的基础知识。
3、对Web安全有了一些基础,开始把眼光从Web放宽到更广阔的网络安全,这个时候,就需要进一步学习HTTP背后的TCP/IP网络协议族。这时你将会陆续接触到什么是TCP劫持、DNS劫持、ARP欺骗、TCP SYN洪水攻击等等。
4、对网络攻击的手法了解到这个阶段,现有的工具可能就满足不了你的需要,你需要定制一些爬虫、扫描、漏洞POC或其他工具了,是时候来学习一些工具编写了,你可以开始学习Python编程,门槛最低,实用性最强。
5、安全玩到后面,都是在玩漏洞。而学到后面,越来越多时间开始接触到操作系统层面的漏洞,这个时候你就要开始学习一些C语言,通过C知道代码程序底层的执行原理,拓展自己在操作系统层面的知识深度。
6、有了上面这些技术的打底,你的眼界将会被打开,但随之而来,你会发现自己要学的还有很多,但至少到这个时候,你不再像一开始那么迷茫,而是知道自己接下来该去补充哪些东西。
核心:
1.web安全
2.二进制安全(包括逆向工程和漏洞利用)
3.密码学知识
其他基础:
1.软件开发
2.数据库原理
3.编程语言
4.计算机取证分析和隐写术
5.网络协议及网络算法
6.算法与数据结构
7.研究开源工具的基本原理,懂得自制工具
Web安全:
1.注入类:SQL注入;XSS跨站脚本攻击;XXE;命令执行命令注入(bash);文件上传文件下载
2.信息漏洞:源码泄露;敏感信息接口;员工资料泄露;服务器信息泄露
3.逻辑类:权限绕过;条件竞争;数据篡改
网站工作原理:
HTTP协议;Webserver
HTTP协议构成:
1.http-header构成(request response)
2.http-body 构成(request response)
3.http方法
Webserver:
1.Webserver分类
2.Webserver解析流程
3.Webserver基础安全
编程语言:
前端:html,css,javascript
后台和脚本语言:php,java,python
数据库原理:
关系型数据库(MySQL)和非关系型数据库
逆向工程:
1.体系结构:机器指令和汇编语言
2.编译原理:自动机,词法分析,语法分析
3.操作系统:系统的加载与引导
4.计算机组成原理
漏洞挖掘与利用:
1.逆向工程
2.模糊测试
3.什么是漏洞
4.程序员在什么时候会犯错
5.信息收集工具:端口,子域名,代码泄露,员工字典
6.数据包抓取修改重放工具
7.顺手的浏览器及插件(火狐Hackbar)
8.VPS,漏洞验证
9.分析业务功能
10.分析web架构
11.针对性的罗列可能的漏洞类型
12.详细测试:不放过任何一个数据包
13.单一利用:Getshell;敏感信息接口
14.组合利用:XSS+CSRF
密码学:
1.古典密码学:凯撒密码;移位密码
2.现代密码学:对称加密体系(DES;AES)和非对称加密体系(RSA)
根据以上网络安全技能表不难看出,网络安全需要接触的技术还远远很多,常见的技能需要学习:外围打点能力、钓鱼远控能力、域渗透能力、流量分析能力、漏洞挖掘能力、代码审计能力等。
【----帮助网安学习,以下所有学习资料免费领!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
03网络安全的知识多而杂,怎么科学合理安排?
一、基础阶段
★中华人民共和国网络安全法 (包含18个知识点)
★Linux操作系统 (包含16个知识点)
★计算机网络 (包含12个知识点)
★SHELL (包含14个知识点)
★HTML/CSS (包含44个知识点)
★JavaScript (包含41个知识点)
★PHP入门 (包含12个知识点)
★MySQL数据库 (包含30个知识点)
★Python (包含18个知识点)
————————————————
入门的第一步是系统化的学习计算机基础知识,也就是学习以下这几个基础知识模块:操作系统、协议/网络、数据库、开发语言、常用漏洞原理。前面的基础知识学完之后,就要进行实操了。
因为互联网与信息化的普及网站系统对外的业务比较多,而且程序员的水平参差不齐和运维人员的配置事物,所以需要掌握的内容比较多。
二、渗透阶段
■SQL注入的渗透与防御(包含36个知识点)
■XSS相关渗透与防御(包含12个知识点)
■上传验证渗透与防御(包含16个知识点)
■|文件包含渗透与防御(包含12个知识点)
■CSRF渗透与防御(包含7个知识点)
■SSRF渗透与防御(包含6个知识点)
■XXE渗透与防御(包含5个知识点)
■远程代码执行渗透与防御(包含7个知识点)
■…(包含…个知识点)
————————————————
掌握常见漏洞的原理、使用、防御等知识。Web渗透阶段还是需要掌握一些必要的工具。
主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等,以上工具的练习完全可以利用上面的开源靶场去练习,足够了;
三、安全管理(提升)
★渗透报告编写(包含21个知识点)
★等级保护2.0(包含50个知识点)
★应急响应(包含5个知识点)
★代码审计(包含8个知识点)
★风险评估(包含11个知识点)
★安全巡检(包含12个知识点)
★数据安全(包含25个知识点)
————————————————
主要包括渗透报告编写、网络安全等级保护的定级、应急响应、代码审计、风险评估、安全巡检、数据安全、法律法规汇编等。
这一阶段主要针对已经从事网络安全相关工作需要提升进阶成管理层的岗位。如果你只学习参加工程师方面的岗位,这一阶段可学可不学。
四、提升阶段(提升)
■密码学(包含34个知识点)
■JavaSE入门(包含92个知识点)
■C语言(包含140个知识点)
■C++语言(包含181个知识点)
■Windows逆向(包含46个知识点)
■CTF夺旗赛(包含36个知识点)
■Android逆向(包含40个知识点)
————————————————
主要包括密码学、JavaSE、C语言、C++、Windows逆向、CTF夺旗赛、Android逆向等。
主要针对已经从事网络安全相关工作需要提升进阶安全架构需要提升的知识。
【----帮助网安学习,以下所有学习资料免费领!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
结语
给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。给自学的小伙伴们的意见是坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果
本文转自 https://blog.csdn.net/wangluo12138/article/details/142415327?spm=1001.2014.3001.5501,如有侵权,请联系删除。
标签:网络安全,知识点,包含,Web,渗透,水太深,漏洞,分享,学习 From: https://blog.csdn.net/2401_84618514/article/details/142451769