2023届安全岗秋招经验分享
需要准备的几个方向
- 简历
- 自我介绍
- 计算机网络
- 操作系统(操作系统原理,Linux,Windows)
- 数据库
- 算法(Leetcode)
- 编程语言(Python,C++,go等)
- 安全知识(很多很杂,建议根据自己擅长的方向和所投递的岗位进行针对性学习)
计算机知识参考CS-NOTES:http://www.cyc2018.xyz/
安全方面的可以去Github,知乎,等平台查找。牛客上也有很多!仔细找。
贴一下我自己找的一些安全面经:https://github.com/h4m5t/Sec-Interview
Python面试题:https://github.com/taizilongxu/interview_python
安全岗职位要求
-
熟悉osquery等开源HIDS工具,阅读过工具部分源码或进行过二次开发
-
有过实战经验(包括src、众测、护网等)
-
了解Redis/docker/MySQL/Java框架等常见中间件高危漏洞原理
-
精通 PoC、Exp、规则、指纹等编写的能力
-
熟练掌握Cobalt Strike、Empire、Metasploit等后渗透工具的使用;
-
入侵检测
-
熟悉某一安全细分领域,如内网渗透、移动安全、恶意软件分析、CTF竞赛等
-
掌握白帽子攻击流程及常用白帽子工具,熟悉攻击技术,具有渗透常见服务器的经验
-
熟悉热门流行的攻击工具,能够灵活运用各类小工具,并能开发相关的小工具
-
熟悉web、内网、iot方面的渗透流程和攻击技术,有过渗透测试、攻击模拟经验
-
实践落地过完整SDL威胁建模方面的项目经验
-
有实际用过机器学习算法解决过实际问题的项目经验
-
有实践过云安全落地解决实际问题的项目经验
-
熟悉windows、Linux系统及常用命令,熟悉WEB服务器常见配置
-
了解Owasp Top10漏洞原理,具备渗透测试的实施和交付能力,熟悉渗透测试的步骤和方法
-
了解常见企业安全防御技术,有防护绕过实践经验
-
了解基本的Linux、Mysql、Redis、Nginx、DDOS等技术知识
-
参与各类CTF安全竞赛获奖者优先,参与各大SRC、众测平台并排名靠前者优先
-
网络安全法律
-
独立挖掘到 k8s、容器逃逸、虚拟机逃逸相关漏洞的研究者优先;
-
熟悉白盒审计,能对python、go、php代码进行审计;
-
快手招聘要求
-
1、熟练使用SQLmap、Burp Suite、Metasploit等常见安全测试工具,了解原理,熟悉代码并且对其进行过二次开发
-
2、在安全社区比较活跃,提交过高质量安全漏洞或者安全分析文章
-
3、开发社区活跃,有开源过安全相关代码
-
4、有互联网安全团队实习经验
-
-
字节招聘要求
-
linux环境开发能力
-
shell
-
有 Windows/Linux 客户端安全攻防的经验,或了解 Android/iOS 移动安全
-
对安全合规,安全管理有了解
-
数据分析,挖掘,机器学习
-
React/Vue前端
-
对 Web 安全、服务端安全、客户端安全、移动安全、无线安全、物联网安全等其中一项或几项有深入研究
-
面试技巧
面试的节奏最好把握在自己手里,我们不可能每个方面都会,让面试官随便问的话,很大概率要挂。可以在自我介绍的时候,将你的学习历程讲清楚,让面试官知道你会什么,接触过什么,让他知道你大概会的东西的方向。其次,基础要扎实,漏洞的原理、种类、防御方式、应用等都应该十分熟悉,而且最好准备一些比较深的内容,开始的时候不说,等他问了再说,效果更好。然后,就是项目的经验了,这种东西要你确实做过且了解很深的才行,不然很容易给面试官留下差印象。还有就是HR,技术面你可以和面试官扯蛋、闲聊、开些玩笑也无所谓,但HR最好就不要了,正经点,别什么真话都往外说,别给他理由把你pass了
安全相关面试题
1.渗透测试执行标准的7个阶段
-
前期交互
-
信息收集
-
威胁建模
-
漏洞分析
-
漏洞利用
-
后渗透
-
编写报告
2.SQL注入的无回显形式是怎样的?
时间盲注
布尔盲注
在sql注入时为布尔盲注、时间盲注,注入的效率低且线程高容易被waf拦截,又或者是目标站点没有回显,我们在读取文件、执行命令注入等操作时无法明显的确认是否利用成功,这时候就要用到我们的DNSlog注入。
DNS log注入(利用DNS在解析的时候会留下有用的日志)DNSlog注入只能用于windows系统
作为攻击者,提交注入语句,让数据库把需要查询的值和域名拼接起来,然后发生DNS查询,我们只要能获得DNS的日志,就得到了想要的值。所以我们需要有一个自己的域名,然后在域名商处配置一条NS记录,然后我们在NS服务器上面获取DNS日志即可。
不论是bool型盲注还是时间型盲注,都需要频繁的跑请求才能够获取数据库中的值,在现代WAF的防护下,很可能导致IP被ban。我们可以结合DNSLOG完美快速的将数据取出。如遇到MySql的盲注时,可以利用内置函数load_file()来完成DNSLOG。
3.请简述下XSS和CSRF的区别?
4.Json劫持
5.验证码绕过
6.访问控制
7.恶意代码的检测技术
8.简述ARP欺骗的原理及防范措施
9.缓冲区溢出攻击是通过向程序的缓冲区写入超过预定长度的数据,从而破坏程序的堆栈,导致程序执行流程改变
10.端口转发的原理
11.中间人攻击
12.内网渗透的流程
13.sql注入写马有哪些方式?
14.同源策略的绕过方式?
15.后渗透
16.WAF及绕过
18.webshell:就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
19.域名劫持:通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的IP地址从而实现用户无法访问目标网站的目的或者蓄意或恶意要求用户访问指定IP地址(网站)的目的。
20.shell:客户端连接服务器端,想要获取服务器端的shell,那么称为正向shell,如果是客户端连接服务器,服务器端想要获取客户端的shell,那么称为反向shell.
21.OWASP TOP10
22.宽字节注入?
23.上传webshell步骤
-
进入后台寻找上传点
-
尝试正常上传
-
木马上传
-
使用菜刀连接
24.图片上传拿webshell
-
正常上传头像并抓包
-
将数据包中图片的内容部分删掉
-
将大马压缩并写入到原本图
-
上传之后返回包中得到绝对路径
25.代码审计
26.mysql 5.0版本前后有什么区别
MySQL 5.0以上版本存在一个存储着数据库信息的信息数据库--INFORMATION_SCHEMA ,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。 而5.0以下没有。
28.谈谈在WEB类安全问题的应急处置过程中web日志溯源攻击路径的思路?
29.心脏滴血漏洞产生的原因,危害都有哪些?
30.Apache,IIS,Nginx的文件解析漏洞都是如何解析和利用的?
31.linux主机留后门的各种方式
32.sqlmap源码
33.WAF分类
-
云WAF
-
主机防护软件
-
硬件IPS/IDS
判断:
-
SQLmap: sqlmap.py -u "URL" --identify-waf --batch
-
手工:?aaa=1 union select 1,2,3%23
绕过方式:
-
判断是什么WAF
-
判断规则
-
绕过
34.IDS入侵检测、IPS入侵防御
35.getshell方法
36.一句话木马
37.判断是否能进行UDF提权
38.检测ssh日志
39.Arp欺骗
40.00截断
41.漏洞等级分类
42.CDN(内容分发网络)的绕过
-
扫描网站测试文件
-
子域名所在IP段
-
国外访问
-
查询域名历史解析记录
-
邮箱反弹
-
不同DNS域名解析(nslookup www.example.com 8.8.8.8)
-
敏感文件泄露
-
APP抓包
43.同源策略
44.几种安全概念
(PoC通常是无害的,Exp通常是有害)
POC:全称 ' Proof of Concept ',中文 ' 概念验证 ' ,常指一段漏洞证明的代码。
EXP:全称 ' Exploit ',中文 ' 利用 ',指利用系统漏洞进行攻击的动作。
Payload:中文 ' 有效载荷 ',指成功exploit之后,真正在目标系统执行的代码或指令。
Shellcode:简单翻译 ' shell代码 ',是Payload的一种,由于其建立正向/反向shell而得名。
45.Tamper脚本
46.SQL注入中
substr() 截取字符
concat() 连接字符串
查询用户updatexml(1,concat(0x7e,(select user()) ,0x7e),1)--+
UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值
改变XML_document中符合XPATH_string的值
@@datadir——数据库路径
和 -- (有个空格)表示注释,可以使它们后面的语句不被执行。
原因是url中#号是用来指导浏览器动作的(例如锚点),对服务器端完全无用。所以,HTTP请求中不包括#
将#号改成url的编码%23就可以了
-
SQL注入原理
-
SQL注入的种类?
-
SQL注入的绕过有了解过吗?有绕过那些WAF?绕WAF的方法有哪些?
-
介绍一下你的SQL注入流程
-
SQL注入一开始用来判断数据库类型的语句是什么?
-
讲一下sql写入webshell的条件,如果你在的目录没有执行权限怎么办
-
讲讲sql注入的条件
-
SQL注入里面有一个into outfile函数有什么作用?
-
xp_cmdshell有了解过吗?能用来做什么
-
你有了解过那些数据库的sql注入?简单说一下,你是怎么快速判断它属于那个数据库的呢?
-
时间延时注入的原理?sleep()函数不能用你一般会怎么处理
-
HTTP头注入了解过吗?注入点一般存在于那些地方
-
SQL注入的防护方法有哪些呢?预编译的原理是什么呢?
-
Orderby注入了解吗
-
讲一下Get型和Post型的sqlmap语句
47.awvs和appscan
-
扫描器的工作原理
-
两者有何不同
48.burpsuite常使用那些模块 尝试过burpsuite和其他工具联动吗
49.给你一个登录框,可能存在什么样的漏洞?
50.假如现在给你一个网站,你会怎么样去进行渗透测试,多说一下你的思路
1)信息收集, 1,获取域名的whois信息,获取注册者邮箱姓名电话等。 2,查询服务器旁站以及子域名站点,因为主站一般比较难,所以先看看旁站有没有通用性的cms或者其他漏洞。 3,查看服务器操作系统版本,web中间件,看看是否存在已知的漏洞,比如IIS,APACHE,NGINX的解析漏洞 4,查看IP,进行IP地址端口扫描,对响应的端口进行漏洞探测,比如 rsync,心脏出血,mysql,ftp,ssh弱口令等。 5,扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏,比如php探针 6,google hack 进一步探测网站的信息,后台,敏感文件
2)漏洞扫描 开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含, 远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等 3)漏洞利用 利用以上的方式拿到webshell,或者其他权限 4)权限提升 提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉, linu***牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
- 日志清理 6)总结报告及修复方案
51.docker未授权访问漏洞了解过吗,讲一下?docker逃逸了解过吗?
52.SQL注入流程
-
判断是否存在注入并判断是字符型还是数字型注入
-
判断查询列数,回显位置
-
获取数据库信息
-
破解加密数据
-
提升权限
-
内网渗透
53.头注入
54.php弱类型
55.对于安服的理解
56.信息安全的属性
信息安全的基本属性主要表现在以下5个方面:
-
1、保密性,保证信息为授权者享用而不泄漏给未经授权者。
-
2、完整性,保证信息从真实的发信者传送到真实的收信者手中,传送过程中没有被非法用户添加、删除、替换等。
-
3、可用性,保证信息和信息系统随时为授权者提供服务,保证合法用户对信息和资源的使用不会被不合理的拒绝。
-
4、可控性,出于国家和机构的利益和社会管理的需要,保证管理者能够对信息实施必要的控制管理,以对抗社会犯罪和外敌侵犯。
-
5、不可否认性,人们要为自己的信息行为负责,提供保证社会依法管理需要的公证、仲裁信息证据。
57.漏洞复现
58.内网渗透
59.CSP绕过
60.密码学证书
61.端口状态
62.浏览器
63.传输层安全性协议SSL
64.加签过程,验签过程
65.sql注入写文件
66.数据库执行系统命令
67.cc攻击 DDOS攻击
68.XSS、CSRF的区别
69.代码加密的方法
70.什么办法可以让用户从ring0到ring3
71.二次注入
72.点击劫持
73.Gopher协议在SSRF漏洞中的深入研究
74.JSONP劫持
75.态势感知、黑客画像、攻击阻断
76.蜜罐
77.资产收集
78.供应链安全
79.DOM型XSS
79.WAF bypass技巧:
-
注入绕过:
-
大小写绕过
-
双写绕过
-
内联注释绕过
-
注释符绕过
-
or/and绕过
-
单引号绕过
-
等价函数替换
-
空格绕过(其他字符替换空格)
-
多参数请求拆分
-
HTTP参数污染
-
使用生僻函数
-
-
XSS绕过
-
SSRF绕过
-
上传绕过
-
其他
80.DNS重绑定
81.企业面临哪些安全问题
-
开发时期遗留的问题
-
Web中间件漏洞(OS、IIS、Apache)
-
运维管理中的问题(弱口令、文件泄露)
82.商业攻击的步骤
-
1.收集情报:收集情报是一个常态化工作,根据特定任务集中管理相关情报信息;
-
2.制定行动计划:确定任务目标,配置木马、阵地、漏洞等攻击资产
-
3.侦察:收集凭证、测绘可访问网络、扫描设备;
-
4.初始攻击:在应用数据文件中添加可利用点、建立跳板、预置载荷,利用漏洞进行攻击;
-
5.创建据点:利用初始攻击成果建立据点,进程隐藏、网络连接隐藏、文件隐藏;
-
6.提权:利用操作系统漏洞,获取令牌、修改安全策略、获取权限;
-
7.内部侦察:获取系统信息、获取网络信息、枚举账号和权限、枚举文件系统、枚举操作系统和软件、枚举进程、测绘可访问网络、嗅探网络;
-
8.横向移动:端口映射、内网渗透、网络嗅探、远程执行、摆渡攻击、创建用户;
-
9.持续攻击:键盘记录、下载执行、系统密码窃取、数据加密打包、网络通信回传、文件窃取、账号窃取、流量隐藏、固件植入、传回目标资产
-
10.完成任务:清理痕迹;
83.拿到一个网站,该怎么做
84.主动扫描和被动扫描
区别:是否会发送新的请求
适用主动扫描的漏洞:
-
XSS、HTTP头注入、操作重定向
-
SQL、命令行注入、文件遍历
适用被动扫描的漏洞:
-
密码未加密
-
不安全的cookie属性
-
cookie范围缺失
-
跨域脚本包含和站点引用泄露
-
Session令牌不安全传输
-
敏感信息泄露
-
不安全的ViewSate配置
-
不规范的Content-Type指令
85.IPC$ 弱连接
86.SQL注入可能存在于什么地方?
87.Rootkit
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。Rootkit通过加载特殊的驱动,修改系统内核,进而达到隐藏信息的目的。
88.蜜罐
蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。
89.数字签名
90.企业安全建设
-
被动安全
-
WAF
-
IDS,IPS
-
应急响应
-
风控
-
蜜罐
-
-
主动安全
-
安全基线
-
SDLC
-
DAST,IAST
-
SAST
-
91.Content-Type(内容类型),一般是指网页中存在的 Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
92.cookie属性有哪些
93.SYN flood
94.DH中间人攻击
95.逃逸漏洞
96.CIA
机密性(Confidentiality)指只有授权用户可以获取信息。
完整性(Integrity)指信息在输入和传输的过程中,不被非法授权修改和破坏,保证数据的一致性。
可用性(Availability)指保证合法用户对信息和资源的使用不会被不正当地拒绝。
97.黑客常用的清除痕迹的方式及对应的监控方法
98.最近几年影响较大的安全漏洞并请大概介绍其原理、危害
99.应急响应