3. 技术基础面试:网络协议与漏洞原理
本模块要求渗透测试交付工程师同时理解协议底层机制与漏洞触发条件。面试官通过追问层层递进,考察“协议认知→漏洞映射→攻击模拟→防御落地”的完整思维能力。以下回答框架图可帮助你在面试中快速组织语言。
面试问答卡片
🧠 面试问题
请解释TCP三次握手和四次挥手的过程,并指出其中可能存在的安全风险。
🎯 考察点
- 对TCP状态机理解的准确度
- 能否将协议机制映射到实际攻击场景(如半连接洪水)
- 安全思维:除握手外,能否想到序列号预测等风险
📌 回答框架
- 简述三次握手(SYN→SYN+ACK→ACK)和四次挥手(FIN→ACK→FIN→ACK)
- 指出安全风险:SYN洪水攻击(利用未完成队列)、TCP序列号预测、中间人劫持
- 补充防范手段:SYN Cookie、随机化ISN、加密传输
💬 示例回答(80字)
“三次握手是SYN→SYN+ACK→ACK,四次挥手是FIN→ACK→FIN→ACK。常见安全风险是SYN洪水攻击,攻击者伪造源IP发大量SYN,填满半连接队列导致服务拒绝。防御可用SYN Cookie或缩短超时时间。”
🔍 可能追问
- 为什么四次挥手不能合并为三次?
- 如果客户端不发最后一次ACK会怎样?
- SYN Cookie原理是什么?如何绕过?
⚠️ 避坑提醒:不要只背握手状态,要主动引出安全风险。面试官期待你自然过渡到攻击与防御,而不是被问到才说。
🧠 面试问题
HTTP与HTTPS有什么区别?中间人攻击(MITM)是如何在HTTP上实现的?HTTPS就一定安全吗?
🎯 考察点
- 是否理解HTTPS握手、证书链、加密机制
- 能否讲清MITM攻击的具体步骤(ARP欺骗、伪造证书等)
- 对HTTPS局限性(证书伪造、TLS降级)的认知
📌 回答框架
- 核心区别:HTTPS = HTTP + TLS,加密+身份验证
- MITM实现:在HTTP中可直接抓包;在HTTPS中需要伪造证书或SSL Strip
- HTTPS非安全:CA被攻破、弱密码套件、客户端忽略证书错误
💬 示例回答(90字)
“HTTP明文传输,攻击者在客户端与服务端之间伪装代理即可窃听或篡改。HTTPS通过TLS加密和证书验证防止MITM。但若客户端信任了伪造证书(如恶意WiFi分发CA证书),或攻击者实施SSL Strip降级到HTTP,HTTPS也会失效。”
🔍 可能追问
- TLS 1.2和TLS 1.3在握手上的区别?
- 什么是HSTS?如何绕过?
- 如何用Fiddler或Burp Suite捕获HTTPS流量?
⚠️ 避坑提醒:切忌只说“HTTPS安全”。要展现出你知道HTTPS的常见脆弱点(证书信任、降级攻击),否则会被看作纸上谈兵。
🧠 面试问题
OWASP Top 10中SQL注入的成因是什么?请结合TCP/IP协议栈说明攻击数据包如何到达数据库?
🎯 考察点
- 对SQL注入根本原因的理解(用户输入拼接SQL语句)
- 能否把协议层(HTTP→TCP→IP→应用层)与攻击路径串联
- 实战经验:不同注入类型(联合查询、报错、盲注)
📌 回答框架
- 成因:应用程序直接将用户输入嵌入SQL语句,未做参数化处理
- 协议路径:用户浏览器HTTP请求→TCP分段→IP路由→服务器解包→Web应用→数据库执行
- 攻击手段:通过URL参数、POST体、Cookie注入恶意SQL
- 防御:参数化查询、输入验证、最小权限原则
💬 示例回答(95字)
“SQL注入因后端将用户输入直接拼入SQL语句导致。数据包经HTTP→TCP→IP→网卡到达服务器,Web应用解析参数后传递给数据库执行。例如登录接口' OR 1=1 --可绕过验证。防御核心是使用预编译绑定变量,如MyBatis的#{}或JDBC的PreparedStatement。”
🔍 可能追问
- 如何判断某个注入点是对应MySQL还是Oracle?
- 数据库防火墙能100%防御SQL注入吗?
- 试举一个绕过WAF的注入技巧。
⚠️ 避坑提醒:问协议路径时不要只背协议层级。要展示你理解“用户输入如何在网络和应用程序中流动并最终触发漏洞”,体现系统思维。
常见漏洞成因速查表
| 漏洞类型 | 核心成因 | 协议层关联 | 典型攻击场景 |
|---|---|---|---|
| SQL注入 | 未参数化拼接用户输入 | HTTP请求→数据库协议 | 登录绕过,拖库 |
| XSS | 未对输出编码 | HTTP响应→浏览器渲染 | 盗取Cookie,钓鱼 |
| CSRF | 无验证关键操作 | HTTP请求伪造来源 | 修改密码,转账 |
| SSRF | 服务端请求未限制地址 | 应用层→内部TCP连接 | 内网端口扫描,读敏感文件 |
| 中间人攻击 | 缺乏身份验证/加密 | ARP欺骗→TCP劫持 | 窃听HTTP流量,篡改响应 |
💡 结构化面试提示:面试官期望你在解释任何漏洞时,能够自然地链接到“协议层面如何传递攻击载荷”、“应用层面为何过滤失败”、“网络层面如何防御”三个维度。建议每回答一个问题,都用1-2句话串起 TCP/IP → HTTP → Web应用 → 数据库/文件系统 的链路。