网上收集的红队面试题详细解析(二)【21-40题】
网上收集的红队面试题详细解析(二)【21-40题】
21. tcp 为什么要三次握手?
原理:
- 三次握手确保双方都能收发数据,避免旧连接干扰,保证可靠建立连接。
举例:
- 第一次:客户端发SYN,服务端收到。
- 第二次:服务端发SYN-ACK,客户端收到。
- 第三次:客户端发ACK,服务端收到,连接建立。
进阶:
- 若只两次握手,可能服务端无法确认客户端接收能力。
22. dns 是什么?dns 的工作原理
原理:
- 域名系统(DNS)将域名解析为IP地址,便于人类记忆和访问网站。
举例:
进阶:
- 包含递归查询、缓存机制,防止重复解析。
23. 一次完整的 HTTP 请求过程
原理:
- 客户端发起请求,服务器处理并返回响应,浏览器渲染页面。
举例:
- 浏览器输入网址,发起DNS解析。
- 建立TCP连接(三次握手)。
- 发送HTTP请求。
- 服务器响应HTTP数据。
- 浏览器渲染页面。
进阶:
- HTTPS多一步SSL握手,数据加密传输。
24. Cookies 和 session 区别
原理:
- Cookie存储在客户端,session存储在服务器端。
举例:
- 登录后,cookie保存用户标识,session保存用户状态。
进阶:
- session更安全,cookie易被窃取。
25. GET 和 POST 的区别
原理:
- GET参数在URL中,POST参数在请求体中,GET适合查询,POST适合提交数据。
举例:
- GET: www.site.com?id=1
- POST: 数据在body里,URL不显示。
进阶:
- GET有长度限制,POST无明显限制。
26. HTTPS 和 HTTP 的区别
原理:
- HTTPS有加密(SSL/TLS),HTTP无加密,HTTPS更安全。
举例:
- HTTP明文传输,HTTPS密文传输。
进阶:
- HTTPS有证书认证,防止中间人攻击。
27. session 的工作原理?
原理:
- 用户登录后,服务器生成sessionID,客户端用cookie保存,后续请求带上ID,服务器识别用户状态。
举例:
- 登录后访问个人中心,服务器通过sessionID识别用户。
进阶:
- session可存储在内存、数据库、分布式缓存。
28. http 长连接和短连接的区别
原理:
- 长连接:多次请求复用同一TCP连接,减少握手次数。
- 短连接:每次请求都新建连接,用完即断开。
举例:
- WebSocket、HTTP/1.1默认长连接。
进阶:
- 长连接适合高频交互,短连接适合偶发请求。
29. OSI 的七层模型都有哪些?
原理:
- 物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
举例:
- 应用层:HTTP、FTP;传输层:TCP、UDP;网络层:IP。
进阶:
- 理解分层有助于定位网络故障和安全问题。
30. session 的工作原理?什么是 TCP 粘包/拆包?发生原因?解决方案
原理:
- session见27题。
- TCP粘包:多条消息合并为一包发送。
- 拆包:一条消息被分成多包发送。
举例:
- 粘包:发送“abc”“def”,接收端收到“abcdef”。
- 拆包:发送“abcdef”,接收端收到“abc”“def”。
进阶:
- 解决:定长、分隔符、消息头标识长度。
31. TCP 如何保证可靠传输?
原理:
- 序号、确认应答、重传机制、流量控制、拥塞控制。
举例:
- 丢包自动重传,乱序自动排序。
进阶:
- 滑动窗口、超时重传、ACK确认。
32. URI 和 URL 的区别
原理:
- URI是统一资源标识符,URL是统一资源定位符,URL是URI的一种。
举例:
- URI: mailto:abc@xx.com
- URL: https://www.baidu.com
进阶:
- URI包含URN(统一资源名称)和URL。
33. 什么是 SSL ?
原理:
- 安全套接字层协议,保障数据加密传输,已被TLS取代。
举例:
- HTTPS使用SSL/TLS加密数据。
进阶:
- 包含握手、证书认证、加密算法协商。
34. https 是如何保证数据传输的安全(SSL 是怎么工作保证安全的)
原理:
- 通过SSL/TLS协议,使用非对称加密交换密钥,后续用对称加密传输数据,防止窃听和篡改。
举例:
- 客户端验证服务器证书,协商加密算法,建立安全通道。
进阶:
- 支持数据完整性校验和身份认证。
35. TCP 对应的应用层协议,UDP 对应的应用层协议
原理:
- TCP:HTTP、FTP、SMTP、Telnet等。
- UDP:DNS、SNMP、DHCP、TFTP等。
举例:
- 浏览网页用HTTP(TCP),看直播用RTSP(UDP)。
进阶:
- 根据需求选择协议,可靠性优先选TCP,实时性优先选UDP。
36. 常见的状态码有哪些?
原理:
- HTTP状态码用于标识请求结果。
举例:
- 200:成功
- 301/302:重定向
- 400:请求错误
- 401:未授权
- 403:禁止访问
- 404:未找到
- 500:服务器错误
进阶:
- 详细了解各类状态码有助于排查问题。
37. 防范常见的 Web 攻击
原理:
- 输入验证、权限控制、加密传输、定期安全测试。
举例:
- 防SQL注入:参数化查询;防XSS:输出转义。
进阶:
- 使用WAF、定期漏洞扫描、代码审计。
38. 什么是 SQL 注入攻击
原理:
- 攻击者在输入中插入恶意SQL语句,篡改数据库操作。
举例:
- 用户名输入:' OR 1=1 --,可绕过登录验证。
进阶:
- 防御:参数化查询、输入过滤。
39. 攻击者在 HTTP 请求中注入恶意的 SQL 代码,服务器使用参数构建数据库 SQL 命令时,恶意
原理:
- 见38题,攻击者利用拼接漏洞,注入SQL代码,执行非预期操作。
举例:
- 登录接口拼接SQL,攻击者输入恶意语句,获取全部用户信息。
进阶:
- 防御:使用预编译语句,严格校验输入。
40. 什么是 WebShell?
原理:
- WebShell是攻击者上传到服务器的恶意脚本文件,可远程控制服务器。
举例:
- PHP一句话木马:
<?php eval($_POST['cmd']); ?>
进阶:
- 防御:限制上传类型、权限控制、定期查杀。