零基础入门网络渗透到底要怎么学?

李志宽
• 阅读 1866

零基础入门网络渗透到底要怎么学?

前言:

很多朋友问我,想搞网络安全,编程重要吗,选什么语言呢?

国内其实正经开设网络安全专业的学校很少,大部分同学是来自计算机科学、网络工程、软件工程专业的,甚至很多非计算机专业自学的。因此不像这三个专业,有系统的课程体系,大一教什么,大二教什么,大三又教什么,那么清晰明白,网络安全这条路很多都是自学摸索。

我从大二开始入坑网络安全,至今也有十个年头了,也见过许许多多自学成才的例子,工作这些年,先后学习过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欺骗、TCPSYN洪水攻击等等。
  • 4、对网络攻击的手法了解到这个阶段,现有的工具可能就满足不了你的需要,你需要定制一些爬虫、扫描、漏洞POC或其他工具了,是时候来学习一些工具编写了,你可以开始学习Python编程,门槛最低,实用性最强。
  • 5、安全玩到后面,都是在玩漏洞。而学到后面,越来越多时间开始接触到操作系统层面的漏洞,这个时候你就要开始学习一些C语言,通过C知道代码程序底层的执行原理,拓展自己在操作系统层面的知识深度。
  • 6、有了上面这些技术的打底,你的眼界将会被打开,但随之而来,你会发现自己要学的还有很多,但至少到这个时候,你不再像一开始那么迷茫,而是知道自己接下来该去补充哪些东西。

学习路线图

零基础入门网络渗透到底要怎么学?

总结:

回答一开始那个问题,对于网络渗透方向,编程不是一开始就要做的事,也不如程序员拿它吃饭那么重要,但即便如此,你还是得学一点,Python最佳推荐,C也需要学一些,至于C++嘛,了解即可,不做强求。

【系统学习资料&工具分享】

零基础入门网络渗透到底要怎么学?

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
李志宽
李志宽
Lv1
男 · 长沙幻音科技有限公司 · 网络安全工程师
李志宽、前百创作者、渗透测试专家、闷骚男一位、有自己的摇滚乐队
文章
89
粉丝
25
获赞
43