第3章 渗透测试基础技术高频面试题:协议、操作系统、数据库、基础漏洞原理

本章聚焦渗透测试面试中的三大技术基石:网络协议、操作系统与数据库,以及它们衍生的基础漏洞原理。你必须能清晰阐述TCP三次握手、SQL注入、文件上传等高频考点的底层机制、攻击手法与防御方案。下面先通过一张回答框架图理清“基础漏洞问题”的标准拆解路径,再进入核心问答卡片。

基础漏洞回答框架 ① 明确漏洞类型 ② 成因与条件 ③ 攻击手法举例 ④ 防御方案 ⑤ 实际场景延伸 递归检查 适用:SQL注入、XSS、文件上传、命令执行等 按此结构回答,覆盖考察点 ≥ 80%

📋 渗透测试基础技术考点速查表

技术领域 核心考点 考察要点 常见漏洞关联
网络协议 TCP/IP、HTTP、DNS 三次握手/四次挥手、状态码、DNS解析、Cookie/Session SYN Flood、HTTP走私、DNS Tunnel
操作系统 Windows/Linux安全、权限模型 用户/组、SUID/SGID、注册表、安全基线 提权漏洞(脏牛、永恒之蓝)、文件包含
数据库 MySQL、MSSQL、Oracle 存储过程、函数、注入语法、字符集 SQL注入(报错/联合/盲注)、提权(xp_cmdshell)
基础漏洞原理 文件上传/包含、命令执行、XSS 绕过逻辑、WAF绕过、payload构造 一句话木马、命令注入、反射型/存储型XSS

🎯 面试问题 1:请描述 TCP 三次握手过程,并说明 SYN Flood 攻击的原理及防御方法。

🧐 面试官考察点:

  • 对网络协议底层细节的掌握程度
  • 能否结合漏洞理解协议缺陷
  • 防御思维是否具体可行

📐 回答框架:

  1. 简述三次握手:SYN→SYN+ACK→ACK,状态变迁
  2. 指出ACK未收到时服务器维护半连接队列
  3. 描述攻击者伪造源IP发送大量SYN,填满队列
  4. 防御:SYN Cookie、增大backlog、缩短超时

✏️ 示例回答: 客户端发送SYN,服务器回复SYN+ACK并进入SYN_RCVD;客户端回复ACK完成握手。SYN Flood攻击伪造大量SYN不回复ACK,服务器半连接队列耗尽。防御可用SYN Cookie无状态分配序列号,或增大tcp_max_syn_backlog,同时缩短SYN超时。

🔍 可能追问: SYN Cookie 如何工作?如果攻击者能预测序列号怎么办?

⚠️ 避坑提醒: 不要只背步骤;强调攻击本质是资源耗尽,以及防御要分层(网络层+主机层)。避免说“限制SYN速率”这种片面措施。

🎯 面试问题 2:请解释 SQL 注入的原理,并给出一个基于报错的注入 payload 示例及完整的防御方案。

🧐 面试官考察点:

  • 是否理解注入成因是拼接而非参数化
  • 能否灵活构造不同场景 payload
  • 防御方案的工程化程度

📐 回答框架:

  1. 成因:用户输入未过滤直接拼接SQL
  2. 攻击类型:报错/联合/盲注/时间盲注
  3. 报错payload示例:' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT user())))--+
  4. 工程防御:预编译/参数化查询 + WAF + 最小权限

✏️ 示例回答: 报错注入以' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT user())))--+为例,利用MySQL报错函数输出数据。防御核心是使用预编译语句(如MyBatis #{})彻底分离数据和SQL逻辑,并限制数据库账户仅具备必要操作权限。

🔍 可能追问: 预编译在ORM框架中的实现原理?盲注如何逐字符猜解?

⚠️ 避坑提醒: 不要只说“过滤特殊字符”,面试官会追问绕过方式。一定要突出“参数化”才是根治方案。另外避免展示过于复杂的长payload,重点在逻辑。

🎯 面试问题 3:文件上传漏洞的常见绕过方式有哪些?请举例说明如何通过白名单扩展名 + 内容检测进行防御。

🧐 面试官考察点:

  • 对上传过滤机制的深入理解
  • 绕过手法的实际经验
  • 能否设计多层防御体系

📐 回答框架:

  1. 漏洞成因:未校验文件类型/可执行权限
  2. 常见绕过:双扩展名、%00截断、Content-Type篡改、图片马
  3. 防御:白名单扩展名+MIME检测+文件内容魔数校验+重命名存储

✏️ 示例回答: 攻击者上传shell.php.jpg利用Apache解析漏洞,或修改Content-Type为image/jpeg。防御应设白名单(只允许jpg、png等),同时检查文件前几个字节魔数(如89 50 4E 47),保存时使用随机UUID重命名并放在非执行目录。

🔍 可能追问: Apache解析漏洞的版本差异?如何在图片马中隐藏

⚠️ 避坑提醒: 避免只提“限制上传目录执行权限”这种单一回答。重点展示组合拳:白名单+内容检测+重命名+权限控制,同时提到OSS或CDN分离存储更安全。

💡 面试加分点: 在回答每个漏洞问题时,主动提及 修复建议的工程落地(如代码审查、安全编码规范、自动扫描)以及 WAF规则优化,能体现你的系统性思维。