安全工程师面经-百度美团腾讯深信服奇安信等
秋招收获:
甲方惨不忍睹:
腾讯(二面挂)
美团(三面完无限期备胎)
百度(提前批三面完排序挂)
阿里(测评挂)
字节跳动(提前批简历挂)
滴滴(一面挂)
乙方:
启明星辰(金睛团队渗透offer)
深信服(安全攻防offer)
奇安信(A-TEAM offer)
其他的还没开始面,也不太想面了
秋招历程与感受
整个秋招前期对于我来说是一个面试的过程,后期对于我来说是一个学习和总结的过程。我通过不断的面试认识到自己的不足与缺陷,同时也了解和认知到整个安全市场的人才需求和求职难度。整个秋招中,我不断地重新认知自己的技术实力,了解各面试官对于安全的看法和思考,调整自己的求职策略。回忆起来,就是有失有得,成长了一小步。
甲乙方安全思考
首先说甲方安全,甲方对于安全的需求一个是建设安全团队,保障集团的信息安全,同时还可以节省用于外包的信息安全支出;另外一方面,甲方安全团队建设到一定程度后,也会推出自己的安全服务和安全产品,同时由于互联网的海量数据和视角,甲方安全在互联网中具备更广的应用需求。
那么甲方对于安全人才的需求,通常是什么样的呢。之前有看到其他的一些同学做出的总结,我觉得很合适。甲方安全=安全技术(%40)+编码能力(%30%)+沟通能力(%20)+其他。事实上,针对做信息安全的同学而言,甲方具备比乙方更好的待遇和福利,比如甲方一个中厂能给出的月薪就要高于或等同于乙方大厂的月薪。所以去甲方的安全人才也会很多,尤其是做安全比较厉害的大牛,更倾向于甲方。在我秋招的体会中,甲方的筛选除了业务能力,能力综合素质判断外,学历也是十分重要的。虽然互联网确实没有大型国企那么看重高学历。但是在竞争大厂的安全岗时,学历会成为最后一个综合筛选的隐性关卡。所以即便前面所有的面试通过,那么最后hr的offer沟通更倾向于985/211的学生。当然,硕士学历也是一个很重要的筛选指标。那么想要冲击甲方大厂BATTMD的同学,在做出秋招策略时就要考虑自身的一个学历问题,除非技术实力已经远远大于学历带来的影响。
乙方安全通常服务于各式各样的甲方大中小厂,各种国企,事业,政府,军队,也就是TO-B的产业。有自己特色的安全产品,安全服务,安全团队建设等。同时乙方的安全内容覆盖很广,积淀也远大于甲方,所以对于安全人才的需求也是远大于甲方。在秋招中往往进入乙方难度要小于甲方,因为信息安全行业确实缺乏人才,毕竟更强的大牛都奔着开发,算法等去了。那么进入乙方大厂需要哪些东西呢。我认为乙方安全=安全技术(%70)+编码能力(%20%)+沟通能力(%10),乙方对于安全的需求安全技术占着很大的比重,编码能力是被弱化了的。从这一点来看,进入乙方大厂更多需要很强的安全技术,而进入甲方大厂要在编码能力上做强化。比如一定的算法和数据结构功底,这意味着你可能需要参加某个小型的ACM比赛并能有不错的成绩,同时也需要熟悉一定的编程技术和框架。那么乙方大厂我较为熟悉的是渗透测试,这一个能力是需求最大的,它包括从web打点到内网到后渗透的阶段。只有全面熟悉和了解该技术,才能轻易获取乙方大厂中自己想要的offer。其次是安全研究,这意味你除了基本的web渗透外,针对代码审计,移动安全等起码要有一个或以上的熟悉才能轻易获取对应的offer。最后是安全开发,这个是在乙方中比较吃香的职位,因为一个懂开发,又懂安全的人才实属难得,二者都能做得很好那么在乙方和甲方中简直无往而不利。
面试问题和面试历程如下
2020.10.29日更新,后面应该不会再更了
------------------------------------------------
2020.9.5日更新
这几天学校开学有点忙,无暇顾及面试,然后牛客上有人问我美团的面试问题,我翻看了下记录,由于当时面试的都是针对简历同质化的内容,所以我在美团这几场面试没做太多记录。把已有的记录放在了最下面,然后美团三面结果依旧
没有感谢信,也没有任何反馈,备胎又实锤了,先苦逼的等等吧。如果有其他的安全甲方值得一去,欢迎小伙伴们推荐。
------------------------------------------------
2020.8.29 我是在8.1投的百度简历,一二面的流程很快,到了第二个周三面的,期间再往后简历状态就是部门面试中,直到提前批结束都是部门面试中的状态,今天变成了简历共享中。三面时候面试官还问如果拿到offer,会不会接,我都以为稳了。不过拖到今天变成了共享,还是有点遗憾,心态有点炸。
如果有小伙伴也是有面试互联网厂的安全岗目标,可以在帖子下面交流。下面是关于面试百度的问题和感受
------------------------------------------------
百度(三面完成)
百度一面
整个面试流程一二面间隔只有一天,三面倒是到了下个周,觉着还是hc太少,优秀的人太多吧。面试官给人感觉也挺亲切的,而且也都能从你擅长的方向去问你,关于技术的面试体验不错。
自我介绍:
1.mysql注入,已知information.schema相关表在代码层中被过滤,不考虑绕过情况,还可以怎么查询表名或字段
考虑sys数据库,一些被访问过的表会被存储信息,索引中存在的表等
2.mysql注入中基于报错注入的多种方式
记得floor,updatexml,extractvalue三种,第一种主键重复,后面两种基于xpath语法解析错误
3.前端xss如果特殊字符输出被htmlscecial过滤了怎么办
该函数默认只编码双引号,对单引号无效
在js中可以利用\u003c等绕过符号过滤
采用反引号执行命令,(可以采用jquery加载第三方js,或者添加script子节点引入js,或者直接获取cookie利用js访问第三方脚本)
编码转换,富文本,数据库输出输入场景都有可能失效,比如前端调用了html函数作为输出的情况
4.同源策略是啥,rerfer检测,前端空rerfer防御,怎么构造
同源的标准是协议,端口,域名三者的统一,实质是浏览器对不允许的服务端返回的数据进行了拦截
实现跨域有两种方式,jsonp和cors
服务端验证rerferer头(为空则不用rerferer头判断),校验csrf token,在http头中自定义属性并验证
5.jsonp是什么,怎么绕过
劫持问题,防御取决于服务端如何配置,绕过取决于服务端的配置,关键词绕过
6.sqlmap源码是否分析过。
7.tp漏洞复现
8.java反序列化rmi原理(简历上有写),其他类型的反序列化是什么
9.如果让你编写一个DOM型xss扫描器,你该怎么写?假如事件需要点击,比如onclick去点击,该怎么检测这种类型的xss
返回结果,人工判断,或者利用windows事件触发
10.内网渗透流程和方式,比如域渗透
11.windows10上面的pth怎么利用
12.linux主机留后门的各种方式?
计划任务,webshell,自启动后门,写注册表
13.DNS隧道搭建方式
总计48分钟
百度二面
1、如何入门的经历
2、数据结构,算法,计网基础(非计科类专业自闭)
3、针对已有的项目深入提问(实现,拓展,创新)扫描器实现对比拓展(不晓得)
4、知识面深入,内网探测高危服务除了端口扫描还有啥?
5、漏洞挖掘的挑战性的事件的优秀亮点
6、其他公司面试情况
7、渗透方向能力目标,学习的新方向。
8、反问,有点考核提问智慧的意思,让我各种方面问他问题
最后面试官评价了我知识面还是不足
总计53分钟
引导面试官往你擅长的方向去问,一知半解要表现自己的能力,啥都不懂的就说不会了
百度三面
问了项目的思路和思考方式
挑战性的问题如何解决
聊了未来城市选择和发展路线
自我介绍:
1.mysql注入,已知information.schema相关表在代码层中被过滤,不考虑绕过情况,还可以怎么查询表名或字段
考虑sys数据库,一些被访问过的表会被存储信息,索引中存在的表等
2.mysql注入中基于报错注入的多种方式
记得floor,updatexml,extractvalue三种,第一种主键重复,后面两种基于xpath语法解析错误
3.前端xss如果特殊字符输出被htmlscecial过滤了怎么办
该函数默认只编码双引号,对单引号无效
在js中可以利用\u003c等绕过符号过滤
采用反引号执行命令,(可以采用jquery加载第三方js,或者添加script子节点引入js,或者直接获取cookie利用js访问第三方脚本)
编码转换,富文本,数据库输出输入场景都有可能失效,比如前端调用了html函数作为输出的情况
4.同源策略是啥,rerfer检测,前端空rerfer防御,怎么构造
同源的标准是协议,端口,域名三者的统一,实质是浏览器对不允许的服务端返回的数据进行了拦截
实现跨域有两种方式,jsonp和cors
服务端验证rerferer头(为空则不用rerferer头判断),校验csrf token,在http头中自定义属性并验证
5.jsonp是什么,怎么绕过
劫持问题,防御取决于服务端如何配置,绕过取决于服务端的配置,关键词绕过
6.sqlmap源码是否分析过。
7.tp漏洞复现
8.java反序列化rmi原理(简历上有写),其他类型的反序列化是什么
9.如果让你编写一个DOM型xss扫描器,你该怎么写?假如事件需要点击,比如onclick去点击,该怎么检测这种类型的xss
返回结果,人工判断,或者利用windows事件触发
10.内网渗透流程和方式,比如域渗透
11.windows10上面的pth怎么利用
12.linux主机留后门的各种方式?
计划任务,webshell,自启动后门,写注册表
13.DNS隧道搭建方式
总计48分钟
百度二面
1、如何入门的经历
2、数据结构,算法,计网基础(非计科类专业自闭)
3、针对已有的项目深入提问(实现,拓展,创新)扫描器实现对比拓展(不晓得)
4、知识面深入,内网探测高危服务除了端口扫描还有啥?
5、漏洞挖掘的挑战性的事件的优秀亮点
6、其他公司面试情况
7、渗透方向能力目标,学习的新方向。
8、反问,有点考核提问智慧的意思,让我各种方面问他问题
最后面试官评价了我知识面还是不足
总计53分钟
引导面试官往你擅长的方向去问,一知半解要表现自己的能力,啥都不懂的就说不会了
百度三面
问了项目的思路和思考方式
挑战性的问题如何解决
聊了未来城市选择和发展路线
还有一些其他遇到某问题表现和思路是什么样的
和技术相关的问题占比很少
最终还是挂了,有点遗憾。
最终还是挂了,有点遗憾。
------------------------------------------------
腾讯(二面挂)
腾讯的面试官感觉抓住了很多具体的细节问题去问我,当然我回答的思路和内容也偏细节化,不过整体体验也还不错,二面有两个面试官同时问,面完后和面试官聊了一些东西,感觉他们对安全的认知也有着自己独特的思考。不过最后还是挂了,我大概是被捞起来第二次有的二面吧,因为一面好像是实习生留用的面试,不太清楚啥情况。值得一提的是,腾讯安全技术的这个面试面我的部门是19年创建的,我看了他们之前唯一的招聘信息,这个hc似乎只有不到5个的样子。经过一些零碎消息的推断,感觉僧多肉少。离互联网大厂好像又远了一步哪
自我介绍
1、编写工具的具体思路,sql注入,xss
2、csrf的防御, referer验证,referer为空则防御(referer是浏览器特性,为空排除特性之外的问题则做防御验证),
3、xxe无回显探测 dns验证,内部实体探测
4、xss硬编码如何利用 前端dom型被js代码转义出来,比如\u003c,前提是返回在了js中,在html中除非具备某种标签,其特性可导致特殊编码执行,则能转义出来
5、java反序列化基础
6、白盒审计能力问题--这一点应该说可以自行拓展,对owasp10做过调试,对tp审计做过深入调试,对rmi反序列化做过调试,学习过一本书的样子
7、密码重置处的逻辑问题--第一二三步验证不统一,验证统一但后台返回的更改密码的token可被预测,枚举可猜解,返回敏感数据,后端与前端验证不一致,存在数据查询则可注入,xss编码问题
1面还是凉了,看来和腾讯无缘啊,哎呀。总体而言,防御思路偏多,工具开发问的深入了点。
腾讯二面
问了各种问题,包括项目中如何解决问题,应急响应做过哪些处理,针对大量请求高并发的解决
有很多具体的场景,询问你的思路
聊了国家安全,各种安全视界的思考,见识
1、编写工具的具体思路,sql注入,xss
2、csrf的防御, referer验证,referer为空则防御(referer是浏览器特性,为空排除特性之外的问题则做防御验证),
3、xxe无回显探测 dns验证,内部实体探测
4、xss硬编码如何利用 前端dom型被js代码转义出来,比如\u003c,前提是返回在了js中,在html中除非具备某种标签,其特性可导致特殊编码执行,则能转义出来
5、java反序列化基础
6、白盒审计能力问题--这一点应该说可以自行拓展,对owasp10做过调试,对tp审计做过深入调试,对rmi反序列化做过调试,学习过一本书的样子
7、密码重置处的逻辑问题--第一二三步验证不统一,验证统一但后台返回的更改密码的token可被预测,枚举可猜解,返回敏感数据,后端与前端验证不一致,存在数据查询则可注入,xss编码问题
1面还是凉了,看来和腾讯无缘啊,哎呀。总体而言,防御思路偏多,工具开发问的深入了点。
腾讯二面
问了各种问题,包括项目中如何解决问题,应急响应做过哪些处理,针对大量请求高并发的解决
有很多具体的场景,询问你的思路
聊了国家安全,各种安全视界的思考,见识
------------------------------------------------
美团(三面完成)
美团1面
1、说一个你最熟悉的web漏洞
2、说一下csrf,假如你和开发协同,那么你该怎么做
3、说一下你比赛中印象较深的题目
4、有没有在知名论坛,网站发表文章
5、说一下实习期间项目的承担角***r /> 6、反问环节
总计34分钟
美团2面
信号不是太好
1、入门学习的经历
2、比赛的经历
3、说一下主机留后门的方法
...
总计40分钟
面试体验:1面完第二天就2面了,面试官态度都挺好,但是电话语音信号我们两边总是有点问题,这是个大坑,好歹面完了
美团3面 8.19
http://dpurl.cn/5iqqj3z
1、说一个你最熟悉的web漏洞
2、说一下csrf,假如你和开发协同,那么你该怎么做
3、说一下你比赛中印象较深的题目
4、有没有在知名论坛,网站发表文章
5、说一下实习期间项目的承担角***r /> 6、反问环节
总计34分钟
美团2面
信号不是太好
1、入门学习的经历
2、比赛的经历
3、说一下主机留后门的方法
...
总计40分钟
面试体验:1面完第二天就2面了,面试官态度都挺好,但是电话语音信号我们两边总是有点问题,这是个大坑,好歹面完了
美团3面 8.19
http://dpurl.cn/5iqqj3z
后续是无限期等待,等不到的感谢信。
------------------------------------------------
滴滴(一面挂)
面试滴滴投递的是安全工程师-CTO线,滴滴采用了滚动批次面试的方式,在一天之内完成的面试。感觉就滴滴的增长而言滴滴的信息安全需求并非像腾讯和阿里这样旺盛。所以放出的hc可能很少,除此之外做的安全业务可能更多偏向于非渗透,非攻防研究类的。
滴滴一面
安全知识问得很浅,就问了基本的web漏洞,然后就转去问算法和程序了,关于内网渗透,对java代码审计的浅显认识,app渗透没机会表达了,没有引导面试官往这问做得不够好。其次滴滴可能是安全这块强渗透需求并不是太大,偏开发会多点,所以一面挂掉几率增加,问了如下问题吧。
1.tcp三次握手原理
2.xss原理,挖掘思路
3.sql注入扫描工具思路
4.逻辑漏洞平行越权原理,思路
这一点面试官评价认识得不够深入
5.针对网站的渗透思路
6.开头问了下专业课。
专业课是数模电,信号系统,跨学科就还是烦恼(或许一定条件下是优势)。
7.python多线程,高并发,什么时候有效,什么时候没用。
(恰好之前面试没回答上来回去学习了一波,自认为答得还可以)
8.问了个递归和迭代一定条件下是否可以替换。。。实不相瞒,好像c语言考试考过,忘了。
这里表现不行,仅仅说出了自己的猜测和思考
9.问了下二分查找的时间复杂度
这就难到我了,答了个nlog2(n),接下来面试官就问有没有算法和数据结构的课,
都是大一自学的,这里应该多扯点,毕竟基础的算法思想还记得,接下来面试官无心问了,评价了一下之后
挂了
10.又问了关于sqlmap是否研究过,感觉甲方厂安全必知必会了都,回去感觉得深入搞搞。
1.tcp三次握手原理
2.xss原理,挖掘思路
3.sql注入扫描工具思路
4.逻辑漏洞平行越权原理,思路
这一点面试官评价认识得不够深入
5.针对网站的渗透思路
6.开头问了下专业课。
专业课是数模电,信号系统,跨学科就还是烦恼(或许一定条件下是优势)。
7.python多线程,高并发,什么时候有效,什么时候没用。
(恰好之前面试没回答上来回去学习了一波,自认为答得还可以)
8.问了个递归和迭代一定条件下是否可以替换。。。实不相瞒,好像c语言考试考过,忘了。
这里表现不行,仅仅说出了自己的猜测和思考
9.问了下二分查找的时间复杂度
这就难到我了,答了个nlog2(n),接下来面试官就问有没有算法和数据结构的课,
都是大一自学的,这里应该多扯点,毕竟基础的算法思想还记得,接下来面试官无心问了,评价了一下之后
挂了
10.又问了关于sqlmap是否研究过,感觉甲方厂安全必知必会了都,回去感觉得深入搞搞。
------------------------------------------------
深信服(offer,已签约)
深信服给我的面试体验是流程快。我在一个周内面完。hr们基于全国各城市建立了qq群,每一个分站点的参加深信服面试的都会加入到qq群里。深信服安全攻防岗有40个hc,在招聘网站上是这么公布的,所以竞争还会相对小。其次,深信服一二面都是线上面试,三面会要求到离你较近的那个城市面试。由于我做的是渗透方向,面试官问的问题也都是一面偏web,二面偏内网渗透。但除此之外关于项目,实习期间的东西也会问到。
深信服一面
1、我基本就介绍了项目,实习经历。应该是实习经历背书的原因,所以就简单问了下web层面的知识点,30分钟的面试就差不多结束了。
深信服二面
1、问了实习的项目,同时问了下内网渗透的流程(这个基本每次二面都会问),我差不多就技术细节和大致思路讲了有十分钟左右。然后其它就简单聊了聊。后续等了三天收到三面通知。
深信服三面
1、深信服三面我是去线下见的hr,和我同一天去面试的好像还有其他人,不过不晓得他们具体情况。开始hr是说可能回去还要等通知,大概就是我面试表现比较从容,hr全面地问了下我简历上的东西后就直接沟通offer了。晚上回去后我就直接收到了offer邮件。
------------------------------------------------
启明星辰(金睛团队offer)
启明星辰我是在一周时间内面完的。我参加面试的这个岗位是启明的金睛团队的岗位(被hr直接捞了),但是也属于安服的范畴,众所周知,安服岗薪资低于安研(苦笑)。面试中面试官有多次和我沟通过这个岗位的职能,表明这是偏蓝队方向的。如果是喜欢做红队的可能不太感冒。我的整个面试体验在二面比较方,面试官当时应该是忙于该时期相对特殊的一些工作,在问了一些基础知识后,让我站在自己的角度写了个关于内网攻防的文档(如我知道内网渗透的手法,那么我该如何思考检测)。这个流程确实具备更强的筛选功能,不过我感受很累,毕竟也不知道能否通过的情况下还花半天或一天的时间写这东西实在是。。。但是由于已经接近秋招末期,还没拿到其他offer,只能接受了。
启明星辰一面
1、sql注入,xss,csrf等知识概念,利用,绕过。
2、移动app渗透的一些知识
3、java反序列化的认知。(答了一些我知道的)
启明星辰二面
1、内网渗透流程
2、花半天有效时间写了关于内网渗透攻防的技术文档(要求站在自己角度思考关于内网攻击的一些手法如何检测)
启明星辰三面
1、平时如何学习新技术
2、除了做技术之外有哪些爱好
3、有哪些有价值的思维方式
4、展示了我自己积累下来的笔记(包括转载文章,自己写的文章)
------------------------------------------------
奇安信(A-TEAM,offer)
我投的这个岗位是奇安信A-TEAM的渗透测试,这个团队方向是以红队为主。面试流程是我体验最快的一家,可能是由于已经快11月份了,所以采取了滚动批次面试的方式,一个下午就完成了面试流程。面试官问的东西技术难度比较广和深,而且都是基于实际的应用场景来问的。所以基本杜绝了做题和背题的方式,需要一定的实战经验和见识。
奇安信一面
1、sql注入基于利用方式而言有哪些类型?
2、sql注入写马有哪些方式?
3、oracle注入除了注入数据之外有哪些直接利用的方式?(这个真没见过,答不出来),sqlserve获取shell的方法?
4、xss的利用方式?
5、同源策略的绕过方式?
6、完整的渗透测试流程思路?(从拿下webshell到后渗透的实战经历)
7、如何绕过基于语义检测的waf,比如雷池,阿里云waf等(不是太理解语义这东西,说了一些我知道的绕过场景)
8、问了预编译场景下是否存在sql注入。(这一点老实说并不存在,但面试官提到第一次预编译的过程假如存在可控数据,这确实是可能的,我说了自己的看法)
9、编程问了个多线程和协程的区别。
奇安信二面
1、问了项目的实现思路和方法。
2、黄金票据和白银票据的区别?
3、pth中LM hash和NTLM hash的区别(这个之前做过研究,不过只记得一点了)
4、CDN的绕过方式?
5、waf的绕过方式?
6、其他忘了
奇安信三面
1、问了学校经历
2、问我自己觉得是个内向还是外向的人???(事实上我觉得让自己来评判这个问题没有意义,我可以把自己塑造得很内向,也可以说得很外向,但性格是矛盾和多样化的,用这样非黑即白的问题去询问,反而不如直接问平时相关的经历和事项)
我:我觉得性格这个东西是不应该一概而论的,我觉得我既不内向,也不外向。不如让我说说我的其他经历和思考。您这边来看看我是什么样的。是否适合这个岗位。剩下就balabala
3、询问其他offer状况