虽然现在的网络安全大都是指渗透测试,但是并不代表只有渗透测试这一个方向,除此之外还有二进制逆向这个方向。以下会对这两个方向分别对您进行详解。
渗透测试方向
1、学习编程语言
(1)网站如何搭建的?HTML、CSS、JavaScript等。
(2)Python语言,方便以后自己写爬虫等。
(3)数据库(MySQL),数据库类型有很多,就不一一介绍了。
2、系统相关知识
(1)熟悉Windows系统,以及常用命令。
(2)熟悉Linux下的常用命令。
3、网络安全知识
(1)ISO七层模型。
(2)HTTP协议请求。状态码,区分POST和GET,最简单的方法就是使用Chrome浏览器中F12查看“Network”标签中的HTTP请求响应,来了解HTTP协议请求。另外HTTP中的头参数也需要有一定的了解:user_agent、X-Forwarded-For、Referer、clien_ip、Cookie等。
4、网络安全常用工具
(1)Web安全定义以及攻击Web安全的手段:初步对Web安全进行一个了解。
(2)web安全相关原理知识及概念:浏览器、服务器等。
(3)主流漏洞的原理与利用:XSS、CSRF等。
(4)熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。
5、漏洞挖掘实战训练以及审计复现
最重要的还是要做实战练习,可以在靶场试着挖漏洞,查漏补缺,也可以参加CTF比赛,增进技术。
二进制逆向方向
1、语言学习(C语言、汇编语言),对以后帮助很大。
汇编语言通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。
这两种语言都适合底层开发,也就是我们通畅所说的安全研发。
2、系统方面知识(Windows SDK&MFC、linux系统、X86等)。
现在的安全产品大都集中在各个操作系统上,漏洞、病毒等也都是随着操作系统而产生,操作系统的知识当然得掌握,而且如果做安全产品研发也是以操作系统为基础的。
3、软件逆向与调试相关内容。
当你看到别人写的某个程序能够做出某种漂亮的动画效果,你通过反汇编、反编译和动态跟踪等方法,分析出其动画效果的实现过程,这种行为就是逆向工程;不仅仅是反编译,而且还要推倒出设计,并且文档化,还可以将这些产品优势运用到自家产品中。
4、恶意代码分析、二进制漏洞利用等。
产品研发少不了更新换代,新一代产品就是摒弃上一代产品的缺点,而产品哪里有问题,新的产品要防范什么病毒,就需要对已知病毒进行破解分析,找到规避方案。
以上就是两个方向需要学习的知识点了。如何学习呢?学习方法有多种,例如自学、线上学习、线下培训班学习,这些都是学习方法,学习期间可以搭配一下教学视频、书本等,无论最终选择哪种学习方法,记住一点:坚持。这边也为您列了一些书籍,方便您参考。
1、《Head First HTML与CSS(第2版)》
2、《PHP和MySQL Web开发(第5版)》
3、《SQL必知必会(第4版)》
4、《Head First Python(第二版)》
5、《白帽子讲Web安全》
6、《图解HTTP》
7、《SQL注入攻击与防御》
8、《Web安全漏洞原理及实战》
9、《黑客免杀攻防》
10、《代码审计》
我下面也给大家整理了一些网络安全的资料,大家不想一个一个去找的话,可以参考一下这些资料哈
视频教程
SRC&黑客技术文档
黑客工具合集