2025年渗透测试面试题总结-08(题目+回答)

发布于:2025-08-10 ⋅ 阅读:(16) ⋅ 点赞:(0)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

目录

二十、TCP三次握手与四次挥手

二十一、TCP为何三次握手?

二十二、DNS解析原理

二十三、完整HTTP请求过程

二十四、Cookies vs Session

二十五、GET vs POST

二十六、HTTP vs HTTPS

二十七、Session工作原理

二十八、HTTP长连接 vs 短连接

二十九、OSI七层模型

三十、TCP粘包/拆包

三十一、TCP可靠传输机制

三十二、URI vs URL

三十三、SSL/TLS协议

三十四、HTTPS安全机制

三十五、TCP/UDP应用层协议

三十六、HTTP状态码分类

三十七、Web攻击防御策略

三十八、SQL注入攻击

三十九、SQL注入防御实战


二十、什么是三次握手四次挥手?

二十一、tcp 为什么要三次握手?

二十二、dns 是什么?dns 的工作原理

二十三、一次完整的 HTTP 请求过程

二十四、Cookies 和 session 区别

二十五、GET 和 POST 的区别

二十六、HTTPS 和 HTTP 的区别

二十七、session 的工作原理?

二十八、http 长连接和短连接的区别

二十九、OSI 的七层模型都有哪些?

三十、session 的工作原理?什么是 TCP 粘包/拆包?发生原因?解决方案

三十一、TCP 如何保证可靠传输?

三十二、URI 和 URL 的区别

三十三、什么是 SSL ?

三十四、https 是如何保证数据传输的安全(SSL 是怎么工作保证安全的)

三十五、TCP 对应的应用层协议,UDP 对应的应用层协议

三十六、常见的状态码有哪些?

三十七、防范常见的 Web 攻击

三十八、什么是 SQL 注入攻击

三十九、攻击者在 HTTP 请求中注入恶意的 SQL 代码,服务器使用参数构建数据库 SQL 命令时,恶意

二十、TCP三次握手与四次挥手

  1. 三次握手(建立连接)
    • SYN:客户端发送SYN=1, seq=x
    • SYN+ACK:服务端回复SYN=1, ACK=1, seq=y, ack=x+1
    • ACK:客户端确认ACK=1, seq=x+1, ack=y+1
      目的:同步序列号,验证双向通信能力。
  2. 四次挥手(断开连接)
    • FIN:主动方发送FIN=1, seq=u
    • ACK:被动方回复ACK=1, ack=u+1
    • FIN+ACK:被动方发送FIN=1, ACK=1, seq=v, ack=u+1
    • ACK:主动方确认ACK=1, seq=u+1, ack=v+1
      原因:TCP支持半关闭(half-close),需双方独立确认终止。

二十一、TCP为何三次握手?

  • 核心目的:防止已失效的连接请求导致资源浪费
  • 关键风险:若采用两次握手,网络延迟的旧SYN包可能被服务端误认为新请求,建立无效连接
  • 三次握手必要性
    • 确保双方收发能力正常(双向验证)
    • 同步初始序列号(ISN),避免数据混淆

二十二、DNS解析原理

  1. DNS定义:域名系统(Domain Name System),将域名映射为IP地址
  2. 工作流程
    mermaidgraph LR A[浏览器缓存] --> B[操作系统缓存] B --> C[路由器缓存] C --> D[本地DNS服务器] D --> E[根域名服务器] E --> F[顶级域服务器 .com] F --> G[权威域名服务器]
    • 递归查询:客户端→本地DNS
    • 迭代查询:本地DNS→根域→顶级域→权威域

二十三、完整HTTP请求过程

  1. DNS解析:域名→IP
  2. TCP连接:与目标IP三次握手
  3. 发送HTTP请求:请求头+请求体
  4. 服务器处理:路由→业务逻辑→数据库交互
  5. 服务器响应:状态码+响应头+响应体
  6. 浏览器渲染:解析HTML→构建DOM树→渲染页面
  7. 连接关闭:TCP四次挥手

二十四、Cookies vs Session

特性 Cookies Session
存储位置 客户端 服务端
安全性 较低(可篡改) 较高
数据大小限制 ≤4KB 无限制(受服务器内存约束)
生命周期 可设置过期时间 会话结束或超时销毁
使用场景 保存登录状态、用户偏好 存储敏感数据(用户ID等)

二十五、GET vs POST

对比维度 GET POST
数据位置 URL查询字符串 请求体(Body)
安全性 低(历史记录可见) 较高(HTTPS下)
数据长度限制 受URL长度限制(约2KB) 无限制
缓存 可缓存 不可缓存
幂等性 幂等(多次执行结果相同) 非幂等

二十六、HTTP vs HTTPS

特性 HTTP HTTPS
协议 应用层 HTTP + SSL/TLS(传输层加密)
端口 80 443
加密 明文传输 对称+非对称混合加密
证书 无需 需CA认证的数字证书
性能开销 高(加密/解密消耗CPU)

