如何通过自学成为一名白帽黑客(网安工程师)

news2024/10/5 19:11:47

从事网络安全这么多年,总是会被问到很多奇奇怪怪的问题:

「叔叔,我Steam账号被盗了,能帮忙找回吗?我给你发红包」

「我的手机被监控了,生活和工作受到了严重影响,该怎么解决?」

「小H书账号被盗了找不回来,他一直诈pian我的粉丝怎么办?」

「能查得到手机定位吗」

其实我也能理解,毕竟「网络安全」的概念对大家来说是既神秘又遥远,谁知道究竟是个什么玩意儿?!

但我最不能理解的是还有人问我:网络安全是不是门槛特别高、自学根本学不了、普通人没办法入行?

一时间我都不知道是在夸我还是在贬低他自己了~

你说在互联网如此发达的今天,只要你动动手,网上随便一搜教程一大把,公开透明想怎么学就怎么学,怎么还会觉得网安很难入门呢!

千万别被「网络安全」这个词给唬住了呀,也不要觉得自学网络安全很难入门!!

一、自学网络安全的误区和陷阱

1.1、不要试图以编程为基础开始学习

在之前的文章中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多

一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少

1.2、不要把深度学习作为入门第一课

很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:

【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣

【2】深度学习对自身要求高,不适合自学,很容易走进死胡同

1.3、不要收集过多的资料

网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频

网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看


二、学习网络安全的一些前期准备

2.1、硬件选择

经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!

因此,不要打着学习的名义重新购买机器...

学渗透的电脑配置:
1、硬盘:最低1T的硬盘,推荐256G固态硬盘+1T机械硬盘(双硬盘插槽)。
2、内存:最低16G,因为可能要运行多个虚拟机。
3、CPU:最低i5,推荐i7
4、如果只在一个地方使用,可以买台式机,否则买笔记本更方便。

 

2.2、软件选择

很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习,如果你的是Mac系统,可以装双系统进行学习

至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java...

很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员

(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)

2.3、语言能力

我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)

比如说:肉鸡、挂马、shell、WebShell等等

三、自学网络安全学习路线

 

3.1、基础操作入门,学习基础知识

入门的第一步是学习一些当下主流的安全工具课程并配套基础原理的书籍,一般来说这个过程在1个月左右比较合适。

在这个阶段,你已经对网络安全有了基本的了解。如果你学完了第一步,相信你已经在理论上明白了上面是sql注入,什么是xss攻击,对burp、msf、cs等安全工具也掌握了基础操作。这个时候最重要的就是开始打地基!

所谓的“打地基”其实就是系统化的学习计算机基础知识。而想要学习好网络安全,首先要具备5个基础知识模块:

1.操作系统

2.计算机协议/网络

3.数据库

4.开发语言

5.常见漏洞原理

学习这些基础知识有什么用呢?

计算机各领域的知识水平决定你渗透水平的上限。

【1】比如:你编程水平高,那你在代码审计的时候就会比别人强,写出的漏洞利用工具就会比别人的好用;

【2】比如:你数据库知识水平高,那你在进行SQL注入攻击的时候,你就可以写出更多更好的SQL注入语句,能绕过别人绕不过的WAF;

【3】比如:你网络水平高,那你在内网渗透的时候就可以比别人更容易了解目标的网络架构,拿到一张网络拓扑就能自己在哪个部位,拿到以一个路由器的配置文件,就知道人家做了哪些路由;

【4】再比如你操作系统玩的好,你提权就更加强,你的信息收集效率就会更加高,你就可以高效筛选出想要得到的信息

3.2、网络安全实战操作

1.挖SRC

挖SRC的目的主要是讲技能落在实处,学习网络安全最大的幻觉就是觉得自己什么都懂了,但是到了真的挖漏洞的时候却一筹莫展,而SRC是一个非常好的技能应用机会。

2.从技术分享帖(漏洞挖掘类型)学习

