← 返回随写
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。
- 根本防御: 采用 预编译语句 (Prepared Statements),将 SQL 语句结构与数据彻底分离(如 MyBatis 的
2. XSS (跨站脚本)
- 三大分类:
- 反射型: 非持久化。恶意脚本存在于 URL 中,通过欺骗用户点击触发(常见于搜索框、跳转页)。
- 存储型: 持久化(危害最大)。脚本存入服务器数据库,任何普通用户访问该页面都会自动从服务器加载并触发(常见于留言板、评论区)。
- DOM 型: 不经过后端服务器。纯前端 JS 在处理敏感输入/输出(如
innerHTML,eval,document.write)时引入的安全问题。
- 防御核心: 不要信任输入,输出必须严格编码(HTML实体编码/JS编码);针对 Cookie 窃取,必须在服务端开启 HttpOnly 属性;配置 CSP(内容安全策略) 严格限制资源加载。
3. CSRF (跨站请求伪造)
- 原理: 借用受害者在目标网站未过期的 Cookie/Session 凭证,在第三方恶意网站上伪造受害者的身份发送敏感请求(修改密码/转账),攻击者自始至终拿不到用户的真实 Cookie。
- 防御核心: * Token 机制: 最主流,表单随机 Token 校验。
- SameSite: Cookie 设置
Strict或Lax属性,限制跨站发送 Cookie。 - HTTP 头部校验: 验证
Referer或Origin是否来自合法的本站域名。 - 二次验证: 高危操作强制要求验证码或原密码。
- SameSite: Cookie 设置
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 进行鉴权,绝不单凭前端传入的
id或username参数决定数据归属;垂直权限采用 RBAC/ABAC 角色访问控制模型。
二、 安全设备与蓝队实战研判思路
1. 蓝队核心安全设备矩阵
- 网络层: * WAF(Web应用防火墙): 专注 7 层应用层流量防御,基于特征码和语义分析拦截 Web 攻击。
- IDS/IPS(入侵检测/防御系统): 部署在网络关键节点,基于签名特征检测/阻断已知 CVE、弱口令爆破等。
- 全流量事件分析系统(如天眼/TDP): 全量抓包并留底,支持下载 PCAP 包进行回溯和深度渗透取证。
- 主机层: * EDR(端点检测与响应): 部署在服务器上的 Agent,监控进程异常(如 Web 进程拉起 cmd)、文件行为、系统日志。
- 综合层: * SIEM / SOC / 态势感知平台: 安全流量与主机日志的统一收集、关联分析的大脑。
2. 核心:如何剔除误报,研判“攻击是否成功”?
通用研判逻辑遵循**“四步研判法”**:
- 看攻击源 (Who): 情报平台查 IP(是否扫描器/恶意 C2);看频率和路径判断是人工渗透(低频精准)还是自动化盲扫(高频地毯式)。
- 看请求体 (What): 检查是否符合真实漏洞特征,排查是否是正常业务数据(富文本编辑、商品搜索带
and/select)触发了 WAF 的正则误报。 - 看资产比对 (Asset Matching) —— 【高阶思维】: 检查 Payload 与目标资产环境是否匹配。
面试加分: 如果黑客用 Windows 命令打 Linux,或用 Java 漏洞打纯 PHP 的资产,直接判定为无效攻击/攻击未遂。在值守中可直接调低优先级,视作无需应急的误报。
- 看响应包与主机行为 (Result) —— 【核心分水岭】:
- 若返回
403/404提示拦截或不存在,攻击失败。 - 若返回
200 OK,需核对内容长度与内容。若包含root:x:0:0、数据库报错(Syntax error)或明显的敏感数据,判定真实攻击成功。 - 若返回包加密或无回显,立刻联动 EDR 检查:告警时间点主机是否产生了异常子进程(如
tomcat.exe派生出了cmd.exe/powershell.exe),或者有无异常端口外联(特别是反弹 Shell 的常用端口)。
- 若返回
三、 应急响应规范流程 (PDCERF 模型)
标准处置 6 步法:
- 检测 (Detection) —— 确认沦陷: 上机排查进程(高 CPU 未知进程)、网络连接(
netstat -ano看恶意 C2/矿池 IP)、计划任务、启动项、克隆/隐藏账户,对事件定性(挖矿/勒索/APT/挂马)。 - 抑制 (Containment) —— 【最重要,先救火】: 立即进行网络隔离(拔网线/下发防火墙隔离策略/一键主机隔离),防止威胁向内网横向横移;及时结束恶意进程,防止勒索软件继续加密。
- 根除 (Eradication) —— 清理干净: 彻底清除木马源文件、恶意计划任务、注册表启动项;排查 Web 日志(Nginx/Tomcat 等)进行漏洞溯源,打上对应补丁或修补弱口令,堵死黑客复入路径。
- 恢复 (Recovery) —— 业务上线: 通过备份恢复干净的业务数据,对系统加固后重新上线。
- 监控: 持续观察流量和系统日志 24-48 小时,确保没有残留后门和复发迹象。
- 总结 (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 位),用于客户端进行数据完整性校验。
💡 蓝队面试高频金句(背诵防身)
- 谈研判思路: “我们做 WAF 告警研判,不能只看告警名称。一定要遵循**‘无回显看行为,有回显看内容,全程结合资产匹配度’**的原则,实现闭环研判。”
- 谈应急处置: “应急响应的第一步永远是隔离止损。不以溯源和修补漏洞为目的的应急都是耍流氓,因为黑客留了后门随时可以重来。”
- 谈 Webshell 防御: “面对现在主流的加密 Webshell,单靠静态特征很难防御。作为安服,我们需要在网络层去抓取它们握手阶段的固定 HTTP 头字段、加密通信的异常回显,并立刻联动端点 EDR 监测其进程衍生的异常行为。”