尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

奇安信安全笔试题解析:从网络基础到Web漏洞的核心考点

奇安信安全笔试题解析:从网络基础到Web漏洞的核心考点 作为在安全圈里干了快十年的老兵我手机里存着不少当年校招季常用的笔试题奇安信2018春招专业知识题二就是我一直留着的一份。虽然这套题贴着“2018春招”的标签但里面的考察思路放到今天依然能打——它不是在为难人而是在用一套设计得很紧凑的题目把候选人的基本功、漏洞理解能力和工程意识一次性摸清。想进安全公司做研发、做渗透测试、做安全服务拿这套题来摸底和自测比盲目刷一堆网上拼凑的题库要靠谱得多。先说结论这套题的重点不是让你背概念而是看你能不能从原理层面讲清楚一个安全问题“为什么发生”以及“怎么防”。同一个知识点换个场景拐个弯很多人就露馅了。下面我按题目设计意图、核心知识点、实操模拟、错题复盘和备考思路五个方面把这份题拆开揉碎讲一遍。内容上不涉及具体原题的誊抄而是把这类题型的考法和答法梳理出来你照着这个框架去复习比对着答案死记硬背有效得多。1. 这套题到底在考什么1.1 考题背后的岗位能力画像春招和秋招的节奏差异很大。秋招时间宽裕可以慢慢筛春招通常是在补录和新增HC笔试的筛选效率要求很高。这个背景下奇安信这类安全公司的校招笔试题不会故意出偏题怪题而是用中等难度、高覆盖度的方式快速把基本功不达标的候选人拦在面试门外。从岗位方向看安全公司校招常见的有三类安全研发、安全服务/渗透测试、安全分析安全运营。这三个方向对技能栈的要求有交叉也有差异但基础交集非常大。TCP/IP协议栈的细节、HTTP协议的状态码与会话机制、常见Web漏洞的原理和修复方式、对称与非对称加密的适用场景、Linux系统的权限管理和日志分析这些几乎是不分方向全都会考的通用内容。这套题特别典型的一个设计是同一个知识点不会直接问“是什么”而是给一个小场景让你分析“如果这样写会出什么问题”“你会怎么改”。比如考SQL注入不是让你默写注入语句而是给一段拼接了用户输入查询代码问你这样写有什么风险、怎么修。这其实是在看你能不能理解漏洞产生的根因而不只是背了几个Payload就觉得自己入门了。1.2 知识权重分布与考察逻辑根据我对这套题的印象它的知识覆盖大致可以分成五个模块权重从高到低排列如下模块典型考点考察目的Web安全XSS、SQL注入、CSRF、SSRF是否理解漏洞根因与修复方案网络基础TCP三次握手、DNS解析、HTTP/HTTPS是否具备链路分析能力操作系统与权限Linux权限位、SUID、日志排查是否有主机层的问题排查经验密码学基础对称/非对称、哈希、数字签名是否掌握加解密场景的选型逻辑安全产品与应急响应WAF思路、流量分析、入侵排查是否了解安全运营的日常工作这个权重分布其实映射了安全公司的真实业务需求。安全服务类项目要交付渗透测试报告和整改建议需要候选人能看懂攻击面、讲清利用链安全产品研发要写检测规则、做日志解析需要候选人理解攻击特征和协议细节安全运营中心做实时分析需要候选人对异常流量和主机行为有基础判断。笔试考的不是单一技能而是你能不能快速进入工作语境。2. 核心知识点拆解从协议到攻防2.1 网络基础TCP/IP与HTTP的那些坑网络部分看着简单但得分率往往不高。原因在于很多人把OSI七层模型和TCP/IP四层模型背得滚瓜烂熟一碰到实际场景就卡住。这类题里最常见的一道就是客户端访问一个HTTPS网站时从输入URL到页面展示中间会发生什么这是一道非常经典的全链路题考点涵盖DNS解析、TCP握手、TLS握手、HTTP请求、服务端响应、浏览器渲染等多个环节。答这道题最关键的是把顺序理清楚每一步都要点出关键细节。DNS解析要说到递归查询和迭代查询的区别先查本地缓存没有再往本地DNS服务器逐级向上请求TCP握手要说到SYN、SYN-ACK、ACK三个报文并且说明为什么需要三次而不是两次——核心是为了防止历史重复连接初始化造成的资源浪费确保双方都确认了彼此的收发能力HTTPS部分要说到TLS握手中的证书校验、密钥交换算法以及对称加密和非对称加密在会话里各自承担什么角色也就是用非对称加密协商会话密钥用对称加密加密实际传输数据。我这些年面试遇到的候选人里把TLS握手和TCP握手混在一起说的情况太常见了。要记住它们不是同一层的机制TCP握手建立的是可靠的传输通道TLS握手是在这条通道之上完成身份验证和会话密钥协商。答题时如果能主动提到这个层次区分面试官对你的印象分会明显提高因为这说明你不是背概念而是理解网络分层是各司其职的。HTTP状态码也是高频考点。200、301、302、403、404、500这些大家都认识但403和404的差异、301和302的差异很多人没有认真想过。403是服务器收到了请求但拒绝执行说明资源存在但你没有权限404是资源不存在可能是路径写错也可能是服务端主动隐藏。301是永久重定向302是临时重定向这个语义差异会直接影响搜索引擎对页面的收录行为和客户端是否更新缓存。安全人员在分析访问日志、排查爬虫行为的时候这些细节会直接影响判断。2.2 应用层安全XSS、SQL注入与CSRF的理解Web安全是整套题的重心几乎每一份卷子都会在XSS、SQL注入、CSRF这几个经典漏洞上展开。以XSS为例题目通常会先给出一小段代码让你指出存在的漏洞类型再问如何修复。XSS的核心成因在于把用户输入当成了代码执行没有做输出编码或输入过滤。存储型、反射型、DOM型这三种类型要能分清楚尤其是DOM型XSS的成因不在服务端而在前端JavaScript对location.hash、document.referrer这些来源数据的处理。很多人只知道DOM型XSS却说不清它和反射型的本质区别——反射型是服务端把用户输入反射回页面DOM型是纯前端在操作DOM时引发的服务端完全没有参与。搞清楚这点修复方案自然也就不同反射型主要靠服务端输出编码DOM型则要改前端JS代码避免把不可信数据直接传给innerHTML、document.write这类危险的执行或渲染接口。SQL注入的考察点集中在参数化查询这个方向。很多人会背“使用预处理语句可以防注入”但要他解释清楚“为什么参数化能防注入”就卡住了。这个问题的本质是SQL语句的组成结构在预处理阶段就固定了用户输入只能作为参数值传入无法再改变语句结构。如果你把用户输入直接拼接到SQL语句字符串里就等于允许用户输入的一部分成为SQL语法本身攻击者就有了改变查询逻辑的空间。答题时把这一步逻辑说透比反复强调“我用的是预编译”要有力得多。另外还可以提一句即使使用参数化查询也要注意存储过程内部如果仍然使用字符串拼接同样存在注入风险这个细节答出来就是加分项。CSRF和XSS经常被放在一起对比。CSRF利用的是浏览器会自动携带Cookie的机制攻击者构造一个跨站请求让受害者在登录状态下发出非预期操作。防御思路常见的三种校验Referer请求来源、增加CSRF Token、关键操作二次确认。其中CSRF Token是主流方案原理是服务端在渲染页面时生成一个随机的Token绑定在会话里提交请求时必须带上攻击者无法获取到这个Token也就无法伪装请求。理解CSRF的关键是抓住“请求是合法用户发出的但不是用户本意”这个矛盾。如果能拿这个矛盾去解释为什么校验来源、绑定Token能生效说明你真的掌握了而不是背了三条防御措施。2.3 密码学与加解密场景密码学部分不会出太深的计算题常见的陷阱在于把不同用途的算法混为一谈。对称加密AES、DES效率高适合加密大数据量内容非对称加密RSA、ECC效率低适合小数据量场景主要用在密钥交换和数字签名哈希算法MD5、SHA系列是单向的不能用于加密解密只能用于完整性校验和口令存储。把三种用途放到一道案例题里最容易看出候选人有没有系统学过密码学。举个例子题目可能会问登录功能里用户密码应该怎么存正确的答案是加盐哈希也就是使用bcrypt、scrypt或PBKDF2这类专门为口令存储设计的慢哈希算法。如果候选人回答“用MD5加密一下”哪怕后面全都说对了前面这一句已经暴露了对哈希和加密概念的理解不到位。MD5不是加密是哈希而且不加盐的MD5很容易被彩虹表预计算攻击破解。这里最好还能主动补一句加盐是为了抵抗彩虹表和预计算攻击每个用户的盐要随机生成且不重复越长的盐越安全。这样回答的完整度就非常高了。数字签名方向的题一般会结合HTTPS证书出现。问HTTPS证书的作用核心要答出两层服务器的身份认证和数据传输的加密协商。数字签名的机制是私钥签名、公钥验证和加密刚好相反——加密是公钥加密、私钥解密。这个方向选反是高频错点。我的建议是记一句稳妥的口诀“签名用私钥验签用公钥加密用公钥解密用私钥。”这句话能应付大多数密码学场景题。2.4 安全产品与应急响应常识这个模块是很多人容易忽略的因为应届生接触安全产品的机会不多但笔试却经常会涉及。常见题目包括WAF能防御哪些攻击、有哪些绕过思路IDS和IPS的区别如何判断一台服务器是否被入侵一条WebShell告警应该怎么响应。这些题考的是工程意识。就拿WAF来说题目如果问“部署了WAF是不是就高枕无忧了”一定要答“不是”。WAF本质是缓解措施默认基于规则和语义分析存在绕过可能比如编码绕过、参数污染、分块传输等而且WAF很难完全防护业务逻辑层的漏洞比如越权、验证码绕过。正确的做法是将代码层修复作为第一道防线WAF作为纵深防御的一部分同时开启访问日志和告警形成检测闭环。这个回答结构能把“产品理解”和“安全思维”两方面都展示出来。入侵排查类题目更是面试官喜欢拿来试水的。一般会给一个场景比如服务器CPU异常、网络连接很多、日志里有奇怪的请求让你说排查思路。正确流程是先保存现场包括复制当前进程列表、网络连接、登录日志然后看异常进程用ps、lsof、/proc/pid/下的信息再看网络连接netstat或ss接着检查Web目录下最近修改的文件最后分析Web日志里的攻击特征定位问题后先隔离再清除最后补好漏洞恢复业务。步骤之间是有依赖关系的如果上来就说“先删文件”那就说明缺少应急响应的基本条理。3. 实操模拟拿到题之后怎么答3.1 题型样例与答题思路前面说的都是知识点下面我用三道有代表性的模拟题把答题方式完整走一遍。你可以拿来自测看看自己会在哪个环节卡住。第一题某系统登录接口出现大量密码暴力破解请求你作为安全工程师会从哪些方面进行防护这道题考的是防护方案的综合设计能力。答题时可以从四个层面展开网络层通过防火墙或安全组限制来源IP、封禁异常频率IP应用层在登录接口增加验证码校验、登录失败次数锁定、支持多因子认证数据层确保密码存储采用加盐哈希即便数据库被拖走也不能直接还原明文运营层面配置实时告警对异常登录IP进行追踪和封禁。四个层面都覆盖到并且每个点都能说出理由就是高分答法。第二题一台Linux服务器对外开放了22端口和3306端口你会如何评估风险并提出建议这道题考察的是攻击面意识。22端口对应SSH3306对应MySQL。首先确认服务是否存在弱口令这是最直接的风险其次看服务是否应该暴露在公网如果业务不需要就通过防火墙做白名单限制再检查服务版本是否有公开漏洞建议升级到安全版本最后开启审计日志、配置登录失败锁定或fail2ban等防护工具。整个回答要体现一个核心顺序先确认必要性再压缩暴露面最后补上防护和监控。第三题一条告警显示某Web服务器的访问日志中出现大量URL编码的../字符串同时进程CPU占用异常升高你怀疑发生了什么下一步怎么处理这题明显是在考目录穿越和WebShell排查。../是目录穿越的特征说明可能存在路径控制缺失攻击者试图跳出受限目录读取文件CPU异常升高说明系统可能在持续执行恶意程序。排查思路是保存现场复制进程和日志快照用ps查看异常进程用lsof查看进程打开的路径检查Web目录下最近新增和修改的文件分析日志中的攻击特征和攻击来源IP确认后隔离主机、清理后门、修复路径处理逻辑、恢复业务。每一步按顺序讲清楚就是标准的应急处置流程。3.2 现场答题的结构化打法校招笔试题量通常不小时间也紧如果一上来就埋头写很可能写到后面草草收场。我建议答题时遵循一个简单的结构先结论再依据最后补充。遇到判断类问题先亮明立场是或者不是然后再解释原因。比如问“WAF能不能完全防御SQL注入”第一句就答“不能WAF只是缓解手段”然后解释WAF基于规则和语义分析可以绕过且无法修复业务代码本身的漏洞最后补充应该以参数化查询为主、WAF为辅助。这样的回答即使内容不完全关键点已经覆盖了。分析类题目先讲最核心的原因再讲对应措施。开放型题目先搭框架再填内容。我见过太多候选人写了一大段但核心观点淹没在细节里阅卷的人需要花力气去猜他要表达什么。安全领域非常看重结论先行笔试题同样如此。做题顺序也值得提一句。建议先扫一遍整张卷子标记出会做的题和分值高的题优先完成难题放到最后。别在某一道题上死磕超过十分钟。笔试的容错率高一道题不完全不代表没机会但好几道简单题没时间做就真的很可惜了。4. 错题复盘与避坑实录4.1 最容易踩的认知误区我把这些年带新人时观察到的高频错误整理了一下有几类特别典型分享出来希望对正在备考的你有帮助。第一类术语混用。“加密”“哈希”“编码”三个概念经常被搞混。Base64是编码不是加密因为它是可逆的且没有密钥参与MD5是哈希不是加密因为它是单向的。这类术语在笔试题里一旦说错后果很严重因为这直接暴露了你的知识体系是碎片化的。建议复习的时候做一个概念对照表把每个术语的定义、特点、使用场景列清楚别靠感觉答题。第二类只知道解法不知道为什么。比如知道SQL注入要用参数化查询但说不清原理知道XSS要过滤和编码但分不清存储型、反射型、DOM型为什么成因不同。这类问题和刷题习惯有关只看结论不追根因。我自己的方法是每学一个漏洞类型就逼自己回答一个问题“如果我来设计这个功能我会在哪个环节写错代码导致漏洞”把自己代入开发者的视角去理解漏洞比被动记忆加固列表有效得多考试时也更容易举一反三。第三类忽略边界条件。题目问某个防护方案是否有效很多人直接答有效或无效完全忽略题干里给定的约束条件比如内网环境、公网访问、仅允许管理员操作等。安全领域的大部分问题都不是非黑即白的回答时要把“在什么条件下成立、在什么条件下不成立”讲清楚这本身就是安全思维的一种体现在笔试里尤其加分。4.2 考场发挥的细节技巧除了知识储备应试细节同样影响得分。我建议把草稿纸有效利用起来。遇到网络链路分析、加解密流程类的题先在草稿纸上画出报文的交互顺序和角色关系再落笔写答案。画图的过程能帮你把逻辑顺序理清楚减少漏步骤也方便后续检查和补充。审题要注意题干里的限定词。比如“在内网环境下”“在公网访问场景中”“仅允许管理员操作”这些限定不是废话而是题目的约束条件。同一个知识点在不同的限定条件下给出的方案会不一样。忽略限定条件直接答题即使大方向对了细节上也会扣分。代码题和日志题一定要逐行读不能只看关键词。我见过不少人看到日志里有SELECT就直接认定是SQL注入但再往下看参数已经被预处理绑定根本不存在注入点。这种错误在笔试和实际工作中都容易出现本质是急于得出结论。日志分析题一定要先看上下文再看来源IP和参数内容最后下结论。最后说点心态上的。春招笔试的难度整体是递进的前几道题通常比较简单是用来稳定情绪的中间几道题是分水岭真正拉开差距最后几道题偏综合考察应变能力。把会做的都拿到分不会做的把思路写出来一样能拿到部分分。千万别空着不做尤其是问答题写了思路就有机会空着就是零分。5. 从备考到实战这套题的后劲儿5.1 考完之后应该补什么笔试只是第一关后面还有面试和项目考察。如果你在做这套题时发现自己某一类题目完全没有思路比如密码学场景题、应急响应流程题那就需要在面试前重点补短板。我推荐一个复习方法把每个知识点都转化成“攻击视角 防御视角 检测视角”三种理解。以SQL注入为例攻击视角要知道怎么构造闭合、怎么绕过WAF防御视角要知道参数化查询的适用场景和输入校验的位置检测视角要知道日志里哪些特征可以关联到注入尝试比如报错语句、UNION SELECT关键字、异常的请求参数结构。三重理解都建立起来这个知识点才算真正掌握。项目经历是校招简历里最关键的加分项但很多人的项目写得像功能清单完全没有突出安全部分。如果能把笔试中涉及的漏洞分析、加固方案、应急响应流程结合你实际做过的项目讲出来面试官会非常感兴趣。没有实战项目的可以用开源靶场和实训平台补足把实验过程写成技术文档同样能体现动手能力。关键是让面试官看到你有完整的问题处理闭环发现、分析、修复、验证、总结。5.2 持续迭代把一套题变成知识框架一套笔试最好的使用方法不是刷一遍对答案而是把题目吃透之后反向整理知识地图。我带新人的时候会把每个考到的知识点拆成“原理、攻击、防御、检测”四列对照着整理笔记。比如XSS这一行原理是用户输入被当作脚本执行攻击是构造Paylaod并通过各种方式绕过过滤防御是输出编码加上CSP策略检测是审计DOM操作、关注日志中的script特征。整理到这个颗粒度这套题的知识就真正变成你自己的了。如果说这份试卷给我最大的感触那就是安全行业真正看重的是“底层原理 工程意识”的组合。基础扎实的人遇到新漏洞类型也能快速上手分析工程意识强的人给出的方案天然会考虑可运维性和可检测性。考试的价值不在于那几十分钟的分数而在于它促使你把整个知识体系完整地梳理了一遍。按照我这些年带新人的经验能把一套题吃透到这种程度后面无论是面试表现还是入职上手速度都会比其他候选人快一大截。
返回列表