基础知识-week
Web基础知识学习笔记
TCP/IP协议
TCP/IP协议是针对Internet开发的一种体系结构和协议标准,其目的在于解决异种计算机网络的通信问题
TCP/IP协议由网络层的IP协议和传输层的TCP协议组成,协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
四层(从上到下):
- 应用层:浏览器、微信、HTTP/HTTPS、DNS
- 传输层:TCP、UDP(快但不可靠)
- 网络层:IP 地址、路由、找路
- 网络接口层:网线、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 隧道,完整流程:
- 浏览器发送:
CONNECT www.baidu.com:443 HTTP/1.1 - 代理服务器和目标服务器建立 TCP 连接
- 浏览器和目标服务器开始 TLS 握手、加密传输
- 代理只转发加密数据包,正常情况下无法解密
Burp实现原理:
Burp 做了中间人攻击:
- 浏览器 → Burp(伪装成服务器,用 Burp 自己的证书)
- Burp → 真实网站(Burp 伪装成浏览器)
- 浏览器信任 Burp 证书 → Burp 解密流量 → 修改 / 查看 → 再加密发给真实服务器




