文章目录
- 第11章:网络基础与HTTPS详解
-
- [11.1 网络分层模型 --- 理解数据怎么"旅行"](#11.1 网络分层模型 — 理解数据怎么"旅行")
-
- [🧠 为什么需要网络分层?](#🧠 为什么需要网络分层?)
- [📚 TCP/IP 四层模型](#📚 TCP/IP 四层模型)
- [🎯 安全测试中最重要的网络知识](#🎯 安全测试中最重要的网络知识)
- [11.2 HTTPS 与 TLS --- 互联网的"保险箱"](#11.2 HTTPS 与 TLS — 互联网的"保险箱")
-
- [🧠 什么是HTTPS?](#🧠 什么是HTTPS?)
- [🔐 TLS握手过程 --- 加密是怎么建立的?](#🔐 TLS握手过程 — 加密是怎么建立的?)
- [🔍 安全测试人员必须知道的HTTPS知识](#🔍 安全测试人员必须知道的HTTPS知识)
- [⚠️ HTTPS不等同于"安全"](#⚠️ HTTPS不等同于"安全")
- [11.3 网络排查工具 --- 理解"为什么连不上"](#11.3 网络排查工具 — 理解"为什么连不上")
-
- [🔧 日常排查](#🔧 日常排查)
- [📝 本章小结](#📝 本章小结)
-
- [🧠 本章练习](#🧠 本章练习)
第11章:网络基础与HTTPS详解
本章目标:补全安全测试所需的网络基础知识,深入理解 TCP/IP 分层、HTTPS 加密原理,以及它们在安全测试中的意义。
11.1 网络分层模型 --- 理解数据怎么"旅行"
🧠 为什么需要网络分层?
想象你要寄一封信给远方的朋友:
你(应用层): "帮我寄这封信到北京" 物流公司(传输层): "好的,用顺丰次日达,快递单号 SF123" 快递员(网络层): "我看看路线...飞机到北京,再转同城快递" 火车/飞机(链路层): "包裹正在运输中..."每一层各司其职,上层不需要关心下层怎么实现的。
📚 TCP/IP 四层模型
安全测试中大部分时间都在和应用层【打交道,但理解底层有助于你排查问题和绕过防御。
#mermaid-svg-BCC691NF4iuWv2R9{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BCC691NF4iuWv2R9 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BCC691NF4iuWv2R9 .error-icon{fill:#552222;}#mermaid-svg-BCC691NF4iuWv2R9 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BCC691NF4iuWv2R9 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BCC691NF4iuWv2R9 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BCC691NF4iuWv2R9 .marker.cross{stroke:#333333;}#mermaid-svg-BCC691NF4iuWv2R9 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BCC691NF4iuWv2R9 p{margin:0;}#mermaid-svg-BCC691NF4iuWv2R9 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-BCC691NF4iuWv2R9 .cluster-label text{fill:#333;}#mermaid-svg-BCC691NF4iuWv2R9 .cluster-label span{color:#333;}#mermaid-svg-BCC691NF4iuWv2R9 .cluster-label span p{background-color:transparent;}#mermaid-svg-BCC691NF4iuWv2R9 .label text,#mermaid-svg-BCC691NF4iuWv2R9 span{fill:#333;color:#333;}#mermaid-svg-BCC691NF4iuWv2R9 .node rect,#mermaid-svg-BCC691NF4iuWv2R9 .node circle,#mermaid-svg-BCC691NF4iuWv2R9 .node ellipse,#mermaid-svg-BCC691NF4iuWv2R9 .node polygon,#mermaid-svg-BCC691NF4iuWv2R9 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BCC691NF4iuWv2R9 .rough-node .label text,#mermaid-svg-BCC691NF4iuWv2R9 .node .label text,#mermaid-svg-BCC691NF4iuWv2R9 .image-shape .label,#mermaid-svg-BCC691NF4iuWv2R9 .icon-shape .label{text-anchor:middle;}#mermaid-svg-BCC691NF4iuWv2R9 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BCC691NF4iuWv2R9 .rough-node .label,#mermaid-svg-BCC691NF4iuWv2R9 .node .label,#mermaid-svg-BCC691NF4iuWv2R9 .image-shape .label,#mermaid-svg-BCC691NF4iuWv2R9 .icon-shape .label{text-align:center;}#mermaid-svg-BCC691NF4iuWv2R9 .node.clickable{cursor:pointer;}#mermaid-svg-BCC691NF4iuWv2R9 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BCC691NF4iuWv2R9 .arrowheadPath{fill:#333333;}#mermaid-svg-BCC691NF4iuWv2R9 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BCC691NF4iuWv2R9 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BCC691NF4iuWv2R9 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BCC691NF4iuWv2R9 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BCC691NF4iuWv2R9 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BCC691NF4iuWv2R9 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BCC691NF4iuWv2R9 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BCC691NF4iuWv2R9 .cluster text{fill:#333;}#mermaid-svg-BCC691NF4iuWv2R9 .cluster span{color:#333;}#mermaid-svg-BCC691NF4iuWv2R9 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BCC691NF4iuWv2R9 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BCC691NF4iuWv2R9 rect.text{fill:none;stroke-width:0;}#mermaid-svg-BCC691NF4iuWv2R9 .icon-shape,#mermaid-svg-BCC691NF4iuWv2R9 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BCC691NF4iuWv2R9 .icon-shape p,#mermaid-svg-BCC691NF4iuWv2R9 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BCC691NF4iuWv2R9 .icon-shape .label rect,#mermaid-svg-BCC691NF4iuWv2R9 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BCC691NF4iuWv2R9 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BCC691NF4iuWv2R9 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BCC691NF4iuWv2R9 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} TCP/IP 四层模型
第4层: 应用层 Application
HTTP / HTTPS / FTP / SSH / DNS
第3层: 传输层 Transport
TCP / UDP
第2层: 网络层 Internet
IP / ICMP / ARP
第1层: 网络接口层 Link
Ethernet / WiFi
数据 (Data)
数据段 (Segment)
源端口:xxxx → 目标端口:80
数据包 (Packet)
源IP:1.2.3.4 → 目标IP:5.6.7.8
数据帧 (Frame)
源MAC:AA:BB → 目标MAC:CC:DD
🎯 安全测试中最重要的网络知识
1. IP地址 --- 网络上的"门牌号"
IPv4: 192.168.1.1 (32位,4组数字)
IPv6: fe80::1 (128位,更长的地址)
内网IP段(一般外部不能直接访问):
10.0.0.0 - 10.255.255.255 (大公司内网)
172.16.0.0 - 172.31.255.255 (中公司内网)
192.168.0.0 - 192.168.255.255 (家庭/小公司内网)
127.0.0.1 (本机localhost)
特殊IP:
0.0.0.0 - 所有地址
127.0.0.1 - 本机回环地址
169.254.x.x - DHCP失败时的自动分配
2. 端口 --- 计算机上的"门"
一台服务器上可以运行很多服务,每个服务占用一个端口:
┌──────────────────────────────────────┐
│ 服务器 (1.2.3.4) │
│ ┌────────┐ ┌────────┐ ┌──────────┐ │
│ │ SSH │ │ Web │ │ Database │ │
│ │ :22 🚪 │ │ :80 🚪 │ │ :3306 🚪 │ │
│ └────────┘ └────────┘ └──────────┘ │
└──────────────────────────────────────┘
常用端口:
21 FTP(文件传输)
22 SSH(安全Shell,远程登录)
23 Telnet(远程登录,明文,不安全)
25 SMTP(发邮件)
53 DNS(域名解析)
80 HTTP(网页,明文)
443 HTTPS(加密网页)
3306 MySQL(数据库)
3389 RDP(Windows远程桌面)
5432 PostgreSQL(数据库)
6379 Redis(缓存数据库)
8080 HTTP备用(常被用于Tomcat/Jenkins等)
27017 MongoDB(NoSQL数据库)
🗣️ 作者说 :端口扫描(Nmap)就是在问目标服务器:"1000个门🚪,哪些是开着的?" 如果开了不该开的门(比如数据库端口暴露在外网),那可能就是攻击者进入的入口。
3. TCP vs UDP --- 两种不同的"送信方式"
TCP(可靠,像挂号信):
✅ 确保送到,会重发
✅ 按顺序到达
❌ 速度相对慢
用于: HTTP, HTTPS, SSH, FTP, 邮件
UDP(快速,像明信片):
❌ 不保证送到
❌ 可能乱序
✅ 速度非常快
用于: DNS, 视频通话, 游戏, DHCP
安全测试关注点:
TCP的服务(如Web SSH database)→ 通常更重要,需要重点测试
UDP的服务(如DNS)→ 容易被忽略但也很重要
11.2 HTTPS 与 TLS --- 互联网的"保险箱"
🧠 什么是HTTPS?
HTTP + TLS = HTTPS
HTTP 是明信片------任何人沿途都可以看 到内容。
HTTPS 是加密信件------只有收件人才能打开看。
#mermaid-svg-xdTK2dNRdRRtN0mf{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-xdTK2dNRdRRtN0mf .error-icon{fill:#552222;}#mermaid-svg-xdTK2dNRdRRtN0mf .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-xdTK2dNRdRRtN0mf .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-xdTK2dNRdRRtN0mf .marker{fill:#333333;stroke:#333333;}#mermaid-svg-xdTK2dNRdRRtN0mf .marker.cross{stroke:#333333;}#mermaid-svg-xdTK2dNRdRRtN0mf svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-xdTK2dNRdRRtN0mf p{margin:0;}#mermaid-svg-xdTK2dNRdRRtN0mf .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf .cluster-label text{fill:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf .cluster-label span{color:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf .cluster-label span p{background-color:transparent;}#mermaid-svg-xdTK2dNRdRRtN0mf .label text,#mermaid-svg-xdTK2dNRdRRtN0mf span{fill:#333;color:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf .node rect,#mermaid-svg-xdTK2dNRdRRtN0mf .node circle,#mermaid-svg-xdTK2dNRdRRtN0mf .node ellipse,#mermaid-svg-xdTK2dNRdRRtN0mf .node polygon,#mermaid-svg-xdTK2dNRdRRtN0mf .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-xdTK2dNRdRRtN0mf .rough-node .label text,#mermaid-svg-xdTK2dNRdRRtN0mf .node .label text,#mermaid-svg-xdTK2dNRdRRtN0mf .image-shape .label,#mermaid-svg-xdTK2dNRdRRtN0mf .icon-shape .label{text-anchor:middle;}#mermaid-svg-xdTK2dNRdRRtN0mf .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-xdTK2dNRdRRtN0mf .rough-node .label,#mermaid-svg-xdTK2dNRdRRtN0mf .node .label,#mermaid-svg-xdTK2dNRdRRtN0mf .image-shape .label,#mermaid-svg-xdTK2dNRdRRtN0mf .icon-shape .label{text-align:center;}#mermaid-svg-xdTK2dNRdRRtN0mf .node.clickable{cursor:pointer;}#mermaid-svg-xdTK2dNRdRRtN0mf .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-xdTK2dNRdRRtN0mf .arrowheadPath{fill:#333333;}#mermaid-svg-xdTK2dNRdRRtN0mf .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-xdTK2dNRdRRtN0mf .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-xdTK2dNRdRRtN0mf .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xdTK2dNRdRRtN0mf .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-xdTK2dNRdRRtN0mf .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xdTK2dNRdRRtN0mf .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-xdTK2dNRdRRtN0mf .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-xdTK2dNRdRRtN0mf .cluster text{fill:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf .cluster span{color:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-xdTK2dNRdRRtN0mf .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-xdTK2dNRdRRtN0mf rect.text{fill:none;stroke-width:0;}#mermaid-svg-xdTK2dNRdRRtN0mf .icon-shape,#mermaid-svg-xdTK2dNRdRRtN0mf .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xdTK2dNRdRRtN0mf .icon-shape p,#mermaid-svg-xdTK2dNRdRRtN0mf .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-xdTK2dNRdRRtN0mf .icon-shape .label rect,#mermaid-svg-xdTK2dNRdRRtN0mf .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xdTK2dNRdRRtN0mf .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-xdTK2dNRdRRtN0mf .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-xdTK2dNRdRRtN0mf :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} HTTPS - 加密传输
你
输入密码: abc123
加密传输
乱码: x7#9k@2!
服务器解密
密码: abc123
👿 攻击者
看到的是乱码,没用!
HTTP - 明文传输
你
输入密码: abc123
明文传输
密码: abc123
服务器
👿 攻击者
看到你的密码了!
🔐 TLS握手过程 --- 加密是怎么建立的?
当你的浏览器访问 HTTPS 网站时,背后发生了一次复杂的"握手":
服务器 客户端(浏览器) 服务器 客户端(浏览器) #mermaid-svg-cmILyBYfpLAPnDl4{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cmILyBYfpLAPnDl4 .error-icon{fill:#552222;}#mermaid-svg-cmILyBYfpLAPnDl4 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cmILyBYfpLAPnDl4 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cmILyBYfpLAPnDl4 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cmILyBYfpLAPnDl4 .marker.cross{stroke:#333333;}#mermaid-svg-cmILyBYfpLAPnDl4 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cmILyBYfpLAPnDl4 p{margin:0;}#mermaid-svg-cmILyBYfpLAPnDl4 .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-cmILyBYfpLAPnDl4 text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-cmILyBYfpLAPnDl4 .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-cmILyBYfpLAPnDl4 .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-cmILyBYfpLAPnDl4 #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-cmILyBYfpLAPnDl4 .sequenceNumber{fill:white;}#mermaid-svg-cmILyBYfpLAPnDl4 #sequencenumber{fill:#333;}#mermaid-svg-cmILyBYfpLAPnDl4 #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-cmILyBYfpLAPnDl4 .messageText{fill:#333;stroke:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-cmILyBYfpLAPnDl4 .labelText,#mermaid-svg-cmILyBYfpLAPnDl4 .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .loopText,#mermaid-svg-cmILyBYfpLAPnDl4 .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-cmILyBYfpLAPnDl4 .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-cmILyBYfpLAPnDl4 .noteText,#mermaid-svg-cmILyBYfpLAPnDl4 .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-cmILyBYfpLAPnDl4 .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-cmILyBYfpLAPnDl4 .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-cmILyBYfpLAPnDl4 .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-cmILyBYfpLAPnDl4 .actorPopupMenu{position:absolute;}#mermaid-svg-cmILyBYfpLAPnDl4 .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-cmILyBYfpLAPnDl4 .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-cmILyBYfpLAPnDl4 .actor-man circle,#mermaid-svg-cmILyBYfpLAPnDl4 line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-cmILyBYfpLAPnDl4 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 从现在开始,所有数据都是加密的! 你好!我想建立安全连接 (Client Hello: 支持的加密套件列表) 好的!用这个加密套件 (Server Hello + 服务器证书) 验证服务器证书 1. 证书是否由可信CA签发? 2. 域名是否匹配? 3. 是否过期? 用你的公钥加密一个"会话密钥" (加密后的Pre-Master Secret) 用私钥解密得到会话密钥 好的!开始加密通信 (Finished - 加密握手消息确认) 开始用会话密钥加密通信 (Application Data over TLS)
简化版(用生活例子理解):
你: "我要寄个保险箱给你,你能打开吗?"
服务器: "这是我的锁🔒(公钥),只有我有钥匙🔑(私钥)能打开"
你: 把贵重物品放进保险箱,用服务器的锁锁上
你: "保险箱锁好了,寄给你!"
服务器: 用自己的钥匙打开 → 看到内容
第三者: 即使拿到保险箱,没有钥匙也打不开!
🔍 安全测试人员必须知道的HTTPS知识
1. 混合加密机制
HTTPS 用了两种加密方式:
非对称加密(公钥+私钥):
- 用于握手阶段,交换会话密钥
- 速度慢,但安全
- 比如 RSA, ECDSA
对称加密(同一密钥加解密):
- 用于握手后的数据通信
- 速度快
- 比如 AES, ChaCha20
完美搭配: 用非对称加密安全地传递密钥
再用对称密钥加密后续的海量数据
2. SSL/TLS 证书验证
当Burp Suite拦截HTTPS流量时,它在做什么?
正常情况:
浏览器 → 网站的证书 → 验证通过 → 建立加密连接
使用Burp时:
浏览器 → Burp的假证书 → 浏览器信任了Burp的CA → 建立加密连接
→ Burp解密流量 → 再用网站真证书请求网站 → 拿到响应
→ Burp加密响应 → 返回给浏览器
⚠️ 这就是为什么你要安装Burp的CA证书------
你告诉浏览器"信任Burp",Burp才能解密HTTPS!
3. 常见的TLS配置问题(安全测试检查点)
bash
# 检查目标HTTPS配置是否安全
nmap --script ssl-enum-ciphers -p 443 target.com
# 输出将会显示:
# - 支持的TLS版本(TLS 1.2/1.3? 还是过时的SSLv3?)
# - 支持的加密套件(是否支持弱加密?)
# - 是否支持前向安全性
# 安全配置基准:
✅ 支持 TLS 1.2 和 TLS 1.3
✅ 禁用 SSLv2, SSLv3, TLS 1.0, TLS 1.1
✅ 禁用弱加密套件(RC4, DES, 3DES)
✅ 使用前向保密(ECDHE/DHE)
✅ HSTS头部配置
⚠️ HTTPS不等同于"安全"
很多初学者会犯的错误:以为网站用了HTTPS就是安全的。
渲染错误: Mermaid 渲染失败: Parse error on line 8: ...--> P4[身份认证漏洞仍然有
一句话 :HTTPS只保证你的数据"在传输过程中"不被偷看或篡改。但应用的漏洞一个都不少------就像你把钱装进了防弹运钞车,但如果运钞员监守自盗(业务逻辑漏洞),运钞车再结实也没用。
11.3 网络排查工具 --- 理解"为什么连不上"
🔧 日常排查
bash
# 1. ping --- 目标"还活着"吗?
ping -c 4 target.com
# 有回复 → 网络通畅
# 没回复 → 可能目标挂了/防火墙拦截/网络不通
# 2. traceroute --- 看看数据怎么走的
traceroute target.com
# 显示每一跳的路由器
# 安全用途: 判断CDN、判断目标是否用了云服务
# 3. curl --- 模拟HTTP请求
curl -v http://target.com # 显示详细的请求和响应
curl -k https://target.com # 跳过证书验证(测试用)
curl -x http://127.0.0.1:8080 target.com # 通过代理发送
# 4. nc (netcat) --- TCP的"瑞士军刀"
nc -v target.com 80 # 测试80端口是否开放
echo "GET / HTTP/1.1\r\nHost: target.com\r\n\r\n" | nc target.com 80
# 手动发送HTTP请求(不经过浏览器)
📝 本章小结
#mermaid-svg-OpaYj38nA4dd80qM{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-OpaYj38nA4dd80qM .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-OpaYj38nA4dd80qM .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-OpaYj38nA4dd80qM .error-icon{fill:#552222;}#mermaid-svg-OpaYj38nA4dd80qM .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OpaYj38nA4dd80qM .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-OpaYj38nA4dd80qM .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OpaYj38nA4dd80qM .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OpaYj38nA4dd80qM .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-OpaYj38nA4dd80qM .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OpaYj38nA4dd80qM .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OpaYj38nA4dd80qM .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OpaYj38nA4dd80qM .marker.cross{stroke:#333333;}#mermaid-svg-OpaYj38nA4dd80qM svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OpaYj38nA4dd80qM p{margin:0;}#mermaid-svg-OpaYj38nA4dd80qM .edge{stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .section--1 rect,#mermaid-svg-OpaYj38nA4dd80qM .section--1 path,#mermaid-svg-OpaYj38nA4dd80qM .section--1 circle,#mermaid-svg-OpaYj38nA4dd80qM .section--1 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section--1 path{fill:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section--1 text{fill:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon--1{font-size:40px;color:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge--1{stroke:hsl(240, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth--1{stroke-width:17;}#mermaid-svg-OpaYj38nA4dd80qM .section--1 line{stroke:hsl(60, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-0 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-0 path,#mermaid-svg-OpaYj38nA4dd80qM .section-0 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-0 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-0 path{fill:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-OpaYj38nA4dd80qM .section-0 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-0{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-0{stroke:hsl(60, 100%, 73.5294117647%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-0{stroke-width:14;}#mermaid-svg-OpaYj38nA4dd80qM .section-0 line{stroke:hsl(240, 100%, 83.5294117647%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-1 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-1 path,#mermaid-svg-OpaYj38nA4dd80qM .section-1 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-1 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-1 path{fill:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-1 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-1{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-1{stroke:hsl(80, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-1{stroke-width:11;}#mermaid-svg-OpaYj38nA4dd80qM .section-1 line{stroke:hsl(260, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-2 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-2 path,#mermaid-svg-OpaYj38nA4dd80qM .section-2 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-2 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-2 path{fill:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-2 text{fill:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-2{font-size:40px;color:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-2{stroke:hsl(270, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-2{stroke-width:8;}#mermaid-svg-OpaYj38nA4dd80qM .section-2 line{stroke:hsl(90, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-3 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-3 path,#mermaid-svg-OpaYj38nA4dd80qM .section-3 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-3 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-3 path{fill:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-3 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-3{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-3{stroke:hsl(300, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-3{stroke-width:5;}#mermaid-svg-OpaYj38nA4dd80qM .section-3 line{stroke:hsl(120, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-4 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-4 path,#mermaid-svg-OpaYj38nA4dd80qM .section-4 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-4 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-4 path{fill:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-4 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-4{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-4{stroke:hsl(330, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-4{stroke-width:2;}#mermaid-svg-OpaYj38nA4dd80qM .section-4 line{stroke:hsl(150, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-5 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-5 path,#mermaid-svg-OpaYj38nA4dd80qM .section-5 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-5 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-5 path{fill:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-5 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-5{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-5{stroke:hsl(0, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-5{stroke-width:-1;}#mermaid-svg-OpaYj38nA4dd80qM .section-5 line{stroke:hsl(180, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-6 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-6 path,#mermaid-svg-OpaYj38nA4dd80qM .section-6 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-6 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-6 path{fill:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-6 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-6{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-6{stroke:hsl(30, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-6{stroke-width:-4;}#mermaid-svg-OpaYj38nA4dd80qM .section-6 line{stroke:hsl(210, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-7 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-7 path,#mermaid-svg-OpaYj38nA4dd80qM .section-7 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-7 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-7 path{fill:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-7 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-7{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-7{stroke:hsl(90, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-7{stroke-width:-7;}#mermaid-svg-OpaYj38nA4dd80qM .section-7 line{stroke:hsl(270, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-8 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-8 path,#mermaid-svg-OpaYj38nA4dd80qM .section-8 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-8 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-8 path{fill:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-8 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-8{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-8{stroke:hsl(150, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-8{stroke-width:-10;}#mermaid-svg-OpaYj38nA4dd80qM .section-8 line{stroke:hsl(330, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-9 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-9 path,#mermaid-svg-OpaYj38nA4dd80qM .section-9 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-9 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-9 path{fill:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-9 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-9{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-9{stroke:hsl(180, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-9{stroke-width:-13;}#mermaid-svg-OpaYj38nA4dd80qM .section-9 line{stroke:hsl(0, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-10 rect,#mermaid-svg-OpaYj38nA4dd80qM .section-10 path,#mermaid-svg-OpaYj38nA4dd80qM .section-10 circle,#mermaid-svg-OpaYj38nA4dd80qM .section-10 polygon,#mermaid-svg-OpaYj38nA4dd80qM .section-10 path{fill:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-10 text{fill:black;}#mermaid-svg-OpaYj38nA4dd80qM .node-icon-10{font-size:40px;color:black;}#mermaid-svg-OpaYj38nA4dd80qM .section-edge-10{stroke:hsl(210, 100%, 76.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .edge-depth-10{stroke-width:-16;}#mermaid-svg-OpaYj38nA4dd80qM .section-10 line{stroke:hsl(30, 100%, 86.2745098039%);stroke-width:3;}#mermaid-svg-OpaYj38nA4dd80qM .disabled,#mermaid-svg-OpaYj38nA4dd80qM .disabled circle,#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:lightgray;}#mermaid-svg-OpaYj38nA4dd80qM .disabled text{fill:#efefef;}#mermaid-svg-OpaYj38nA4dd80qM .section-root rect,#mermaid-svg-OpaYj38nA4dd80qM .section-root path,#mermaid-svg-OpaYj38nA4dd80qM .section-root circle,#mermaid-svg-OpaYj38nA4dd80qM .section-root polygon{fill:hsl(240, 100%, 46.2745098039%);}#mermaid-svg-OpaYj38nA4dd80qM .section-root text{fill:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .section-root span{color:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .section-2 span{color:#ffffff;}#mermaid-svg-OpaYj38nA4dd80qM .icon-container{height:100%;display:flex;justify-content:center;align-items:center;}#mermaid-svg-OpaYj38nA4dd80qM .edge{fill:none;}#mermaid-svg-OpaYj38nA4dd80qM .mindmap-node-label{dy:1em;alignment-baseline:middle;text-anchor:middle;dominant-baseline:middle;text-align:center;}#mermaid-svg-OpaYj38nA4dd80qM :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 网络基础
TCP/IP模型
应用层-HTTP/HTTPS
传输层-TCP/UDP
网络层-IP地址
链路层-MAC地址
端口
80-HTTP
443-HTTPS
22-SSH
3306-MySQL
HTTPS
TLS握手
证书验证
混合加密
不是完整的"安全"
排查工具
ping连通性
nc端口测试
curl请求模拟
traceroute路由
🧠 本章练习
练习1:端口扫描实操
选择一个你授权的目标,使用 Nmap 扫描:
bashnmap -sV -sC -p 22,80,443,8080 target.com
- 开了哪些端口?
- 每个端口上是什么服务?
- 有没有意料之外的端口?
练习2:HTTPS配置检查使用在线工具(如 SSL Labs)或 Nmap 检查目标站点的 HTTPS 配置:
bashnmap --script ssl-enum-ciphers -p 443 target.com
- 支持哪些TLS版本?
- 有没有不安全的加密套件?
- 有没有配置HSTS?
练习3:用curl绕过代理
bash# 不经过代理,直接请求(绕过Burp) curl -k https://target.com # 经过代理 curl -x http://127.0.0.1:8080 -k https://target.com观察两种方式的结果有什么不同?