二十七、Session工作原理

  1. 创建:用户首次访问时,服务端生成唯一Session ID
  2. 存储
    • Session ID通过Cookie返回浏览器(如JSESSIONID
    • 会话数据存储在服务端(内存/Redis/数据库)
  3. 验证:后续请求携带Session ID,服务端匹配数据
  4. 销毁:超时(默认30分钟)或主动调用session.invalidate()

二十八、HTTP长连接 vs 短连接

类型 短连接(HTTP/1.0) 长连接(HTTP/1.1+)
连接复用 每次请求后关闭TCP连接 保持连接复用多次请求(Keep-Alive)
性能开销 高(频繁握手挥手)
适用场景 低频请求 高频请求(如网页加载多资源)
默认行为 非默认 HTTP/1.1默认开启

二十九、OSI七层模型

层级 名称 核心协议/设备 功能
7 应用层 HTTP, FTP, DNS 用户接口(数据单位:报文)
6 表示层 SSL, JPEG 数据格式转换、加密
5 会话层 NetBIOS 建立/管理会话
4 传输层 TCP, UDP 端到端连接(数据单位:段)
3 网络层 IP, Router 路由寻址(数据单位:包)
2 数据链路层 Ethernet, Switch 帧传输、MAC寻址
1 物理层 RJ45, Fiber 比特流传输

三十、TCP粘包/拆包

  1. 现象:接收方读取的数据包不完整(粘包)或拆分(拆包)
  2. 原因
    • 粘包:发送方频繁发送小包 → 接收缓冲区合并
    • 拆包:包大小超过TCP缓冲区/MSS(最大报文段长度)
  3. 解决方案
    • 定长协议:固定每个包长度(如512字节)
    • 分隔符:用特殊字符标记结束(如\n
    • 长度字段:包头声明数据长度(如HTTP头Content-Length

三十一、TCP可靠传输机制

  1. 校验和:验证数据完整性
  2. 序列号与ACK:确认数据有序到达
  3. 重传机制:超时重传(RTO) + 快速重传(重复ACK)
  4. 流量控制:滑动窗口(接收方控制发送速率)
  5. 拥塞控制:慢启动 → 拥塞避免 → 快重传 → 快恢复

三十二、URI vs URL

  • URI(统一资源标识符):资源的抽象标识(如 ISBN:9780143035008
  • URL(统一资源定位符):资源的具体访问路径(如 https://example.com/book
    所有URL都是URI,但URI不一定是URL

三十三、SSL/TLS协议

  • 定义:安全套接层(Secure Sockets Layer)/传输层安全协议(Transport Layer Security)
  • 作用:在传输层提供加密、认证和数据完整性保护
  • 核心功能
    • 加密传输数据(防窃听)
    • 验证服务器身份(防中间人攻击)
    • 防止数据篡改(MAC验证)

三十四、HTTPS安全机制

  1. SSL/TLS握手
    • 客户端发送ClientHello(支持算法列表)
    • 服务端回复ServerHello(选定算法)+ 数字证书
    • 客户端验证证书有效性(CA链校验)
    • 生成会话密钥:客户端用证书公钥加密预备主密钥 → 服务端私钥解密
    • 双方基于预备主密钥生成对称加密密钥
  2. 数据传输:使用对称密钥加密通信(如AES)

三十五、TCP/UDP应用层协议

传输层 协议示例 特点
TCP HTTP, HTTPS, FTP, SMTP, SSH 可靠、有序、面向连接
UDP DNS, DHCP, NTP, QUIC, VoIP 高效、低延迟、无连接

三十六、HTTP状态码分类

状态码 类别 常见示例
1xx 信息响应 100(继续发送请求体)
2xx 成功 200(OK), 201(Created)
3xx 重定向 301(永久迁移), 302(临时重定向)
4xx 客户端错误 400(请求语法错误), 403(禁止访问), 404(资源不存在)
5xx 服务器错误 500(内部错误), 502(网关错误), 504(网关超时)

三十七、Web攻击防御策略

  1. XSS(跨站脚本)
    • 防御:输入过滤 + 输出转义(如<&lt;) + CSP(内容安全策略)
  2. CSRF(跨站请求伪造)
    • 防御:SameSite Cookie + 验证Referer + Anti-CSRF Token
  3. DDoS:流量清洗 + CDN分发 + 限流(如令牌桶)
  4. 中间人攻击:强制HTTPS + HSTS响应头

三十八、SQL注入攻击

  1. 原理:攻击者将恶意SQL代码拼接到输入参数中
    sql-- 原始SQL SELECT * FROM users WHERE username = '$input_user'; -- 恶意输入: admin' OR '1'='1 -- 最终SQL(返回所有用户): SELECT * FROM users WHERE username = 'admin' OR '1'='1';
  2. 防御措施
    • 参数化查询(Prepared Statements)
    • 输入验证(白名单过滤)
    • 最小权限原则(数据库账户权限限制)

三十九、SQL注入防御实战

java// 错误示例(拼接SQL) String sql = "SELECT * FROM users WHERE username = '" + inputUser + "'"; // 正确方案:使用PreparedStatement String sql = "SELECT * FROM users WHERE username = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setString(1, inputUser); // 自动转义特殊字符 ResultSet rs = stmt.executeQuery(); 

关键点:参数化查询将输入数据与SQL指令分离,避免恶意代码执行。


网站公告

今日签到

点亮在社区的每一天
去签到