将安全君呀设为"星标⭐️"
第一时间收到文章更新
声明: 安全君呀 公众号文章中的技术只做研究之用,禁止用来从事非法用途,如有使用文章中的技术从事非法活动,一切后果由使用者自负,与本公众号无关。
文章声明:本篇文章内容部分选取网络,如有侵权,请告知删除。
下面分享大家一个小编之前参加启明安服岗面试的过程,涵盖多个环节,希望能够帮到大家:
一、简历筛选与初步沟通
在投递简历后,人力资源部门会对简历进行筛选。如果简历符合基本要求,可能会收到电话或邮件,确认一些基本信息,例如应聘动机、目前的工作状态、可入职时间等,同时会简要介绍公司及岗位情况,并安排下一步的面试。
二、笔试环节
部分启明安服岗面试会设置笔试(线上),内容包括:
1. 网络安全基础知识:如网络协议(TCP/IP 等)的理解、常见网络攻击手段(SQL 注入、XSS 等)的原理与防范方法、防火墙与入侵检测系统的原理等。
2. 操作系统安全:Windows 和 Linux 系统的安全设置、权限管理、漏洞修复等方面的知识。
3. 安全工具使用:例如 Nmap 端口扫描工具的使用方法与结果分析、Wireshark 抓包分析的基本操作与常见场景应用等。
4. 安全法规与标准:对国内(如网络安全法等)及国际上相关安全法规、行业标准(如 PCI DSS 等)的了解。
三、技术面试
1. 面试官开场
面试官通常是安全服务团队的技术骨干或负责人。会先进行简单的自我介绍,然后让应聘者介绍自己,重点关注在网络安全领域的经验、技能特长以及过往的项目经历等。
2. 专业知识深入考察【重点】
针对网络安全技术进行详细提问,例如:
详细阐述一次进行渗透测试的完整流程,包括前期信息收集的方法与工具(如子域名枚举、端口扫描策略等)、漏洞发现与利用的实际案例及应对措施、后渗透阶段的操作与目标。
如何进行安全漏洞的评估与分级?依据哪些标准和因素?
对于常见的安全框架(如 OWASP Top 10 中的漏洞类型),结合实际经验谈谈如何在企业环境中进行防范与检测。
讲述在处理安全事件时的应急响应流程,包括事件检测、隔离、调查与恢复的步骤与技术手段。
下面分享几道真实有用的网络安全技术面试题:
1、什么是硬链接和软链接?
1)硬链接
由于 Linux 下的⽂件是通过索引节点(inode)来识别⽂件,硬链接可以认为是⼀个指针,指向⽂件索引节点的指针,系统并不为它重新分配 inode 。每添加⼀个⼀个硬链接,⽂件的链接数就加 1 。
不⾜:1)不可以在不同⽂件系统的⽂件间建⽴链接;2)只有超级⽤户才可以为⽬录创建硬链接。
2)软链接
软链接克服了硬链接的不⾜,没有任何⽂件系统的限制,任何⽤户可以创建指向⽬录的符号链接。因⽽现在更为⼴泛使⽤,它具有更⼤的灵活性,甚⾄可以跨越不同机器、不同⽹络对⽂件进⾏链接。
不⾜:因为链接⽂件包含有原⽂件的路径信息,所以当原⽂件从⼀个⽬录下移到其他⽬录中,再访问链接⽂件,系统就找不到了,⽽硬链接就没有这个缺陷,你想怎么移就怎么移;还有它要系统分配额外的空间⽤于建⽴新的索引节点和保存原⽂件的路径。
实际场景下,基本是使⽤软链接。总结区别如下:
· 硬链接不可以跨分区,软件链可以跨分区。
· 硬链接指向⼀个 inode 节点,⽽软链接则是创建⼀个新的 inode 节点。
· 删除硬链接⽂件,不会删除原⽂件,删除软链接⽂件,会把原⽂件删除。
2、解释Linux中的⽂件权限?
在 Linux 中,有 3 种主要类型的⽂件权限:读、写和执⾏。这些权限可以递归地分配给⽂件或⽬录。作为⼀个多⽤户系统,您可以将这些权限分配给 root ⽤户、组,甚⾄是使⽤该系统的其他⽤户。
Read:读取权限授予使⽤打开和读取⽂件的能⼒。
Write:写⼊权限允许⽤户打开和修改或编辑⽂件的内容并保存更改。
Execute:这允许⽤户执⾏或运⾏可执⾏的⽂件或程序或 shell 脚本。
3、风险评估三要素?
-
资产:资产价值
-
威胁:威胁主体、影响对象、出现频率、动机等
-
脆弱性:资产弱点的严重程度
4、渗透测试流程
-
项目访谈
-
信息收集:whois、网站源IP、旁站、C段网站、服务器系统版本、容器版本、程序版本、数据库类型、二级域名、防火墙、维护者信息
-
漏洞扫描:Nessus, AWVS
-
手动挖掘:逻辑漏洞
-
验证漏洞
-
修复建议
-
(如果有)基线检查/复验漏洞
-
输出报告
-
概述
-
测试基本信息
-
测试范围
-
测试时间
-
测试任务
-
测试过程
-
信息安全风险综合分析
-
整体风险分析
-
风险影响分析
-
系统安全分析
-
安全漏洞列表
-
解决方案建议
-
复测报告
5、挖过什么逻辑漏洞
-
订单任意金额修改
相同价格增加订单数量,相同订单数量减少产品价格,订单价格设定为负数。
预防思路:
-
订单需要多重效验
-
订单数值较大的时候需要人工审核
-
验证码回传
漏洞一般发生在账号密码找回、账号注册、支付订单等。验证码发送途径一般为手机短信、邮箱邮件
预防思路:
-
response数据内不包含验证码,验证方式主要采取后端验证,但是缺点是服务器的运算压力也会随之增加
-
如果要进行前端验证的话也可以,但是需要进行加密
-
未进行登陆凭证验证
有些业务的接口,因为缺少了对用户的登陆凭证的效验或者是验证存在缺陷,导致黑客可以未经授权访问这些敏感信息甚至是越权操作。比如后台页面、订单ID枚举、敏感信息可下载、没验证ID或cookie验证导致越权。
预防思路:
-
对敏感数据存在的接口和页面做cookie,ssid,token或者其它验证
-
接口无限制枚举
-
某电商登陆接口无验证导致撞库
-
某招聘网验证码无限制枚举
-
某快递公司优惠券枚举
-
某电商会员卡卡号枚举
预防思路:
-
在输入接口设置验证,如token,验证码等。如果设定验证码,最好不要单纯的采取一个前端验证,最好选择后端验证。如果设定token,请确保每个token只能采用一次,并且对token设定时间参数。
-
注册界面的接口不要返回太多敏感信息,以防遭到黑客制作枚举字典。
-
验证码不要用短数字,尽量6位以上,最好是以字母加数字进行组合,并且验证码需要设定时间期限。
-
优惠券,VIP卡号请尽量不要存在规律性和简短性,并且优惠券最好是以数字加字母进行组合。
6、你常用的渗透工具有哪些,最常用的是哪个?
常用工具:Nessus、AWVS、Nikto、SQLmap、Nmap、Metasploit、Hydra
kali信息收集工具
-
dig
-
whois
-
host:查询dns服务器
-
nslookup
-
域名枚举:fierse -dns
-
maltego
-
onesixtyone
流量分析WireShark
7、MySQL面试题之什么是事务?
事务是一组原子性的SQL语句或者说是一个独立的工作单元,如果数据库引擎能够成功对数据库应用这组SQL语句,那么就执行,如果其中有任何一条语句因为崩溃或其它原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。举个银行应用的典型例子:
假设银行的数据库有两张表:支票表和储蓄表,现在某个客户A要从其支票账户转移2000元到其储蓄账户,那么至少需求三个步骤:
a.检查A的支票账户余额高于2000元;
b.从A的支票账户余额中减去2000元;
c.在A的储蓄账户余额中增加2000元。
这三个步骤必须要打包在一个事务中,任何一个步骤失败,则必须要回滚所有的步骤,否则A作为银行的客户就可能要莫名损失2000元,就出问题了。这就是一个典型的事务,这个事务是不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,不可能只执行其中一部分,这也是事务的原子性特征。
8、Mysql一个@和两个@什么区别
-
@为用户变量,使用SET @var1=1赋值
-
@@ 为系统变量 ,包括全局变量show global variables G;和会话变量show session variables G;
9、如何过WAF
-
确定waf类型,狗、盾、神、锁、宝、卫士
-
使用注释符号或者特殊符号或者多个特殊符号重复
--
-- - //5.6.12特性,需要加空格
--+
//
/**/ //c风格注释
/**//**/ //多个注释
/*letmetest*/
;
id=0e1union select
SQLite3 0A 0D 0C 09 20
MySQL5 09 0A 0B 0C 0D A0 20
PosgresSQL 0A 0D 0C 09 20
Oracle 11g 00 0A 0D 0C 09 20
MSSQL 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20
使用sql内置函数或者关键字
extractvalue
updatexml 报错注入
UPDATEXML (XML_document, XPath_string, new_value);
or updatexml(1, concat(0x7e, (version()), 0x7e), 0);
> select * from users where id = 1 and updatexml(1, concat(0x7e, (version()), 0x7e), 0);
> version() database() (SELECT concat(column_name) FROM information_schema.columns WHERE table_name='users' limit 0,1
floor()
ceil()
Mid(version(),1,1)
Substr(version(),1,1)
Substring(version(),1,1)
concat(version(),'|',user());
concat_ws('|',1,2,3)
Char(49)
Hex('a')
Unhex(61)
过滤了逗号
(1)limit处的逗号:
limit 1 offset 0
(2)字符串截取处的逗号
mid处的逗号:
mid(version() from 1 for 1)
利用容器特性,比如iis+asp的环境可能会吞掉%(f%rom->from)造成注入,或者iis支持unicode解析,当我们请求的url存在unicode字符串的话iis会自动将其转换,但waf可能不会拦截造成注入
畸形协议/请求。asp/asp.net在解析请求的时候,允许application/x-www-form-urlencoded的数据提交方式;php+apache解析协议除了get/post外随便定义协议也可能过
%0a换行
多次URL编码,waf的一根筋过滤
unlencode
base64
json
binary
querystring
htmlencode
unicode
php serialize
http参数污染,id=1&id=2&id=3id=1,2,3
10、CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer。
XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
3. 技术实践探讨
可能会给出一些实际的安全场景或问题,让应聘者现场分析解决方案,例如:
某公司发现其内部网络存在异常流量,怀疑遭受 APT 攻击,你会如何进行调查与溯源?
给出一个 Linux 服务器的系统日志片段,分析其中可能存在的安全风险与应对措施。
如何对一个新上线的电商网站进行安全加固,从网络架构、应用程序到服务器配置等方面进行阐述。
4. 安全工具与技术应用
- 询问应聘者对各类安全工具的熟练程度,如:
- 如何使用 Metasploit 进行漏洞利用与 payload 定制?
- 对 Burp Suite 在应用安全测试中的功能与使用技巧有哪些了解?
- 能否使用 Python 编写一些简单的安全脚本,如端口扫描器、密码暴力破解脚本(要求解释代码逻辑与关键函数)。
5. 新技术与行业趋势了解
- 考察应聘者对网络安全行业新兴技术的关注与理解,例如:
- 谈谈对零信任安全模型的理解以及其在企业网络安全架构中的应用场景。
- 对于区块链技术中的安全挑战与应对措施有哪些认识?
- 如何看待人工智能在网络安全攻防中的作用与发展趋势?
6. 项目经验回顾
- 要求应聘者详细介绍过往参与的网络安全项目,包括项目规模、所承担的角色与职责、遇到的技术难题及解决方案等,例如:
- 在[项目名称]中,是如何带领团队完成对客户大型企业网络的安全评估与整改工作的?取得了哪些成果?
- 讲述在[特定安全项目]中,与开发团队协作进行应用安全漏洞修复的过程与经验教训。
总结
以上就是这次面试过程啦,因篇幅限制还有好多内容没有与大家分享,关注一下,以后小编会持续输出干货,同大家一起在网安之路越走越远。
原文始发于微信公众号(安全君呀):记一次全面的启明安服岗面试过程
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论