注:本套面试题,已整理成pdf文档,但内容还在持续更新中,因为无论如何都不可能覆盖所有的面试问题,更多的还是希望由点达面,查漏补缺。
某大厂一面整理
1、防范常见的 Web 攻击
2、重要协议分布层
3、arp协议的工作原理
4、rip协议是什么?rip的工作原理
5、什么是RARP?工作原理
6、OSPF协议?OSPF的工作原理
7、TCP与UDP区别总结
8、什么是三次握手四次挥手?
9、tcp为什么要三次握手?
10、dns是什么?dns的工作原理
11、一次完整的HTTP请求过程
12、Cookies和session区别
13、GET 和 POST 的区别
14、HTTPS和HTTP的区别
15、session 的工作原理?
16、http长连接和短连接的区别
17、OSI 的七层模型都有哪些?
18、session 的工作原理?什么是TCP粘包/拆包?发生原因?解决方案
19、TCP如何保证可靠传输?
20、URI和URL的区别
21、什么是SSL ?
22、https是如何保证数据传输的安全(SSL是怎么工作保证安全的)
23、TCP对应的应用层协议,UDP对应的应用层协议
24、常见的状态码有哪些?
二面整理:
1、平时测试是怎么做的(给个目标、给个域名这类嘛)
2、一个登录框大概怎么测试
3、进入后台大概干什么
4、文件上传绕过
5、拿个一个shell一般会怎么做
6、拿到一个shell怎么进行信息收集
7、nmap可以直接扫内网嘛 或者说 nmap怎么扫内网
8、你感觉cs扫内网的速度怎么样呢
9、拿到代理怎么去找靶标或者网关或者跨网段这个问题
10、对于内网的啥啥啥认证或者域控有了解过嘛
11、如何拿域控
12、如何通过cdn找真实IP
13、反序列化漏洞成因利用
14、反序列化漏洞利用链
15、平时项目里面遇到的比较多的是哪种漏洞
16、越权漏洞为什么存在
17、逻辑漏洞大致可以分为几类
18、你感觉自己擅长什么点(熟悉的漏洞)
19、注入测试点,注入漏洞都有哪些类型呢,攻击支持的方式,延迟注入的函数有哪些
20、使用sqlmap遇到封ip的情况怎么处理除了用代理
21、宽字节注入需要什么前提,成因
22、mysql数据库拿shell有几种方法
23、sqlmap是通过什么方式拿的shell
24、csrf介绍一下
25、ssrf漏洞测试点都有哪些具体说一下
26、本地文件包含和远程文件包含的区别,本地文件包含可以进行干什么
非知名大公司的问题
1.xss攻击类型
2.xss常用语句
3.xss跟csrf的区别
4.csrf中文名,举个csrf的例子
5.xss能用来做什么
6.防范sql,xss的方法
7.解释一下PDO预处理
8.绝对防御sql注入的方法
9.什么是垂直越权?什么是水平越权?
10.有没有复现过漏洞 比如cve这种的
11.你都用过什么工具
12.提权有没有了解过
13.编程这块擅长的语言
14.python用过什么高级的库
15.爬虫你会用什么库去进行爬
16.写爬虫会遇到什么问题,比如必须登录账号才能进行爬,说个大概
17.waf的拦截机制
18.waf拦截机制中的拦截规则是什么
19.SQL注入绕过waf
常见面试题及答案
1. 简述一下目前主流编程语言的相关漏洞
答:
- 这个题的相关思路就是聊一聊目前主流语言的漏洞,你可以从两个方面进行阐述:
-
- Java 、Python、PHP(漏洞大户)的相关漏洞,其实也是那几个;
- 聊聊你知道的框架 - 比如Apache基金会框架、PHPAdmin、Python主流Web架构 - jinjia2、Django等;
- Python的漏洞:
- 注入:Django 2022新的SQL注入漏洞,即使Django采用参数化查询和ORM的防范SQL注入也存在字典注入的方式,2022最新的CVE漏洞利用QuerySet.annotate()、aggregate()和extra()方法进行注入;
- XML: XML的读取会造成DoS攻击;XXE 攻击的利用;
- assert 语句: 不要使用 assert 语句来防止用户访问特定代码段。默认情况下,Python 以 debug 为 true 来执行脚本,但在真实环境中,通常使用优化运行,这将会跳过 assert 语句并直接转到安全代码,而不管用户是否是 is_admin 。
- site-package: 伪造官方库进行代码注入和代码伪造;
- Java漏洞:
- Java最著名的就是反序列化漏洞,反序列化漏洞出现在WebLogic、JBoss等常见Web容器;
- Structs2就是任意代码执行
- Log4j2 也是很火的漏洞
- Shiro 的身份验证绕过、远程代码执行;
- PHP漏洞:一抓一大把
- ThinlkPHP的远程代码执行
- PHP的反序列化
- ThinkPHP文件包含
- PHP不安全函数: chroot、exec、一句话木马、proc_open等
-
2.如何发现目前在运行的相关系统正在遭受DDoS攻击?(10分)
答:
-
问题背景:
- 首先现在大多数企业已经不自己购买抗DoS的相关防御设备了,或者只是简单部署DoS流量防御设备系统,因为如果企业遭受到DoS攻击指望那几台互联网出口的抗D设备已经无法满足需求,如果互联网出入口出现高峰流量就会直接将设备打挂,从而设备流量被绕过,还是无法做到流量清洗和DoS的相关防御;
- 本身这种攻击就没有有效的防御方法,最好的方法是在运营商上就做好流量清洗和流量黑洞,才能更有效的防范,因此最为省事和有效的办法是购买运营商的流量清洗服务;
- CDN其实也是一个很有效的防范DoS攻击的途经,也是成本低廉的解决问题的方式;
-
如何发现系统正在遭受攻击?
-
首先,可以在现网中部署流量监视系统或者流量审计系统,从而对业务流量进行监视,进行业务正常流量和IP地址的追踪和观察,形成自身的业务流量安全相关模型,明确内网服务器或者自身应用系统对于服务流量的上限,设立相关的警戒阈值,超过该阈值需要考虑是否遭受DoS攻击;
- 利用分布式多核硬件技术,基于深度数据包检测技术(DPI)监测、分析网络流量数据,快速识别隐藏在背景流量中的攻击包,以实现精准的流量识别和清洗。恶意流量主要包括 DoS/DDoS 攻击、同步风暴(SYN Flood)、UDP 风暴(UDPFlood)、ICMP 风暴(ICMP Flood)、DNS 查询请求风暴(DNS Query Flood)、HTTP Get 风暴(HTTP Get Flood)、CC 攻击等网络攻击流量。
-
其次,Linux服务器对于CC攻击和DoS攻击有自身的日志记录,dmesg 和 message 日志都会有相关的Flood的日志记录,这个日志的记录是由于:net.ipv4.tcp_max_syn_backlog 参数设置的,Linux也有其他参数来防止DoS攻击,主要思路是控制连接数;
-
net.ipv4.tcp_max_syn_backlog = 4096 ``#表示SYN队列的长度,加大队列长度可以容纳更多等待连接的网络连接数 net.ipv4.tcp_syncookies = 1 ``#表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭,1表示打开; net.ipv4.tcp_synack_retries = 2 ``#下面这两行表示定义SYN重试次数 net.ipv4.tcp_syn_retries = 2
#提高TCP连接能力 net.ipv4.tcp_rmem = 32768 net.ipv4.tcp_wmem = 32768 net.ipv4.tcp_sack = 0 ``#打开tcp_sack功能,1表示"关闭",0表示"打开"
-
DDoS deflate
也是一个控制 netstat 和 iptables 有效的工具,通过 netstat 监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP;
-
-
一些框架,例如Apache的Web框架就记录了:access log 来记录访问;
-
此外,可以检查Linux服务器的相关进程资源使用情况,通过 top命令查看监视系统进程的资源使用情况,对系统的资源使用进行监控,这里涉及到主机的监控的相关技术;或者通过 netstat 查看目前系统正在连接数;
netstat -npt | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
-
也可以直接抓取网络流量进行分析,使用的相关工具有:tcpdump 和 tshark 可以抓取网络流量进行分析;
-
3. 简述TLS的加密过程(10分)
答:
-
首先必须明确,TLS目前的版本已经从1.0到1.3版本,目前比较流行的版本是1.2,TLS的运作的OSI模型在传输层,SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。
- 握手协议;
- 握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。
- 密码规格变更协议;
- 密码规格变更协议负责向通信对象传达变更密码方式的信号
- 警告协议;
- 警告协议负责在发生错误的时候将错误传达给对方
- 应用数据协议;
- 应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。
- TLS记录协议;
- 握手协议;
-
TLS加密原理
-
TCP建立了两端的连接;建立在TCP连接的基础上,TLS也是通过几次握手来保证应用层的数据安全传输;
-
要保证数据的安全,就要对两端的传输的报文进行加密,且要防止被中间人攻击所破解。
-
TLS使用非对称加密的方式进行加密,当然这种加密的方式带来的问题就是:非常耗时,加密传输数据会影响效率,这一点非常关键;
-
TLS的秘钥交换规则是:
- 服务端生成非对称秘钥对,私钥自己保存,将公钥明文传输给客户端;
- 客户端自己生成一个对称秘钥,再将对称秘钥通过公钥加密,通过加密后的秘钥传给服务端,服务端通过自己保存的私钥进行解密,获得客户端指定的对称秘钥;
- 当前,这种交换密钥的方式也有一个问题,就是明文传输的公钥可能存在被篡改的问题,这个时候必须引出数字证书和CA的概念;
-
TLS的CA和数字证书(一定要回答这个方面的问题):
- 数字证书是一个包含了某个服务站点名字、公钥的文件,该文件由CA颁发,能够证明服务站点的真实性。
- 服务端自己向CA证书申请数字证书,而CA机构怎么获得相关信任呢?这个时候涉及到根证书机构,世界上的根证书机构只有几个,因此CA机构向根CA机构进行申请,整个CA的信任链也是一个逐级链式认证的过程,在这里不再进行详述。
-
TLS使用的加密协议:
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"
- DHE-DSS-AES256-SHA256
- TLS_DHE_DSS_AES_256_CBC_SHA256
-
最后详细的过程如下图:
- 第一步: 客户端确定随机数,发送支持的密码算法放进到TLS协议中,供服务端进行选择;服务端存储客户端发送的随机数1;
- 第二步:服务端确定与客户端的加密算法,并确定一个随机数2,以明文的方式发送给客户端,客户端保存随机数2;
- 第三部:服务端发送数字证书(包括:公钥、签名、服务端主体信息)给服务端,此时服务器也确定了对应公钥的解密私钥;客户端收到后验证数字证书是否有效,并确定随机数3;
- 第四步:客户端发送经过公钥加密的随机数3,服务端接收并使用保存的私钥进行解密;
- 第五步:这下服务端和客户端都有了对称密钥生成的三个随机数:随机数1、随机数2、随机数3,使用DH(现在比较流行的是:ECDH算法)秘钥生成算法进行生成对称秘钥,使用对称秘钥进行加密数据进行传输;
4. 如何提升非对称加密的运行效率(10分)
答:
- 可以采用独立的硬件加密模块的方式进行,非对称对称加密使用的算法需要考虑大数乘法、大因数分解、大数模运算,在计算机中简单的是加法和减法,因此乘法本身就是有损耗;其次,算法对于秘钥的存储需要空间和算法的复杂度,也会影响非对称加密的运行效率;
- 使用量子计算和椭圆曲线算法来进行加密的方式,椭圆曲线算法涉及到几何学,因此比大数乘法、大因数分解、大数模运算的复杂度要较低;
5. 请简述什么是企业安全运营 / 在企业内部中如何推行安全运营建设(20分 + 20分)
答:
- 这个问题真的非常***钻,需要很强的体系知识以及在企业中的实践经历,甚至对于企业的体系和组织架构有一定的了解,因此是一个20分的大题;必须要对目前的知识进行拆分;
- 什么是企业的安全运营,安全运营的概念:
- 安全运营被定义为:以资产为核心、以安全事件管理为关键流程,采用安全域的划分思想,建立一套实时的资产风险模型,协助管理员进行事件分析、风险分析、预警管理和应急响应处理的集中安全管理系统;
- 安全运营以用户网络的最终安全为目的,实现运营过程上的统筹管理;
- 安全风险不仅仅指的是目前的互联网技术、计算机科学技术,而是将企业整个体系的安全囊括在安全运营建设上,包括:合规安全(监管机构、行业规范)、运营风险管理(在实际运营中的风所有险,例如金融行业的风险控制部门,涉及到业务、产品等);
- 安全运营本质上就是一个:以技术、流程和人有机结合的复杂系统过程,包含:
- 产品、服务、运维、研发等,已有安全工具、安全服务产出的数据进行有效分析,持续输出价值,解决安全风险
- 其模式:用“服务模式”开展合作,以“安全能力”进行赋能,以“安全数据”提供决策,以“运营能力”作为交付,以运营模式来发现问题、验证问题、分析问题、响应处理、解决问题并持续优化;
- 企业安全运营存在的问题:
- 底层的安全基础能力不成熟、安全目标不清晰、安全运营工具依赖第三方厂商、没有形成合理的安全体系、安全人才不择;
- 企业安全运营的建设方向和大体内容:
- 合规性建设和企业自身安全制度体系建设:
- 首先对于任何企业,合规、合法是企业生存的生命线,必须要牢记这一点,相关安全规范可以参考GB/T或者ISO的相关概念和规章制度或者是已经公开的电子政务数据、安全标准、指导法规,有非常大的建设参考意义;
- 开展等级保护和风险评估流程、合规检查和评估指导、合规整改内容;
- 明确内部安全管理的要求、安全技术标准以及运营标准;
- 企业组织架构建设方向:
- 明确现状确立组织架构
- 安全运营的服务体系建设方向:
- 开展安全基线评估加固
- 网络设备安全配置基线 - ARP污染等常见攻击方式
- 安全设备安全配置基线
- 操作系统安全配置基线
- 数据库与中间件安全基线
- 安全配置核查系统和检查脚本工具
- 运维管理和安全审计
- 安全运维管理:对身份、访问、权限控制;
- 角色与权限 RBAC模型等
- 安全审计日志的审计和分析:运维操作产生网络访问日志、安全运维日志、操作日志、产品运行日志、网络流量数据;这些日志中隐藏着网络攻击行为或者未发现的相关攻击行为,安全审计通过这些信息进行审计和发掘,发现相关攻击行为特征;
- 服务交付成果审计
- 系统上线检查
- 安全事件分析
- 重点时期的攻防演练;
- 安全事件及态势监测、安全事件应急处理
- 专家应急响应、安全事件检测、安全事件抑制、安全事件根除、安全事件恢复、安全事件总结;
- 互联网资产发现
- 应用失陷资产的检测
- 安全策略优化服务
- 安全产品的运行、保障、运维
- 外部威胁的实时监测
- 漏洞的全生命周期管理
- 重大时期的安全检查
- 重大安全事件的通告
- 开展安全基线评估加固
- 安全管理服务建设:
- 管理组织建设:
- 按照《网络安全法》等法律法规和等保要求,对各个业务系统进行信息安全设计以及安全运营中心建设;
- 组织架构的建设需要通过审查;
- 明确安全职责矩阵;
- 安全制度管理:
- 明确信息安全总方针、安全策略、说明机构安全工作的总体目标、范围、方针、原则;
- 完善安全中的管理制度;
- 建立日常管理操作制度、手册;
- 定期对安全制度进行评审、
- 成立信息安全领导小组和委员会,由信息安全小组统一负责并组织相关人员指定信息安全管理制度;
- 安全流程管理:
- 安全事件处理流程、安全风险内容评估流程、安全事件应急相应流程、安全事件溯源取证流程、安全设备上线叫个流程;
- 变更流程
- 流程发布过程
- 人员安全管理
- 安全建设管理
- 系统定级、安全方案涉及、安全产品采购、自主软件开发、外包软件开发、工程实施、测试验收、系统交付、系统备案、等级测评、安全服务商选择;
- 安全运维管理
- 环境管理 - 设置管理区
- 资产管理
- 介质管理
- 设备管理
- 安全监控
- 系统安全管理
- 恶意代码防范
- 供应链安全管理
- 密码管理
- 变更管理
- 备份及恢复管理
- 安全事件处置
- 应急预案管理
- 安全培训管理
- 安全运营管理
- 《网络安全法》和等保第三极进行分析,安全管理体系逐步建立和完善
- 对角色/权限管理、安全制度管理、风险管理、控制执行、绩效评价、威胁评价、威胁情报、工作流程进行统一管理
- 安全咨询管理
- 管理组织建设:
- 合规性建设和企业自身安全制度体系建设:
-
面试题
独家渠道收集京东、360、天融信等公司测试题!进大厂指日可待!
同时每个成长路线对应的板块都有配套的视频: