Web基础知识学习笔记

TCP/IP协议

TCP/IP协议是针对Internet开发的一种体系结构和协议标准,其目的在于解决异种计算机网络的通信问题

TCP/IP协议由网络层的IP协议和传输层的TCP协议组成,协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

四层(从上到下):

  1. 应用层:浏览器、微信、HTTP/HTTPS、DNS
  2. 传输层:TCP、UDP(快但不可靠)
  3. 网络层:IP 地址、路由、找路
  4. 网络接口层:网线、Wi‑Fi、网卡

数据传输过程:

发送方从上到下逐层加头部:

应用层 → 传输层加 TCP 头 → 网络层加 IP 头 → 链路层加帧头 → 物理层发出

接收方从下到上逐层拆头部,最后拿到原始数据。

网络联通方法

DNS解析(浏览器将网址发给DNS服务器,解析成服务器IP),建立TCP链接(三次握手),HTTP请求,服务器响应,数据传输,断开连接(四次挥手)

TCP三次握手

TCP 是面向连接、全双工通信:双方都可以收发数据,必须先确认双方发送能力、接收能力都正常。

客户端发送 SYN=1,序列号 seq=x;服务端收到 SYN,回复SYN=1,ACK=1,ack=x+1,seq=y;客户端回复 ACK=1,ack=y+1

TCP四次挥手

TCP 全双工,两个方向可以单独断开,所以需要 4 次。

客户端发送 FIN=1,seq=u;服务端回复 ACK=1,ack=u+1;服务端发完数据,发送 FIN=1,seq=v;客户端回复 ACK=1,ack=v+1

代理

所有流量不直接访问目标,先经过代理中转

1)正向代理(用户侧代理)

用户主动配置代理,服务器不知道真实用户 IP

  • 例子:VPN、梯子、翻墙、游戏加速器、爬虫代理 IP
  • 作用:隐藏真实 IP、突破访问限制、加速、爬虫防封禁

(2)反向代理(服务器侧代理)

用户不知道后端真实服务器,由代理分发请求

  • 软件:Nginx、Apache
  • 作用:负载均衡、隐藏后端真实服务器、缓存、SSL 解密、防攻击

还可以按协议分类:

HTTP 代理:只代理普通 HTTP 明文

HTTPS 代理:支持加密流量中转

SOCKS5 代理:通用代理,支持 TCP/UDP,最通用

常见用途:

隐藏真实 IP,保护隐私;加速网络、跨地区访问;爬虫批量 IP 池;企业内网统一出口;服务器负载均衡、安全防护

证书

证明网站身份真实,私钥仅由服务器持有

相关概念:

CA 机构:数字证书颁发机构(公证处,权威可信)

公钥:公开,用来加密数据

私钥:服务器独有,用来解密

数字签名:防止证书被篡改

证书工作流程

服务器向 CA 申请证书,CA 审核后颁发SSL 证书,包含:域名、公钥、CA 签名、有效期

用户访问网站,服务器把证书发给浏览器

  • 证书是否由可信 CA 颁发
  • 证书是否过期、被吊销
  • 签名是否被篡改

校验通过 → 浏览器生成随机密钥,用服务器公钥加密发给服务器

服务器用私钥解密,拿到随机密钥

双方用随机密钥做对称加密传输网页数据

HTTP协议

~~

HackBar

浏览器扩展

功能

URL 参数快速修改:get/post 参数一键修改、注入 payload

编码工具:URL 编码、Unicode、Hex、Base64、MD5、大小写转换

内置 Payload 库:SQL 注入、XSS、命令执行、目录穿越、文件包含

HTTP 方法切换:GET/POST 一键切换

代理联动:配合 BurpSuite 抓包

批量注入、自定义 Payload

本质

浏览器JS注入+页面请求劫持

原理

打开目标网页,HackBar 加载进页面

HackBar JS 获取当前 URL、参数、Cookie

选择漏洞类型(SQLi/XSS/RCE),插件内置 JS 生成 Payload

插件自动把 Payload 拼接到 URL 或 POST 参数中

调用浏览器原生请求接口发送新请求

页面刷新

浏览器代理

HTTPS 默认端到端加密,浏览器不能直接把加密内容发给代理,因此用 CONNECT 隧道,完整流程:

  1. 浏览器发送:CONNECT www.baidu.com:443 HTTP/1.1
  2. 代理服务器和目标服务器建立 TCP 连接
  3. 浏览器和目标服务器开始 TLS 握手、加密传输
  4. 代理只转发加密数据包,正常情况下无法解密

Burp实现原理:

Burp 做了中间人攻击

  1. 浏览器 → Burp(伪装成服务器,用 Burp 自己的证书)
  2. Burp → 真实网站(Burp 伪装成浏览器)
  3. 浏览器信任 Burp 证书 → Burp 解密流量 → 修改 / 查看 → 再加密发给真实服务器

Docker