观看学习近十年所有0day挖掘的帖,然后搭建环境,去复现漏洞,去思考学习笔者的挖洞思维,培养自己的渗透思维​​​​​​

3.靶场练习

自己搭建靶场或者去免费的靶场网站练习,有条件的话可以去购买或者报靠谱的培训机构,一般就有配套的靶场练习


3.3、参加CTF比赛或者HVV行动

推荐:CTF比赛

CTF有三点:

【1】接近实战的机会。现在网络安全法很严格,不像之前大家能瞎搞

【2】题目紧跟技术前沿,而书籍很多落后了

【3】如果是大学生的话,以后对找工作也很有帮助

如果你想打CTF比赛,直接去看赛题,赛题看不懂,根据不懂的地方接着去看资料

CTF赛题复现平台

  • BUUCTF
  1. 拥有大量比赛的复现环境
  2. 国内较早使用动态靶机的CTF复现平台·定期举办各类公开赛
  3. 提供平台开源环境·较全的比赛Writeup
  • CTFHub
  1. 各类比赛历年真题
  2. 较为体系化的技能树
  3. 较全的CTF工具集
  4. 较全的赛事日历
  5. 较全的比赛WriteUp
  • BugKu
  1. 国内较早的CTF复现平台(在buu和ctfhub还没火的时候bugku很有名)·较为基础的题目
  2. 较全的WriteUp
  • Pwnable
  1. 适合Pwn新手入门题目较为友好

推荐:HVV(护网)

HVV有四点:

【1】也能极大的锻炼你,提高自身的技术,最好是参加每年举行的HVV行动

【2】能认识许多圈内的大佬,扩大你的人脉

【3】HVV的工资也很高,所以参加的话也能让你赚到不少钱

【4】和CTF比赛一样如果是大学生的话,以后对找工作也很有帮助


四、网络安全资料推荐

4.1、书单推荐

计算机操作系统:

【1】编码:隐藏在计算机软硬件背后的语言

【2】深入理解操作系统

【3】深入理解windows操作系统

【4】Linux内核与实现

编程开发类:

【1】 windows程序设计

【2】windwos核心变成

【3】Linux程序设计

【4】unix环境高级变成

【5】IOS变成

【6】第一行代码Android

【7】C程序语言设计

【8】C primer plus

【9】C和指针

【10】C专家编程

【11】C陷阱与缺陷

【12】汇编语言(王爽)

【13】java核心技术

【14】java编程思想

【15】Python核心编程

【16】Linuxshell脚本攻略

【17】算法导论

【18】编译原理

【19】编译与反编译技术实战

【20】代码整洁之道

【21】代码大全

【22】TCP/IP详解

【23】Rootkit : 系统灰色地带的潜伏者

【24】黑客攻防技术宝典

【25】加密与解密

【26】C++ 反汇编与逆向分析技术揭秘

【27】web安全测试

【28】白帽子讲web安全

【29】精通脚本黑客

【30】web 前端黑客技术揭秘

【31】程序员的应用

【32】英语写作手册:风格的要素

4.2、常见的网络安全及论坛

  • 看雪论坛
  • 安全课
  • 安全牛
  • 安全内参
  • 绿盟
  • 先知社区
  • XCTF联盟

五、网络安全面试题整理

1、SQL注入的原理是什么?

SQL注入攻击是通过将恶意构造的SQL语句插入到应用的输入参数中,再到后台SQL服务器上解析执行的一种攻击方式。

2、SQL注入产生的原因是什么?

程序开发过程中未注意规范书写SQL语句,并且未对输入参数进行过滤。

3、MySQL注入,写入一句话木马需要什么条件?

使用into outfile把木马写入web目录拿到webshell需要以下几个条件:

1.拿到的mysql用户拥有file_priv权限(show global variables like '%secure%'查看)

2.对web目录有写权限

3.知道系统物理路径(需要into outfile (‘路径’))

4、SQL注入的流程是什么?

1.判断注入点(通过扫描器,单引号,特殊符号等)

2.确定注入方式(字符型,数字型,报错注入等)

