vvmdx / Sec-Interview-4-2023
- четверг, 24 февраля 2022 г. в 00:30:18
一个2023届毕业生在毕业前持续更新、收集的安全岗面试题及面试经验分享~
一个2023届毕业生在毕业前持续更新、收集的安全岗面试题及面试经验分享~
最后欢迎大家fork项目!xdm自己有面试经验的话也欢迎发pr!有分享就有收获!
若有不方便公开的内容请联系本人第一时间删除!
目录
感谢 PolarPeak
、 lalalashenle
、 4ra1n
师傅的分享!
字节直接找朋友内推的效率很高,当天上午投简历,下午就约了面试,裸面挺痛苦的建议复习一下再去
时长:15分钟
时长:50分钟
很奇葩的剧情,一面面试官面完告诉我有base北京base深圳问我是不是想要深圳的,我说是,结果过了一个多星期hr告诉我因为我一面面试官是北京的,然后我选了深圳,所以一面不作数,重新约了一面
接着一面这天中午又收到了感谢信,然后看官网状态是流程已终止,本以为没得面了没想到还是正常进行....
等到二面才发现原来已经变成安全研发了,本来我投的是安全研究的...
时长:45分钟
自我介绍
A护网做了什么
做哪一层的处置,waf?ids?
遇到的问题是什么,有什么印象深刻的处置
怎么解决误报过多的情况,有做过什么规则能解决这个情况的
他的内网误报是在办公网还是生产网
比如mysql也会执行powershell,怎么做防护(前面说了很多内网误报是因为有人写了ps脚本触发的)
有没有挖过src
在做攻防的时候,资产收集这块有没有什么经验介绍的
一个单位的一级域名可能不止一个,怎么收集某个单位的所有域名,注意不是子域名
还有没有其他的资产收集的经验
除了信息收集,有没有什么漏洞方面的攻击案例
聊一下sql注入
怎么防御
遇到order by时怎么防御
用转义字符防御时,如果遇到数据库的列名或是表名本身就带着特殊字符,应该怎么做
宽字节注入
ssrf了解吗
怎么修复
基于黑白名单的修复,现在的生产基本都是用的docker,ip是随时变的,而且docker重启后可能什么都不一样了,怎么做一个修复
fastjson反序列化
redis的漏洞
mysql的提权
shiro反序列化
最近很火的log4j,聊一下原理
jndi的解析流程和原理
有没有什么你做的比较好的地方我没有问到的,可以聊一聊
惯例介绍部门的主要业务
惯例反问
紧接在一面plus后,就隔了10分钟,一面复盘写一半就开始二面了
时长:25分钟
时长:30分钟
时长:34min
时长:15~20分钟
时长:15分钟
自我介绍
sql注入了解吗,讲一讲二次注入的原理
二次注入要怎么修复
sql注入过waf了解吗,若一个sql注入过滤了information关键词,怎么绕过
Redis未授权访问
渗透测试的一个完整流程
打ctf的时候有没有遇到什么印象特别深的题目
文件下载漏洞有没有什么比较好的利用方式
利用文件下载漏洞找文件名具体是找什么文件名(读取文件一般会读取哪些文件)(ctf中?实战中?)
命令执行漏洞,http不出网有什么比较好的处理方法(发散一点说)
接上一题,通过隧道通信,详细讲讲通过什么类型的隧道,讲讲具体操作
漏洞预警
有没有复现过中间件类型的漏洞(有没有完整的复现过漏洞)
在学校的攻防演练中扮演的角色的主要职责是什么
时长:37分钟
接下来从0x09~0x0B都是同一位博主的面经,发在牛客上,看了下感觉很不错就转过来了,再附上这个博主的一些面试题/学习笔记的链接,个人觉得挺好的
作者:宠你&我的天性
链接:https://www.nowcoder.com/discuss/642461?source_id=profile_create_nctrack&channel=-1
来源:牛客网
自我介绍一下,讲一下课题和课外实践?
WAF管理平台后端API有做过压力测试吗?
你现在的论文已经发表了吗?
你的毕业论文是什么?
在字节跳动训练营最大的收获是什么?
在研究生期间或日常生活中有什么可以分享的有意义的事情?
快排的时间复杂度是多少?
最快的情况下是多少?是什么样的情况?
最慢的情况下是多少?是什么样的情况?
哈希冲突有哪些解决办法?
编程题(easy)
自我介绍一下?
我们这里是密码管理服务,密码这块你了解多少呢?
你未来计划更偏向于安全研究还是安全研发?
你对云上PKI的安全,身份认证的能力感兴趣吗?
介绍一下字节跳动训练营做了什么?
Sql注入的原理和防御方案有哪些?
WAF防护SQL注入的原理是什么?
本次训练营中,怎么分工协作的?你的角色是什么?你的贡献是什么?有没有提升效率的可能?
漏洞挖掘是纯工具还是有一些手工的?
WAF管理平台后端API有哪些功能?
WAF的增删改查数据量大吗?
Redis解决了什么问题?
热点数据怎么保证redis和db中的一致?
用户登录认证是怎么做的?
Token的安全怎么保护?
Token的内容该如何设计?
怎么保证数据不被篡改呢?
SDN漏洞挖掘的思路?
说一下https协议的过程?
对C++或C熟悉吗?
哈希表的原理和冲突解决办法?(和一面重复了)
Mysql查询快的原因?
多并发编程有涉及过吗?
有一项软件著作权,做的什么软件?
编程题(medium)
部门:无恒实验室
岗位:安全工程师
作者:宠你&我的天性
链接:https://www.nowcoder.com/discuss/749954?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
岗位:安全工程师
作者:Lamber-maybe
链接:https://www.nowcoder.com/discuss/766311?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
你先做个自我介绍吧
假如说有个SQL注入如下
select * from user where userid = {};
这种情况下如何注入?
比如说我写一个安全SDK
sql注入的修复, 怎么写(伪代码)
答:我倾向于使用预编译的方式
但是预编译的话, 研发可能不会用怎么办呢, 就是说如果他觉得改起来太麻烦了能不能更方便一点. 因为预编译的话, 我每条SQL每条查询都得去改.
答:那设计一个白名单怎么样呢
那你大概写一下怎样设计一个白名单. 你可以分场景, 比如说什么场景什么场景的SQL注入, 或者是参数里面应该做什么操作
xss的修复, 怎么写(伪代码) 答: 用实体化转义
但是我们有一个场景啊, 你看我们上传简历这里, 有时候会支持上传html的简历, 对吧. 他本身业务就需要用到html, 如果用html实体化转义的话, 他全都会被转义, 那这样的话业务就崩了嘛, 对不对. 那这种情况下我们要怎么样去写一个xss的过滤, 或者是说转义, 去解决这个类似于简历这个场景. 你可以想一想, 写不出来代码也没关系.
答:白名单限制, 黑名单过滤.
其实我们自己是这样做的, 对于这种情况, 我们第一是会做一个html标签的白名单, 第二是事件的白名单. 黑名单我们就不搞了.
rce的修复, 怎么写(伪代码)(java或者python的命令执行) 答: 白名单限制, 只允许需要的函数. 但RCE的话我感觉在业务场景当中, 一般来说也不是很容易出现 面试官: 欸, 我们就出现了很多. 尤其是运维部门.
我: 我打CTF比较多, 我了解的RCE都是PHP方面的. 比如说system, popen之类的. 一般来说都是直接做过滤
那PHP中这些函数全部被黑名单了, 你还有什么方法
答: 字符串拼接 $a=p.h.p.i.n.f.o()
你有没有用过php里面的反引号啊
答: 还有用 chr()
函数来绕过
面试官: 编码是吧
xxe的修复, 怎么写(伪代码) 答: 对XXE来说, 我只了解他的攻击方式, 对他的防御不是很了解. 攻击方式就是做XML的外部实体化注入. 一个攻击模板, 可以读文件, 可以做命令执行
XXE怎么做命令执行呢, 就拿php来说, XXE怎么做命令执行
XXE这个命令执行是要他的服务端本身支持某些特殊的协议, 一般来说是不行的
了解过自动化代码审计的工具吗, 类似于fortify这种
答: 我只用过那个一个比较老的那个, 我想不起来了(指seay)
没关系, 那你有没有了解过他的一些原理, 大概怎么做的
我: 他原理一般都是通过匹配一些特殊函数, 去定位可能出现漏洞的函数的位置
但这种的话他误报很高欸, 就像我这种RCE的话, 你直接匹配的话他很多都是误报了, 很多他都不是web思路的
我: 还有一种是, 给他加一些自定义规则
那有没有更好的办法呢, 误报太多了我们没办法接受啊
我: 我有一个想法就是, 他自己匹配了之后, 能不能从前端从一个黑盒的层面再去验证一遍
那黑盒验证, 我就有需求是, 首先我得知道, 首先我php里面我这个函数到底是哪个入口传进来的, 对吧. 但这个有可能经过了层层调用, 甚至有可能是include()
这种, 那这种的话, 对于我来说 , 我并不知道他影响到了哪一些入口, 这种情况怎么办呢
你们学校有学编译原理吗
其实我觉得安全专业还是要学一下编译原理
有没有搞过linux的这种后渗透相关的
面试官: 比如这个linux被我攻陷了, 我想去拿到更多的信息, 比如说一些横向的信息, 那种有没有搞过 我: 这种不是很了解, 但windows的会一点
面试官: 那你可以简单讲一下, 比如你先攻陷一台windows的机器, 然后我想在这个windows的域内去做一些横向移动, 我想把这个windows的域的权限给拿到, 这种你该怎么做 我: 通过票据伪造, 白银票据和黄金票据 面试官: 你这个票据伪造要怎么做呢 我: 一般用mimikatz就可以了吧
面试官: 你mimikatz抓取的是内存里面的密码和一些他的票据, 那我如果本身是低权限的呢, 就我本身抓不了密码, 或者我抓到的用户密码并不是域账号的, 是一个低权限账号呢. 因为大部分渗透进来都是个应用, 应用他可能并没有域权限 我: 从低权限往上提
面试官: 那你一般会怎么提权 我: 一般windows的漏洞吧 面试官: 那现在就用这个windows系统的提权, 我现在就一个webshell, 那我怎么样去提权
面试官: 你可以这样嘛, 你上传一个提权的脚本或者exe嘛, 你webshell去跑这个exe, 他就把这个web应用权限提权了
那你最后有什么想问我的吗
作者:立志区块链安全的菜鸡
链接:https://www.nowcoder.com/discuss/711602?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
部门:玄武实验室
作者:Djade
链接:https://www.nowcoder.com/discuss/628090?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
自我介绍
WAF及其绕过方式
IPS/IDS/HIDS
云安全
怎么绕过安骑士/安全狗等
Gopher扩展攻击面
Struct2漏洞
UDF提权
DOM XSS
数据库提权
怎么打Redis
内网渗透
容器安全
k8s docker逃逸
linux、windows命令:过滤文件、查看进程环境变量
站库分离怎么拿webshell
作者:ArrowQin
链接:https://www.nowcoder.com/discuss/651317?source_id=discuss_experience_nctrack&channel=-1
来源:牛客网
部门:系统运营部
(转成元组排序就行了,记得把str转成int,不然192会比50大)
输入:iplist = ["1.1.1.1","192.168.1.110","10.192.2.4","10.50.2.3","10.50.2.10","111.120.12.1","172.18.5.112"]
输出:
1.1.1.1
10.50.2.3
10.50.2.10
10.192.2.4
111.120.12.1
172.18.5.112
192.168.1.110
问项目
项目哪一块时间花的比较多
怎么溯源攻击
举一个溯源攻击的例子
怎么检测webshell
sql注入在mysql和sqlserver中有什么区别
想找安全开发的岗位还是安全研究的岗位
代码题:手机九宫格键盘,输入数字,输出所有的字母组合
如输入23,输出['ad','ae','af','bd','be','bf','cd','ce','cf']
讲一下DNS协议的作用、解析过程
DNS协议的安全问题
实习时间
来源:知乎
链接:https://zhuanlan.zhihu.com/p/426763642
备注:从0x11~0x14都是同一位师傅的面经,来源于知乎,里面有这位师傅的回答及一些总结、知识点,我这只是选了几个个人认为比较有代表性的公司和面经的题目出来
来源:知乎
sqlmap爆出当前库名的参数是什么?
namp探测系统的参数是什么 --->大写还是小写
namp的小写o与a是干嘛的
布尔型盲注的具体语句是什么
宽字节的原理
python有没有反序列化
get传参与post传参的区别
Http有哪些请求方式
如何判定cdn与cdn的作用
如何确认服务器的真实IP
详细说了说信息收集过程
一串编码如何确认是base64
栅栏密码的原理是什么
base64与md5如何区别
oracle的默认端口是多少
mysql的管理员密码一般放到哪
如果substr()函数被禁用,你脑子里有多少替换函数
redis如何拿下,哪个端口,具体语句,具体操作
如何通过邮箱知道对方的IP
说一下同源策略
如何收集网站管理员邮箱等等
ssrf有哪些危害
如何防御ssrf-->问的较深---->建议在详细了解一下
Linux的某两个文件怎么分辨(忘了具体是哪两个文件了)
MSF框架稍微问的深入了一些
web容器(中间件)有哪些解析漏洞与原理
如何防范sql注入 --->这问的很深
时长:45min
来源:知乎
链接:https://zhuanlan.zhihu.com/p/362868972
自我介绍
WAF及其绕过方式
IPS/IDS/HIDS
云安全
怎么绕过安骑士/安全狗等
Gopher扩展攻击面
Struct2漏洞
UDF提权
DOM XSS
数据库提权
怎么打Redis
内网渗透
容器安全
k8s docker逃逸
linux、windows命令:过滤文件、查看进程环境变量
站库分离怎么拿webshell
来源:知乎
链接:https://zhuanlan.zhihu.com/p/426747686
面试官:你好,听说你对来我们公司的意愿非常强烈,是为什么呢? 我:因为我在项目中与贵公司的人员有过合作,感觉无论是技术还是硬件或者是待遇都算圈子里一流的
面试官:那你了解我们实验室吗? 我:我有了解过,巴拉巴拉说了一下
面试官:那我先给你介绍一下实验室的方向,分为三个方向…. 我:好的明白了
面试官:你在项目中是否使用过我们公司的设备,感觉使用体验如何(意思就是让说设备的优缺点) 我:那我就实话实说了?
面试官:没问题的,我就想听听你的意见 我:我使用过…. ,优点就是性能好,能探测到更多的威胁情报之类的(大家脑补吧),感觉不足的就是探测和分析出的威胁,没法给出具体的流量片段,没法通过一个设备有效确定攻击,没有流量特征不好和其他全流量设备进行联动,可能是设备出场的保护机制,保护特征库不被外泄。
面试官:你知道主流的设备原理和开发过程吗 我:(我就说了一下原理,还不知道对不对)
面试官:你在项目中是做过流量分析对吗?能不能说说你的具体案例 我:我在国家hvv中协助发现过0day,单独发现过frp反弹定时回确认包向外输送流量,shiro反序列化等漏洞(我主要讲了我frp反弹的发现思路和流程)
面试官:除了这些常规的特征发现,你自己还有什么快速确定的方法吗? 我:(给大家分享一下我自己的流量分析心得) 1.确定事件的类型(确定事件是什么样的攻击,比如sql注入和爆破和frp的流量分析步骤就不一样) 2.确定事件的时间,首先划定一个时间段 3.确定数据流,攻击的数据流我们是要看HTTP,TCP,还是ssh 4.分析是内网—>外网还是外网—>内网,内网和外网时两种查询方法,正确的查询能有效的通过分析更少的数据包获取结果 比如 内网—>外网 我们确定后,第一步肯定先去先查看外网ip的流量,判断行为 外网—>内网 这样一般都是拿下了一个外网的服务器当做跳板机,我们肯定要先去分析内网的受害者服务器,看看有没有被攻击成功
首先我们需要确定到攻击行为后,再深入的流量分析和应急响应,很多都是误报
数据包的大小也是分析的条件,分析SSL数据包需要解密
爆破攻击:
SMB,SSH,MSSQL等协议比较多,看包的大小,成功登陆的包很大
看ACK,SYN包的次数,如果成功至少20起步,放到科莱上为40起步,但是注意不是失效包和重传的包(注意加密流的ack和syn包也很多,为客户端一次,服务端一次)
重传攻击:
如果一个数据包非常大,几个G或者一个G,我们就考虑数据包是否进行了重传,然后查看数据包的重传数,打个比方就是刷新,如果短时间重传数非常多,就为机器操作,判定为攻击
我们发现一个攻击(如平台登录后的sql注入)我们可以通过流量回溯装置抓取那个被登录用户的用户名和密码,登录平台后自己利用发现的payload进行尝试,看是否能注入成功
面试官:听说你还做过红队?是哪个项目,你在里面的职责是什么? 我:介绍了一下我的项目经验,然后说我在红队的是突击手负责打点(我们当时孤军奋战没后援,也没擅长内网的选手)
面试官:说说你项目中的成果 我:….
面试官:说一下你在项目里遇到的问题 我:我们通过exp拿下了一个锐捷路由器的webshell,但是卡在了反弹shell上面,无法进行反弹
面试官:那说一下项目结束后你是否有思考过这个问题,是否咨询过他人,解决方式是什么?(我感觉真的非常重视思考和问题解决,非常重视项目的闭环) 我:我有问过也拿过锐捷路由器的朋友,然后我认为是数据库和网站分离开了,然后只能拿下来webshell权限
面试官:你如何快速准确的确定资产? 我:通过fofa,谷歌语法,钟馗之眼,一些的注册信息
面试官:fofa的语法是什么?
面试官:你如何在这些资产中快速的确定漏洞? 我:最快的就是扫描器先扫描一遍,然后进行信息搜集,针对性的攻击,或者我们通过fofa语法针对性的在资产表中搜集是否存在特殊的cms或者oa系统….
面试官:一般扫描都会封禁你,你会怎么办 我:我会第一就是使用ip池代理,要么就是使用5g
面试官:你这些信息搜集和攻击都是效率不是很高的,项目结束后你有没有思考解决方法呢 我:我有想过自己写一个程序,把代码池和一些信息搜集和特定的利用方法融合,但是没写出来(又一次感到代码不好的痛苦)
面试官:那你是否有了解过国家hvv红队的隐藏流量过防火墙的技术呢? 我:有了解过,但是这个我不太会,没有地方去学(有点尴尬)
面试官:你们在打点的时候有没有什么特殊的方法呢? 我:我们除了搜索特点的oa系统,还会搜集资产里的邮件系统,进行信息搜集登录邮件系统,搜集各种配置文件数据库文件登录网站后台,我们成功登录到两个网站后台,和一个邮件系统,也拿下了几个oa
面试官:你们这么针对特定oa,是因为有0day吗(笑) 我:我们队有这几个oa的0ady和半day
面试官:开发这边怎么样?能直接上手开发吗? 我:python还能自己开发几个小工具,java还是只能看懂(好尴尬我真不行,可能是学安全时间还不够长,本来想今年主攻代码的)
面试官:意思就是只能开发几个简单的扫描脚本对么(大家一定啊要好好学代码) 我:是(尴尬的笑),最近在学习使用pos3编写poc
面试官:你如果来实习你想进行哪方面的学习呢? 我:(我选择了一个偏向防御类的方向,因为我知道攻击类的我应该水平不够,我很有自知之明) 然后就是一些询问能工作几个月,什么时候能到岗
综合下来我认为面试官认为我的不足就是,红队时的攻击和信息搜集效率不高需要改进,可能缺少一点项目的反思和解决思路
时长:一个半小时
tcp三次握手
介绍一次渗透测试过程
SSRF漏洞
内网渗透大致流程
再介绍一次难度比较高的渗透测试
防守方有哪些入侵检测手段,有哪些痕迹是可以抓到的
介绍进程和线程
进程和线程内存空间的关系
父子进程的介绍
孤儿进程和僵尸进程
kill一个进程的时候,都发生了那些事情,从父子进程角度讲
反弹shell的几种方式
att&ck矩阵的类别,介绍其中的CC
到域名下拿到命令执行的结果
Linux命令通配符
护网的溯源、威胁分析工作之类的问了十分钟左右
xx攻防演练中防守方有哪些手段,问的比较杂,主要就是问入侵痕迹检测和溯源之类的东西
SVM、KNN介绍
卷积神经网络介绍
莱文斯坦距离
搜索引擎算法
倒排索引
恶意样本给出函数家族的md5,如何进行分类
反问
时长:半小时
备注:从0x18~0x1B均来自于许少牛客网的分享,不多说了,许少yyds
作者:4ra1n
链接:https://www.nowcoder.com/discuss/772753?source_id=profile_create_nctrack&channel=-1
来源:牛客网
这个面试有许少的两个问答式文章,建议参考
一面链接:https://zhuanlan.zhihu.com/p/412934756
二面链接:https://zhuanlan.zhihu.com/p/413684879