← 返回随写

2026/5/1

安全服务工程师(防御/蓝队视角)全量核心面试笔记

学习笔记

安全服务工程师(防御/蓝队视角)全量核心面试笔记


一、 Web 常见漏洞核心梳理

1. SQL 注入 (SQLi)

  • 核心分类: * 有回显: 联合查询(UNION)、报错注入。
    • 无回显(盲注): 布尔盲注、时间盲注。
    • 特殊类型: 堆叠注入、宽字节注入(针对 GBK 编码,利用 %df\ 吃掉反斜杠)。
  • 盲注原理:
    • 布尔盲注: 页面无报错,仅根据页面返回的对/错状态(如内容存在与否、状态码变化)来逐字猜解数据。
    • 时间盲注: 页面对错返回值均一致,利用延时函数,通过网络响应时间的长短判断猜测是否正确。
  • 高频函数 (MySQL):
    • 截取/判断: substr(), substring(), left(), ascii(), length(), if()
    • 报错注入: updatexml(1, concat(0x7e, (select database())), 1), extractvalue()
    • 时间延迟: sleep(), benchmark()
  • 防御核心:
    • 根本防御: 采用 预编译语句 (Prepared Statements),将 SQL 语句结构与数据彻底分离(如 MyBatis 的 #{}#)。
    • 辅助防御: 输入白名单/过滤、最小权限原则(禁用高危函数、Web 禁止 root 连库)、部署 WAF。

2. XSS (跨站脚本)

  • 三大分类:
    • 反射型: 非持久化。恶意脚本存在于 URL 中,通过欺骗用户点击触发(常见于搜索框、跳转页)。
    • 存储型: 持久化(危害最大)。脚本存入服务器数据库,任何普通用户访问该页面都会自动从服务器加载并触发(常见于留言板、评论区)。
    • DOM 型: 不经过后端服务器。纯前端 JS 在处理敏感输入/输出(如 innerHTML, eval, document.write)时引入的安全问题。
  • 防御核心: 不要信任输入,输出必须严格编码(HTML实体编码/JS编码);针对 Cookie 窃取,必须在服务端开启 HttpOnly 属性;配置 CSP(内容安全策略) 严格限制资源加载。

3. CSRF (跨站请求伪造)

  • 原理: 借用受害者在目标网站未过期的 Cookie/Session 凭证,在第三方恶意网站上伪造受害者的身份发送敏感请求(修改密码/转账),攻击者自始至终拿不到用户的真实 Cookie。
  • 防御核心: * Token 机制: 最主流,表单随机 Token 校验。
    • SameSite: Cookie 设置 StrictLax 属性,限制跨站发送 Cookie。
    • HTTP 头部校验: 验证 RefererOrigin 是否来自合法的本站域名。
    • 二次验证: 高危操作强制要求验证码或原密码。

4. SSRF (服务端请求伪造)

  • 原理: 攻击者向服务器提供一个恶意 URL,迫使服务端发起网络请求,以此为跳板探测或攻击结构内网中原本不对外开放的资产(如 Redis、内网 Web)。
  • 常见利用协议: file://(读本地敏感文件)、gopher://(万能协议,打内网未授权 Redis/MySQL)、dict://(探测内网端口/版本)、http/https
  • 防御核心: 统一白名单限制允许请求的外部域名;严格限制内网 IP 段(黑名单机制);防止 DNS 重绑定 (DNS Rebinding) 攻击(必须在代码层面进行 DNS 解析后再校验其实际 IP)。

5. 文件上传漏洞

  • 常规绕过手法: 前端 JS 绕过(抓包改后缀)、后端黑名单绕过(.php3, .phtml, .jspx)、MIME-Type 绕过(改 Content-Type)、00 截断、双写绕过(.pphphp)、图片马(文件头绕过,如 GIF89a)。
  • 防御核心: 强制白名单校验后缀,且强制重命名文件(如 UUID);实现文件存储与 Web 目录分离(存入对象存储 OSS);若存本地,则取消上传目录的脚本执行权限(可读不可解析)。

6. 越权漏洞

  • 水平越权: 相同权限级别的用户,通过修改 ID(如 id=1001 改为 1002)互换身份查看/修改他人敏感信息。
  • 垂直越权: 低权限用户(如普通注册用户)通过直接访问管理 URL 或改包,获得了高权限用户(管理员)的操作能力。
  • 防御核心: 严格基于服务器端 Session/JWT 进行鉴权,绝不单凭前端传入的 idusername 参数决定数据归属;垂直权限采用 RBAC/ABAC 角色访问控制模型。

二、 安全设备与蓝队实战研判思路

1. 蓝队核心安全设备矩阵

  • 网络层: * WAF(Web应用防火墙): 专注 7 层应用层流量防御,基于特征码和语义分析拦截 Web 攻击。
    • IDS/IPS(入侵检测/防御系统): 部署在网络关键节点,基于签名特征检测/阻断已知 CVE、弱口令爆破等。
    • 全流量事件分析系统(如天眼/TDP): 全量抓包并留底,支持下载 PCAP 包进行回溯和深度渗透取证。
  • 主机层: * EDR(端点检测与响应): 部署在服务器上的 Agent,监控进程异常(如 Web 进程拉起 cmd)、文件行为、系统日志。
  • 综合层: * SIEM / SOC / 态势感知平台: 安全流量与主机日志的统一收集、关联分析的大脑。

2. 核心:如何剔除误报,研判“攻击是否成功”?

通用研判逻辑遵循**“四步研判法”**:

  1. 看攻击源 (Who): 情报平台查 IP(是否扫描器/恶意 C2);看频率和路径判断是人工渗透(低频精准)还是自动化盲扫(高频地毯式)。
  2. 看请求体 (What): 检查是否符合真实漏洞特征,排查是否是正常业务数据(富文本编辑、商品搜索带 and / select)触发了 WAF 的正则误报。
  3. 看资产比对 (Asset Matching) —— 【高阶思维】: 检查 Payload 与目标资产环境是否匹配。

    面试加分: 如果黑客用 Windows 命令打 Linux,或用 Java 漏洞打纯 PHP 的资产,直接判定为无效攻击/攻击未遂。在值守中可直接调低优先级,视作无需应急的误报。

  4. 看响应包与主机行为 (Result) —— 【核心分水岭】:
    • 若返回 403/404 提示拦截或不存在,攻击失败。
    • 若返回 200 OK,需核对内容长度与内容。若包含 root:x:0:0、数据库报错(Syntax error)或明显的敏感数据,判定真实攻击成功
    • 若返回包加密或无回显,立刻联动 EDR 检查:告警时间点主机是否产生了异常子进程(如 tomcat.exe 派生出了 cmd.exe/powershell.exe),或者有无异常端口外联(特别是反弹 Shell 的常用端口)。

三、 应急响应规范流程 (PDCERF 模型)

标准处置 6 步法:

  1. 检测 (Detection) —— 确认沦陷: 上机排查进程(高 CPU 未知进程)、网络连接(netstat -ano 看恶意 C2/矿池 IP)、计划任务、启动项、克隆/隐藏账户,对事件定性(挖矿/勒索/APT/挂马)。
  2. 抑制 (Containment) —— 【最重要,先救火】: 立即进行网络隔离(拔网线/下发防火墙隔离策略/一键主机隔离),防止威胁向内网横向横移;及时结束恶意进程,防止勒索软件继续加密。
  3. 根除 (Eradication) —— 清理干净: 彻底清除木马源文件、恶意计划任务、注册表启动项;排查 Web 日志(Nginx/Tomcat 等)进行漏洞溯源,打上对应补丁或修补弱口令,堵死黑客复入路径。
  4. 恢复 (Recovery) —— 业务上线: 通过备份恢复干净的业务数据,对系统加固后重新上线。
  5. 监控: 持续观察流量和系统日志 24-48 小时,确保没有残留后门和复发迹象。
  6. 总结 (Lessons Learned) —— 复盘报告: 复盘攻击路径,输出《应急响应报告》,针对客户的网络架构提出安全加固建议。

四、 三大主流 Webshell 流量指纹特征

1. 中国蚁剑 (AntSword) —— 半加密/混淆

  • 请求体解密: 无论前台怎么编码,流量 Base64/Hex 解密后必现 PHP/Java 原生代码段(如包含:@ini_set("display_errors", "0");, set_time_limit(0); 以及执行命令的代码)。
  • 头部指纹: 未魔改时默认 User-Agent 为 antSword/v2.x;Content-Type 固定为 application/x-www-form-urlencoded
  • 返回包特征: 响应状态码 200,且返回的数据前后包裹着成对出现的随机字符串作为定界符 (Split标记)

2. 冰蝎 (Behinder) —— 全对称加密

  • 密钥交换(v3.0 强特征): 建立连接的初始阶段,会发送两次正常的 GET 请求进行密钥交换。
  • HTTP 头部特征: Accept 头字段为极度固定的老旧浏览器长字符串组合;Content-Type 几乎全是 application/x-www-form-urlencoded
  • 载荷特征: 通信开始后的 POST 请求体和返回体全盘表现为无规律的二进制密文流,无法直接看到明文命令。

3. 哥斯拉 (Godzilla) —— 全加密+校验

  • 请求头特征: 无论执行何种命令、传输何种数据,HTTP 请求头的 Cookie 字段最后一定以分号 ; 结尾(如 Cookie: JSESSIONID=xxx;)。
  • 响应体特征: 哥斯拉的返回包密文数据的开头和结尾会自带一组固定长度的 MD5 值(前 16 位或后 16 位),用于客户端进行数据完整性校验。

💡 蓝队面试高频金句(背诵防身)

  1. 谈研判思路: “我们做 WAF 告警研判,不能只看告警名称。一定要遵循**‘无回显看行为,有回显看内容,全程结合资产匹配度’**的原则,实现闭环研判。”
  2. 谈应急处置: “应急响应的第一步永远是隔离止损。不以溯源和修补漏洞为目的的应急都是耍流氓,因为黑客留了后门随时可以重来。”
  3. 谈 Webshell 防御: “面对现在主流的加密 Webshell,单靠静态特征很难防御。作为安服,我们需要在网络层去抓取它们握手阶段的固定 HTTP 头字段、加密通信的异常回显,并立刻联动端点 EDR 监测其进程衍生的异常行为。”