3.确定数据库类型

4.依次爆出库名–>表名–>列名–>数据

5.得到有用的数据进行利用

5、常见的web中间件有哪些?

1.IIS

2.Apache

3.Nginx

4.Tomcat

5.Jboss

6、MySQL注入,5.0以上和5.0以下有什么区别?

Mysql5.0以后默认添加了一个information_schema的数据库,该数据库中的表都是只读的,不能进行删除,更新,插入等操作。但它记录了数据库中所有的库名、表名、列名等重要信息。

information_schema.schemata:存储了数据库中所有数据库的库名

information_schema.tables:存储了数据库中所有表的表名

information_schema.colums:存储了数据库中所有列的列名

7、SQL注入的种类都有哪些?

1.按照注入点数据类型分:

  • 数字型
  • 字符型

2.按照数据传参方式分:

  • get型
  • post型
  • header头部注入(UA、COOKIE等)

3.按照注入方法分:

  • union注入
  • 布尔盲注
  • 时间盲注
  • 报错注入
  • 二次注入
  • 宽字节注入

8、什么是宽字节注入?

主要利用mysql在使用GBK编码时,会人为两个字符是一个汉字的特性,在转义单引号(0x27)的时候,如果加了过滤转义符号/(0x5c),我们可以利用GBK编码在/前加0xdf或者其他可以组成汉字的十六进制字符组成一个汉字(df5c)从而将单引号逃逸出来的注入方式。

9、宽子节注入如何防御?

1.数据库使用utf-8编码

2.使用gbk编码的修补方案:

  • 使用mysql_set_charset(GBK)指定字符集
  • 使用mysql_real_escape_string进行转义

原理:mysqlmysql_real_escape_string与addslashes的不同之处在于其会考虑当前设置的字符集,不会出现前面df与5c拼接为一个宽字节问题。当前字符集需要使用mysql_set_charset进行指定。这两个添加缺一不可。

10、什么是二次注入?

在存入数据库的时候做了过滤,但是在取数据的时候没有做过滤,从而产生的注入方式。

11、SQL注入如何写入shell?

1.利用mysql的into outfile写入webshell

2.利用sqlmap的–os-shell方式写入webshell

12、SQL注入如何防御?

1.SQL预编译

2.严格限制参数类型,只能为数字

3.加入黑白名单

4.转义特殊字符

5.使用WAF

13、SQL注入如何绕过WAF?

1.大小写、双写绕过

2.替换关键字

3.使用编码

4.使用注释

5.使用等价函数与命令

6.使用特殊符号

7.填充垃圾数据

14、XSS原理是什么?

攻击者通过在web界面中嵌入恶意脚本(通常为js代码),造成用户在浏览网页时,控制用户浏览器进行操作的攻击方式

15、XSS都有什么分类?分别介绍一下

1.反射型

一般是在url构造恶意js,将链接发给目标用户,当用户访问该链接的时候,会向服务器发起一个GET请求来提交一个带有恶意代码的链接

2.DOM型

脚本程序可以通过DOM来动态修改页面内容。

3.持久型

常见的就是在博客留言板,反馈投诉,论坛评论等将恶意代码和正文都存入服务器的数据库,每次用户访问都会触发恶意代码。

16、XSS注入语句如何写?

17、什么是XSS盲打,如何利用?

18、XSS如何防御?

19、CSRF漏洞原理是什么?

20、CSRF如何防御(说三种方法)?

21、CSRF与XSS的区别是什么?

22、SSRF漏洞有什么危害?

23、SSRF漏洞可以用哪些协议来利用?

24、SSRF都涉及哪些危险函数?

25、SSRF届洞有防御的情况下可以怎么绕过?

26、如何判断是否存在SSRF漏洞?

27、SSRF漏洞如何防御?

28、SSRF漏洞可能存在在哪些功能中?

29、XML注入的原理是什么?

30、XML注入漏洞如何修复?

31、文件上传漏洞的原理是什么?

