当前位置: 首页 > news >正文

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

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、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

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

二十五、GET vs POST

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

二十六、HTTP vs HTTPS

特性HTTPHTTPS
协议应用层HTTP + SSL/TLS(传输层加密)
端口80443
加密明文传输对称+非对称混合加密
证书无需需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应用层协议

传输层协议示例特点
TCPHTTP, HTTPS, FTP, SMTP, SSH可靠、有序、面向连接
UDPDNS, 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指令分离,避免恶意代码执行。

http://www.dtcms.com/a/321113.html

相关文章:

  • 【19】C#实战篇—— C# 绘制点划线,绘制虚线——PointF dxdy,过x点垂直画红色点划线,长度为W,过y点水平画红色点划线,长度为H
  • 华清远见25072班C语言学习day5
  • 自动驾驶数据闭环
  • 进程管理、系统高负载、cpu超过800%等实战问题处理
  • 机器人权利:虚实之间的伦理与法理探界
  • F5发布业界首创集成式应用交付与安全平台,开启ADC 3.0新时代
  • 【Oracle Linux 9.6】切换默认为命令行模式
  • git如何使用和操作命令?
  • 【/usr/bin/env: “bash\r”: 没有那个文件或目录】问题解决
  • C# GUI程序中的异步操作:解决界面卡顿的关键技术
  • 【C++动态版本号生成方案:实现类似C# 1.0.* 的自动构建号】
  • Ubuntu 系统本地部署 Dify 完整教程
  • MySQL查询语句(会持续更新)
  • Dart关键字完全指南:从基础到高级用法详解
  • [GESP202309 五级] 2023年9月GESP C++五级上机题题解,附带讲解视频!
  • 《Git从入门到精通:告别版本管理混乱》
  • Git 工程迁移指南
  • 如何在 Ubuntu 24.04 LTS 或 22.04/20.04 上安装 Apache Maven
  • ORACLE物化视图快速刷新失败原因查找
  • Oracle 的 exp(传统导出工具)和 expdp(Data Pump 导出工具)是两种命令对比
  • Python合并两个PDF文件
  • 汽车专题 | 视觉AI正在重构整车质检格局
  • OpenAPI(Swagger3)接口文档自定义排序(万能大法,支持任意swagger版本)
  • 基于AI MCP协议, 写一个MCP服务用于连接数据库执行sql
  • PostgreSQL技术大讲堂 - 第100讲:玩转PG数据库对象权限卷之迷宫
  • Langchain入门:构建一个基于SQL数据的问答系统
  • DM8数据库服务正常,但是登录报错 [-70019]:没有匹配的可登录服务器
  • 项目历程—可视化文件系统
  • ESP32-menuconfig(2) -- Application manager
  • MyBatis SQL映射与动态SQL:构建灵活高效的数据访问层 MyBatis SQL映射与动态SQL:构建灵活高效的数据访问层