前言
为了拿到心仪的 Offer 之外,除了学好网络安全知识以外,还要应对好企业的面试。
作为一个安全老鸟,工作这么多年,面试过很多人也出过很多面试题目,也在网上收集了各类关于渗透面试题目,里面有我对一些问题的见解,希望能对大家有所帮助。
注:有一部分是根据回忆总结的,可能描述的有些问题。安全的体系很大,这些只是冰山一角而已。 感兴趣的同学可以点击我的地址,面试题及答案都已汇总到网盘当中, 可以关注后台回复“资料”自取~
一、web 安全岗面试题
1.1、什么是 SQL 注入攻击?如何防止 SQL 注入攻击?
SQL 注入攻击是指攻击者通过向 Web 应用程序的输入框中插入恶意 SQL 语句来执行未经授权的操作。防止 SQL 注入攻击的方法包括使用参数化查询和输入验证,以及避免使用动态 SQL 语句。
1.2、什么是跨站点脚本攻击(XSS)?如何防止 XSS 攻击?
跨站点脚本攻击是指攻击者通过向 Web 应用程序的输入框中插入恶意脚本来窃取用户数据或执行未经授权的操作。防止 XSS 攻击的方法包括对输入数据进行验证和转义、使用内容安全策略(CSP)以及限制 Cookie 的范围。
1.3、什么是跨站请求伪造(CSRF)攻击?如何防止 CSRF 攻击?
跨站请求伪造攻击是指攻击者利用用户已经通过身份验证的会话执行未经授权的操作。防止 CSRF 攻击的方法包括使用同步令牌和使用双重身份验证。
1.4、什么是点击劫持攻击?如何防止点击劫持攻击?
点击劫持攻击是指攻击者通过将恶意网站嵌入到合法网站的透明层中来欺骗用户进行操作。防止点击劫持攻击的方法包括使用 X-Frame-Options HTTP 头和使用 JavaScript 框架来防止页面的嵌入。
1.5、什么是会话劫持攻击?如何防止会话劫持攻击?
会话劫持攻击是指攻击者通过获取用户的会话 ID 来冒充该用户。防止会话劫持攻击的方法包括使用安全的 Cookie(如 HttpOnly 和 Secure 标志)和使用双重身份验证。
1.6、什么是文件包含漏洞?如何防止文件包含漏洞?
文件包含漏洞是指攻击者通过向 Web 应用程序中的文件包含函数提供恶意文件名来执行未经授权的操作。防止文件包含漏洞的方法包括限制包含文件的目录、使用白名单来验证文件名、以及使用安全的文件包含函数。
1.7、什么是缓冲区溢出攻击?如何防止缓冲区溢出攻击?
缓冲区溢出攻击是指攻击者通过向程序中的缓冲区输入数据中输入超出缓冲区大小的数据来修改程序的执行流程。防止缓冲区溢出攻击的方法包括使用堆栈保护器和数据执行保护。
1.8、什么是端口扫描?如何防止端口扫描?
端口扫描是指攻击者通过扫描网络上的计算机来查找开放的端口,从而找到可以攻击的目标。防止端口扫描的方法包括使用网络防火墙、隐藏不需要开放的端口、和使用入侵检测系统(IDS)和入侵防御系统(IPS)来监控和防御攻击。
1.9、什么是中间人攻击?如何防止中间人攻击?
中间人攻击是指攻击者在用户与服务器之间插入自己的计算机,从而窃取数据或执行未经授权的操作。防止中间人攻击的方法包括使用 HTTPS 协议、使用数字证书验证、和使用公钥基础设施(PKI)。
1.10、什么是密码破解攻击?如何防止密码破解攻击?
密码破解攻击是指攻击者通过暴力猜测密码来访问受保护的资源。防止密码破解攻击的方法包括使用强密码策略、使用多因素身份验证、和使用密码哈希函数来加密存储密码。
二、内网安全面试题
当涉及到内网安全时,通常需要考虑以下几个方面:身份验证、网络防御、漏洞管理、监视和响应。下面是 10 道常见的内网安全面试题和答案:
2.1、什么是入侵检测系统(IDS)和入侵防御系统(IPS)?它们有何不同?
IDS 和 IPS 都是网络安全设备,它们的作用是监视网络活动并响应潜在威胁。IDS 被用来监视网络流量并生成警报,以便安全团队能够及时进行调查。IPS 则可以根据预设规则自动阻止潜在的攻击。这是两个不同的设备,其中 IDS 被用来监视网络流量并生成警报,而 IPS 能够自动响应潜在的威胁。
2.2、什么是多因素身份验证?为什么它比单一因素身份验证更安全?
多因素身份验证是一种要求用户提供两个或多个不同类型的身份验证凭证的身份验证方法。这可以包括密码、智能卡、生物识别或其他方式。与单因素身份验证不同,多因素身份验证可以提供更高的安全性,因为攻击者需要突破多个屏障才能成功访问系统。
2.3、什么是端口扫描?它可以用于什么目的?
端口扫描是指在目标计算机上扫描开放端口的行为。攻击者可以使用端口扫描工具来确定目标计算机上开放的端口,以便针对性地发起攻击。端口扫描也可以用于管理目标网络,以便发现网络中开放的端口,并确保它们只用于预期的服务。
2.4、什么是漏洞评估?它可以用于什么目的?
漏洞评估是指评估系统中存在的漏洞和安全风险的过程。它包括识别漏洞、评估其危害程度和提出修补建议。漏洞评估可以帮助组织了解其安全性状况,并确定需要采取哪些措施来缓解安全风险。
2.5、什么是网络钓鱼?如何避免成为受害者?
网络钓鱼是指使用虚假网站或电子邮件来欺骗用户提供敏感信息的行为。这种行为通常会导致身份盗窃或其他安全问题。为了避免成为网络钓鱼的受害者,用户应该始终保持警惕,特别是在接收电子邮件或点击链接时。建议用户查看发送者地址、链接指向的网址以及邮件内容是否真实可信。用户还应该使用安全的密码,并定期更改密码,以及使用双因素身份验证来增加账户安全性。
2.6、什么是内网防火墙?为什么需要它?
内网防火墙是一种用于保护内部网络免受外部攻击的安全设备。它可以控制网络流量、监视和记录网络活动,并在必要时阻止不安全的连接。内网防火墙可以帮助组织保护其内部系统和数据不被未经授权的用户和攻击者访问。
2.7、什么是远程桌面协议(RDP)攻击?如何避免?
RDP 攻击是指攻击者利用 RDP 协议的漏洞或使用暴力破解方法获取对远程计算机的访问权限。为了避免 RDP 攻击,组织可以采取以下措施:限制 RDP 访问,配置安全设置、使用多因素身份验证,禁用弱密码和配置防火墙以限制入站流量。
2.8、什么是内网监视?它有什么作用?
内网监视是指通过实时监视网络流量来检测安全威胁的过程。通过内网监视,安全团队可以及时发现和响应网络攻击,保护内部系统和数据免受损害。内网监视可以通过使用入侵检测系统(IDS)或网络流量分析工具来实现。
2.9、什么是漏洞管理?为什么它很重要?
漏洞管理是一种持续的过程,用于识别和修补系统中存在的漏洞和安全风险。漏洞管理可以帮助组织确保其系统和应用程序保持最新的补丁和安全更新,并减少攻击者利用漏洞的机会。漏洞管理也可以提高组织的合规性和监管符合性。
2.10、什么是网络拓扑?为什么它很重要?
网络拓扑是指计算机网络中设备之间物理或逻辑连接的结构。网络拓扑可以描述网络中设备之间的关系,并确定攻击者可能利用的漏洞和入侵点。了解网络拓扑可以帮助安全团队了解内部网络的结构和特点,并采取适当的安全措施来保护其系统和数据。例如,使用隔离网络、强密码、双因素身份验证等措施来保护网络拓扑结构。
这些是一些内网安全面试题及答案的例子,希望对您有所帮助!请记得,内网安全是一个广泛的话题,涉及到许多不同的方面,因此还有很多其他的问题和答案,您可以继续学习和探索。
三、等保测评面试题
3.1、什么是等保测评?等保测评的主要目的是什么?
等保测评是指对网络安全等级保护的一种评估方法,主要是为了对网络安全进行评估和提高。其主要目的是为了建立网络安全评估机制,推动网络安全等级保护制度的建设,提升网络安全保障能力,保护关键信息基础设施。
3.2、请简述网络安全保护等级划分及其涵义。
网络安全保护等级分为五个等级,分别是一级(安全保密),二级(重要)、三级(较重要)、四级(一般)、五级(不重要)。其中一级安全保密是最高级别,五级不重要是最低级别。不同等级对应着不同的安全防护措施和标准。
3.3、等保测评包括哪些主要内容?
等保测评主要包括:网络安全管理、网络安全技术、网络安全事件处置、网络安全监测等四个方面。
3.4、等保测评中的网络安全管理主要包括哪些方面?
等保测评中的网络安全管理主要包括组织机构、管理制度、人员管理、安全意识、应急预案等方面。
3.5、等保测评中的网络安全技术主要包括哪些方面?
等保测评中的网络安全技术主要包括网络设备、网络拓扑结构、安全策略、网络访问控制、加密技术、安全审计等方面。
3.6、等保测评中的网络安全事件处置主要包括哪些方面?
等保测评中的网络安全事件处置主要包括事件响应、安全漏洞管理、风险评估等方面。
3.7、等保测评中的网络安全监测主要包括哪些方面?
等保测评中的网络安全监测主要包括安全事件监测、安全态势感知、安全运行监测等方面。
3.8、等保测评的评估周期是多长时间?
等保测评的评估周期一般为三年,但根据实际情况可以缩短或者延长。
3.9、等保测评的结果包括哪些?
答:等保测评的结果包括测评报告、评估结果和等级判定。
3.10、等保测评的实施流程是什么?
等保测评的实施流程主要包括以下几个步骤:
- 等保测评准备:明确测评范围和目标,准备测评资料和环境。
- 测评申报:申报测评项目,并提交相关材料。
- 测评评估:评估人员对测评对象进行评估,包括现场检查、文件审核、访谈调查等方式。
- 测评报告:评估人员编写测评报告,对评估结果进行说明和分析。
- 测评反馈:对评估结果进行反馈,并提出整改建议。
- 整改复查:对整改情况进行复查,并确认整改是否合格。
- 测评结果:根据评估结果和等级判定,颁发等级证书。
四、CTF面试题
4.1 说一个印象深刻的CTF的题目
- Padding Oracle->CBC->密码学(RSA/AES/DSA/SM)
- CRC32
- 反序列化漏洞
4.2 sql二次注入
第一次进行数据库插入数据的时候,仅仅只是使用了 addslashes 或者是借助get_magic_quotes_gpc 对其中的特殊字符进行了转义,在写入数据库的时候还是保留了原来的数据,但是数据本身还是脏数据。在将数据存入到了数据库中之后,开发者就认为数据是可信的。在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行进一步的检验和处理,这样就会造成SQL的二次注入。
交友网站,填写年龄处是一个注入点,页面会显示出与你相同年龄的用户有几个。使用and 1=1确定注入点,用order by探测列数,union select探测输出点是第几列,
交友网站,填写年龄处是一个注入点,页面会显示出与你相同年龄的用户有几个。使用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
修复:在从数据库或文件中取数据的时候,也要进行转义或者过滤。