32、文件上传漏洞有哪些危害?

33、文件上传漏洞常见的绕过方法有哪些?

34、描述Nginx解析漏洞原理

35、描述Apache解析漏洞原理

36、描述lIS解析漏洞的原理

37、文件上传漏洞如何防御?

38、文件包含漏洞的原理是什么?

39、文件包含可以使用哪些函数?

40、文件包含怎么利用?

41、常见的命令执行函数有哪些?

42、命令执行在有黑名单的情况下可以使用哪些方式进行绕过?

43、命令执行如何防御?

44、什么是越权漏洞?

45、越权漏洞如何修复?

46、发送验证码时通常会有什么漏洞,以及如何防御?

47、支付时会涉及哪些漏洞?

48、登陆功能会有哪些漏洞,如何防御?

49、描述—下反序列化漏洞的原理

50、说出五种Google Hack语法

51、什么是同源第略?

52、分别介绍一下session和cookie,以及二者的关系

53、如何绕过CND获取网站的真实IP?

54、可以使用什么工具来收集子域名?

55、简述—下Burpsuite lntrude模块的四种模式

56、获取webshell的方式都有哪些?

57、你是如何做代码审计的?如何保证代码审计的全面性?

我把文章中提到的学习路线、学习书籍、HW/SRC挖洞笔记、面试题都给大家做了一个汇总,大家有需要的话,可以参考一下哈

网络安全文档笔记

 网络安全视频教程

 需要定制学习路线学习资料的评论区留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学会这两件事,让你在人生路上走得更远

人生,就是一场不断前行,没有退路的旅行,也是一场不断醒悟的过程。 看透,然后醒悟;放下,然后幸福。 有些事,看淡就好;有些人,看穿就行。 不管世事如何艰难,只要…

Compose也能开发iOS了,快来体验~

前言 在之前,我们已经体验了Compose for Desktop 与 Compose for Web,目前Compose for iOS 已经有尚未开放的实验性API,乐观估计今年年底将会发布Compose for iOS。同时Kotlin也表示将在2023年发布KMM的稳定版本。 届时Compose-jb KMM 将实…

腾讯云4核8G服务器12M带宽支持多少人访问?

腾讯云轻量4核8G12M服务器配置446元一年,518元12个月,腾讯云轻量应用服务器具有100%CPU性能,系统盘为180GB SSD盘,12M带宽下载速度1536KB/秒,月流量2000GB,折合每天66.6GB流量,超出月流量包的流…

解锁接口关联测试新技能!HttpRunner教你如何轻松搞定。

目录 前言: 一、安装HttpRunner 二、编写测试用例 三、运行测试用例 四、实现接口关联测试 五、总结 前言: 在接口自动化测试中,一个常见的场景就是需要对多个接口进行关联测试,例如登录后获取token,再利用token…

如何自学黑客?零基础自学黑客需要多久?

问题一:黑客如何学起? 必须从学习者的角度来看,如果你是一个已经学过编程,通晓几门语言的人那么这个答案就会和一个从没有接触过的计算机,甚至连什么叫高级语言还不知道的人有所区别的对待。 这就像是登珠穆朗玛峰一…

ARM实验5-流水灯仿真实验

一、实验名称:流水灯仿真实验 二、实验目的: 掌握ARM处理器的输入输出接口。掌握通过MDK提供的仿真功能,实现系统的仿真运行。通过该编程实验,进一步巩固和强化学生ARM汇编编程的能,ARM应用程序框架,培养…

chatgpt赋能python:Python中的主函数调用其它函数

Python中的主函数调用其它函数 Python语言是一种高级编程语言,它被广泛应用于大数据处理、人工智能、数据分析、网络编程以及Web开发等领域中。在Python中,我们可以使用函数来封装复杂的业务逻辑,使代码更加可读、可维护和可扩展。在本文中&…

基于docker部署testlink并集成mantis

