在当今社会网络安全行业越来越发达,也有越来越多的人去学习,为了更好地进行工作,除了学好知识外还要应对企业的面试。
所以在这里我归总了一些网络安全方面的常见面试题,希望对大家有所帮助。
一个2023届毕业生在毕业前持续更新、收集的安全岗面试题及面试经验分享~
写在前面
- 个人强烈感觉面试因人而异,对于简历上有具体项目经历的同学,个人感觉面试官会着重让你介绍自己的项目,包括但不限于介绍一次真实攻防/渗透/挖洞/CTF/代码审计的经历 => 因此对于自己的项目,面试前建议做一次复盘,最好能用文字描述出细节,在面试时才不会磕磕绊绊、或者忘了一些自己很得意的细节
- 面试题会一直更新(大概,直到我毕业或者躺平为止吧…)包括一些身边同学(若他们同意的话)和牛客上扒拉下来的(若有,会贴出链接)还有自己的一些经历
- 还有一点很想说的,就是面试题/面经,本质上只是一种“见识”,他并不能实质上提升自己的水平,还是希望大家(包括我自己)不要太局限于面经,可以查缺补漏但没必要面经问什么自己就一定要学什么,按自己的节奏学就行了,毕竟每人的技术特点不一样,面试的过程和问题也会不一样
最后欢迎大家fork项目!xdm自己有面试经验的话也欢迎发pr!有分享就有收获!
若有不方便公开的内容请联系本人第一时间删除!
- 你先做个自我介绍吧
假如说有个SQL注入如下
select * from user where userid = {};
-
这种情况下如何注入?
- response里面没有返回内容
- 1s就超时了,直接返回404页面
-
比如说我写一个安全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的这种后渗透相关的
1. 面试官: 比如这个linux被我攻陷了, 我想去拿到更多的信息, 比如说一些横向的信息, 那种有没有搞过 我: 这种不是很了解, 但windows的会一点
2. 面试官: 那你可以简单讲一下, 比如你先攻陷一台windows的机器, 然后我想在这个windows的域内去做一些横向移动, 我想把这个windows的域的权限给拿到, 这种你该怎么做 我: 通过票据伪造, 白银票据和黄金票据 面试官: 你这个票据伪造要怎么做呢 我: 一般用mimikatz就可以了吧
3. 面试官: 你mimikatz抓取的是内存里面的密码和一些他的票据, 那我如果本身是低权限的呢, 就我本身抓不了密码, 或者我抓到的用户密码并不是域账号的, 是一个低权限账号呢. 因为大部分渗透进来都是个应用, 应用他可能并没有域权限 我: 从低权限往上提
4. 面试官: 那你一般会怎么提权 我: 一般windows的漏洞吧 面试官: 那现在就用这个windows系统的提权, 我现在就一个webshell, 那我怎么样去提权
5. 面试官: 你可以这样嘛, 你上传一个提权的脚本或者exe嘛, 你webshell去跑这个exe, 他就把这个web应用权限提权了
- 那你最后有什么想问我的吗
0x18 某四字大厂面试复盘
这个面试有许少的两个问答式文章,建议参考
一面二面链接:
一面
- 看你做java多一些,讲讲java内存马原理和利用
- 那你讲下如何查杀java内存马,工具和原理角度
- 冰蝎和哥斯拉了解吗,讲讲原理
- 你之前在其他公司实习做了些什么事情
- 有绕waf的实战经验吗,从各种漏洞的角度谈下
- 熟悉webshell免杀吗,讲下原理
- 做过其他免杀吗,比如结合cs和msfvenom的
- 谈谈fastjson反序列化原理和常见利用链吧
- 数据结构熟悉吗,谈谈红黑树原理
- java的hashmap用到红黑树,讲下hashmap的原理
- 有没有流量分析的经验
- 谈谈代码审计经验
- 看你有些cnvd和cve,讲讲挖洞的过程
- 有打过知名的ctf吗,讲将经历
- 熟悉内网渗透,域控这些,说一下实战经历
- 谈谈java反序列化的cc链原理吧
- 看你重写过sqlmap,读过sqlmap源码吗
- 看你熟悉mysql,讲讲索引,存储结构等
- 讲讲mysql为什么要用b+树
- 看过mysql源码吗
- 分析过二进制漏洞吗
- 有没有用汇编写过东西
- 谈谈linux内核的漏洞
- 挖过缓冲区溢出漏洞吗
- python的沙箱逃逸了解吗
- python的flask模版注入讲讲
- 看你做过抽象语法树相关的项目,谈一谈
- 讲讲rasp的概念和原理
- 谈谈rasp的对抗
- 谈谈php和golang语言本身的安全问题
- 机器学习和算法相关懂嘛
- 看你尝试写过简单的操作系统,谈谈思路
- 你有什么要问我的吗
二面
- 讲讲你挖过印象最深的洞
- 讲讲你写过的安全工具,从出发点和原理层面谈谈
- 讲讲文件上传这里怎样绕WAF
- SSRF的利用和绕WAF手段
- 谈谈MSSQL如果XPCMDSHELL不能用怎么拿SHELL
- 遇到没有回显的RCE怎么办
- 不使用SQLMAP的OS-SHELL,各种数据库怎么写SHELL
- 给你一个比较大的日志,应该如何分析
- 谈谈redis未授权会导致哪些问题
- 讲讲SYN FLOOD原理,防御,检测手段
- 讲讲UDP反射放大的原理,防御,检测手段
- 说一说自己的优势吧
- 你有什么要问我的吗
三面
- Padding Oracle Attack讲讲
- Fastjson反序列化原理以及1.2.47绕过的原理
- 除了readObject以外造成反序列化的函数有哪些
- CC链中找你最熟悉的几条链讲一讲
- Shiro550反序列化的原理及利用工具编写思路
- Spring/Struts2的RCE中印象最深的讲一讲分析过程
- sql注入绕WAF的方式尽可能多说
- 分块传输绕WAF的原理
- 文件上传绕WAF的方式都有哪些
- 讲讲你挖过这些CVE中印象最深的
- 你自己最大的优点和缺点是什么
- 未来你想做安全的哪一个领域
- 你学校成绩如何有挂科吗
- 你有什么要问我的吗
0x19 某四字大厂实习面试复盘
一面
- 自我介绍
- 数组和链表各自的优势和原因
- 操作系统层面解释进程和线程区别
- 线程和进程通信方式以及数据安全问题
- 多进程和多线程的选用场景以及原因
- 了解过哪些WAF说说原理
- 尽可能多地说下SQL注入绕WAF方式
- FUZZ绕WAF的Payload长度通常是多少
- 写过哪些正则说说具体的场景
- 不查资料不能测试直接写ipv4的正则
- Fastjson的反序列化原理
- Java反射机制会导致怎样的安全问题
- XSS和CSRF的相同点以及如何配合利用
- CSRF_TOKEN的位置以及原理和绕过
- 尽可能多地说你所知道的HTTP头
- Nmap常见扫描方式的原理以及NSE脚本原理
- 看到你有不少CNVD证书讲一讲挖洞过程
- 讲一讲你考过的证书都学到了些什么
- 看到你Github有不少项目讲讲
- 你觉得自己还有什么亮点吗
- 你有什么要问我的
二面
- 自我介绍
- 熟悉哪些Web漏洞讲讲
- 跨域的解决办法原理以及安全问题
- Python多进程和多线程如何选择
- Python的GIL锁本质上做了什么事情
- Java的JVM为什么要有GCROOT
- Java的JVM有哪些垃圾收集器
- 垃圾回收计数引用机制的缺点是什么
- CSRF怎么拿到Cookie
- 如何判断一个网站是钓鱼网站
- 不同域名怎样通过CSRF拿Cookie
- 说一些常见的HTTP头以及作用
- HTTP-Only本质上做了什么事情
- 平衡二叉树和二叉搜索树讲一下
- SYN Flood攻击原理及解决方案
- SYN 反向探测的原理是什么
- TCP SYN Cookie的原理
- ARP欺骗攻击原理及解决方案
- UDP端口探测的有效方式是什么
- Nmap的FIN扫描和空扫描是什么
- 三次握手的序列号变化说一下
- Python的值类型和引用类型是哪些
- Python的list和dict线程安全吗
- 讲一下你做过收获最大的一个项目
- 你有什么要问我的
三面
- 自我介绍
- 解释下CSRF
- 结合实际的例子说说SSRF
- 结合实际的例子讲讲RCE
- 为什么现在文件上传很少了
- 基于语义分析的WAF了解吗
- 讲一下你上一段实习做了什么
- 讲几个印象深刻的挖洞经历
- 讲一下你对未来的规划
- 有没有转正的意愿
- 你有什么要问我的
四面(HR)
- 面试的体验怎么样
- 谈人生理想
- 最早实习时间
0x1A 某两字大厂面试复盘
一面
- 自我介绍
- 前两段实习做了些什么
- 中等难度的算法题
- java的class文件结构
- kafka的原理了解吗
- fastjson反序列化原理
- 讲讲你研究最深入的领域
二面
- 排序处不能用预编译应该怎么防
- 从白盒黑盒两个角度讲下挖过的漏洞
- ssrf的绕过和防御
- 讲讲fortity等代码审计工具原理
- 存储过程角度讲讲预编译的原理
- csp是如何防御xss的
- csrf为什么用token可以防御
- 给你一个项目讲下审计思路
- 内网相关的问题
- 讲下你挖过的逻辑漏洞
- 讲讲你用golang写过的东西
- 什么是安全
三面
- 讲下你自己写ysoserial的思路
- 确定sql注入漏洞后如何进一步利用
- 泛微OA的漏洞原理讲讲
- 新爆出的Confluence RCE讲讲
- 以前的实习中做了什么事
- ***原理以及实战中的绕过
- 红蓝对抗的流程讲讲
四面
- java反序列化原理和工具
- 讲讲关于指纹识别的方式
- shiro反序列化工具的原理
- 不用sqlmap情况下sql注入点如何找
- 讲讲你挖到的这几个cve
- 二进制方面有无了解
0x1B 某安全公司-安全研究员
一面
- 讲讲你写的几个Burp插件原理
- 做过什么JavaWeb项目吗
- CC1-7找熟悉的讲一下原理
- Fastjson和Jackson反序列化原理讲讲
- BCEL可以用其他类加载器吗
- XStream反序列化讲讲
- 最基本的反序列化原理是什么
- 了解JEP290的原理吗
- 讲下RMI原理以及相关的漏洞
- JdbcRowSetImpl如何触发的JNDI注入
- CC链四个Transformer区别
- 讲下你挖过的CVE和CNVD
- 反序列化除了readObject还有什么触发点
- 讲下Spring相关的RCE原理
- 讲讲IIOP和T3反序列化原理
- PHP等语言的反序列化讲讲
二面
- 做了几年安全
- 未来想做什么
- 讲讲实习期间做的事
- 工作地点要求
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码免费领取(如遇扫码问题,可以在评论区留言领取哦)~
网络安全面试题
绿盟护网行动
还有大家最喜欢的黑客技术
网络安全源码合集+工具包
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码免费领取(如遇扫码问题,可以在评论区留言领取哦)~