使用docker pull命令拉取需要的镜像。由于testlink和mantis都需要存储相关数据,所以这里可以看到还拉取了一个mysql镜像。 # docker pull bitnami/testlink:1.9.16-r8 # docker pull vimagick/mantisbt # docker pull mysql:5.7.20 使用docker network命令中创建…

Flutter重构开发

最近学习了flutter技术,然后用flutter技术重构了线上项目的首页板块,较深入的理解flutter的状态管理和ui组件的使用,总结下遇到的几点问题。 - 使用gex的controller报错 Don’t use one refreshController to multiple SmartRefresher,It w…

2021年长三角高校数学建模竞赛B题锅炉水冷壁温度曲线解题全过程文档及程序

2021年长三角高校数学建模竞赛 B题 锅炉水冷壁温度曲线 原题再现: 在燃煤发电过程中,锅炉是一种重要的热能动力设备。它通过在炉膛中燃烧煤粉释放热量,将水加热成一定温度(或压力)的蒸汽,蒸汽再推动汽轮机…

C4d渲染农场的定义、应用领域和未来发展趋势

Cinema 4D(C4D)是一款常用于3D动画、建模和渲染的软件,由Maxon Computer开发。随着CG行业的不断发展和应用场景的多样化,C4D渲染农场成为了CG制作中不可或缺的一环。本文将深入介绍C4D渲染农场的概念、特点、应用以及未来发展趋势…

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放)

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放) 目录 应用背景操作步骤1、数据排序2、例如:职务按照 经理-主任-职员 排序3、排列第二种方法4、实操案例5、案例练习一方法一:通过公式函数增加辅助列方法二:用辅…

二分查找笔记

1.1 什么是算法? 定义 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous instructions, …

IO多路转接之select

本文分享的是IO多路转接中的select,其中包括select函数如何去使用,以及使用相关代码实现客户端向服务端发送消息的服务,从而更好地理解多路转接的select。 多路转接 多路转接是IO模型的一种,这种IO模型通过select函数进行IO等待&…

AI浪潮再掀低代码开发热,快来了解最新趋势!

在近些年的发展中,人工智能 (AI) 已融入我们社会和生活的方方面面。从聊天机器人和虚拟助手到自动化工业机械和自动驾驶汽车,我们已经越来越离不开AI技术了,哪怕是我们的日常生活中也充满了它的影子,我们很难忽视它的影响。 AI时代…

小程序、网页跳转App的原理

从不同的渠道,如小程序、二维码、网页等,直接跳转到App内对应的页面,并传递相关的参数信息,已经由拥有深度链接技术的SDK实现了,App只需接入这类SDK即可获得多样化跳转的功能。本文将详细介绍多样化跳转的原理。 多样…

Unity | HDRP高清渲染管线学习笔记:基本操作

目录 一、场景整体环境光强度 1.HDRI Sky 2.Shadows 二、屏幕后处理效果(Post Processing) 1.Exposure 2.Post-processing/Tonemapping 三、抗锯齿 四、添加光源 1.Light Explorer窗口 2.光照探针组 3.反射探针 4.烘焙光照贴图 本文主要是了解HDRP基本操作&#xf…

高完整性系统:Hoare Logic

目录 1. 霍尔逻辑(Proving Programs Correct) 1.1 警告(Caveats) 1.2 误解(Misconception) 1.3 编程语言(Programming Language) 1.4 程序(Programs) 1…

Html源代码加密?

什么是Html源代码加密? 使用JavaScript加密转化技术将Html变为密文,以此保护html源代码,这便是Html源码加密。 同时,这种加密技术还可实现网页反调试、防复制、链接加密等功能。 应用场景 什么情况下需要Html源代码加密&#x…

clipboard复制粘题问题

clipboard复制粘贴问题 简单的clipboard用法引入clipboard使用方法 通过监听获取剪切板数据自定义获取clipboard剪切板值 记录下项目中使用clipboard复制粘题问题 简单的clipboard用法 引入clipboard npm install clipboard --save官网地址:传送门 使用方法 通过监听获取剪切…