HTTP:

HTTP(Hypertext Transfer Protocol)就是超文本传输协议,它是现代互联网最 重要也是最基本的协议。

工作原理:

客户端(如浏览器)向服务器发送HTTP请求,服务器处理请求后返回响应。请求和响应均包含协议头(Headers)和可选的消息体(Body)。HTTP默认使用80端口,HTTPS(HTTP Secure)则使用443端口并通过TLS/SSL加密。

HTTP协议具体实现:

请求格式
客户端发送的请求由以下部分组成:

  1. 请求行:包含方法(GET/POST等)、URI、协议版本
    GET /index.html HTTP/1.1
  2. 头部字段:键值对形式,如Host: example.comUser-Agent: Mozilla/5.0
  3. 空行:分隔头部与主体
  4. 请求体(可选):如POST提交的表单数据

响应格式
服务器返回的响应包含:

  1. 状态行:协议版本、状态码(如200 OK
    HTTP/1.1 200 OK
  2. 头部字段:如Content-Type: text/htmlContent-Length: 1024
  3. 空行
  4. 响应体:如HTML文档或JSON数据

状态码处理

  1. 200 OK:成功响应
  2. 301 Moved Permanently:重定向
  3. 404 Not Found:资源不存在
  4. 500 Internal Server Error:服务器内部错误

头部字段关键功能

  1. Content-Type:定义数据格式(如text/htmlapplication/json
  2. Cache-Control:控制缓存行为(如no-cache
  3. Connection:管理TCP连接(如keep-alive

HTTP请求报头:

下面是我用burp suite抓的一个包:

该HTTP请求是一个典型的GET请求,目标是访问ctf.bugku.com/login.html页面。请求头中包含多个标准字段和自定义字段,主要用于浏览器标识、安全策略和会话管理。

关键请求头解析

Hostctf.bugku.com
指定目标服务器域名,是HTTP/1.1的必需字段。

Connectionclose
指示服务器在响应后关闭TCP连接,而非保持长连接。

User-AgentMozilla/5.0 (...)
标识客户端浏览器和操作系统信息,此处为Windows上的Edge浏览器(基于Chromium)。

CookieHm_lvt_97426e6b...
包含会话标识或跟踪信息,通常用于用户身份验证或行为分析。

安全相关头部

sec-ch-ua: 提供浏览器品牌和版本信息,用于反欺诈检测。
*Sec-Fetch-系列字段: 控制跨域请求的安全策略,如cross-site表示跨站请求。
Upgrade-Insecure-Requests1
提示服务器优先返回HTTPS资源,用于混合内容页面的安全升级。

一些常用的工具:

Namp

Nmap是一款网络扫描和主机检测非常有用的工具,它不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。可适用于Winodws, Linux, Mac等操作系统。

主要功能有:

  • 主机探测:探测网络上的主机。
  • 端口扫描:探测目标主机所开放的端口。
  • 版本检测:探测目标主机的网络服务,判断其服务名称及版本号。
  • 系统检测:探测目标主机的操作系统及网络设备的硬件特性。
  • 支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言。

常用参数:

  • -iL filename          从文件中读取待检测的目标  
  • --exculdefile exclude_file      排除文件中的ip,格式和-iL指定扫描文件的格式相同
  • -sL        仅仅是显示,扫描的IP数目,不会进行任何扫描
  • -sn        ping扫描,即主机发现
  • -Pn        不检测主机存活
  • -PS/PA/PU/PY[portlist]        TCP SYN Ping/TCP ACK Ping/UDP Ping发现
  • -PE/PP/PM         使用ICMP echo, timestamp and netmask 请求包发现主机
  • -PO[prococol list]      使用IP协议包探测对方主机是否开启  
  • -n/-R        不对IP进行域名反向解析/为所有的IP都进行域名的反响解析
  • -sS/-sT/-sA/-sW/-sM     TCP SYN/TCP connect()/ACK/TCP窗口扫描/TCP Maimon扫描
  • -sU        UDP扫描  

SQLmap

SQLMAP是Python编写的一款用来检测与利用SQL注入漏洞的免费开源工具,支持 检测 MySQL、Oracle、SQL Server、PostgreSQL、Access等几乎所有数据库的注入攻击。

常用语句:

  • 判断是否为注入  sqlmap.py -u http://www.360.cn/sql.php?id=1 查询当前注入点的数据库
  • sqlmap.py -u "http://www.360.cn/sql.php?id=1" --dbs 获取指定数据库的所有表
  • sqlmap.py -u "http://www.360.cn/sql.php?id=1" --tables -D USER 获取指定数据库指定表的字段信息
  • sqlmap.py -u "http://www.360.cn/sql.php?id=1" --columns -T admin -D USER 获取指定数据库指定表的数据
  • sqlmap.py -u "http://www.360.cn/sql.php?id=1" --dump -T admin -D USER

Burp Suite

  • Proxy(代理)     拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允 许你拦截,查看,修改在两个方向上的原始数据流。
  • Intruder(入侵)     一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标 识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
  • Repeater(中继器) 一个靠手动操作来触发单独的HTTP 请求,并分析应用程序响应的工具。
  • Extender(扩展) 可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
  • Options(设置) Burp Suite的一些设置

使用前要设置地址和端口

wirshark抓包工具:

Wireshark 可以实时抓取电脑网卡上的所有网络数据包,对数千种网络协议进行深度解析,清晰展示数据的传输过程与内容,用于网络故障排查、协议学习、安全审计、程序调试等场景,是网络分析与安全领域最核心的实用工具。

选择wife开始抓包后会自动捕获网络数据包如图下所展示

osi七层网络模型:

层数 层级名称 核心作用 典型协议 / 标准
7 应用层 为应用提供网络服务 HTTP、HTTPS、FTP、SMTP、POP3、DNS、Telnet、SSH
6 表示层 数据格式、加密、压缩 SSL/TLS、JPEG、ASCII、MPEG
5 会话层 建立、管理、断开会话 RPC、SQL、NFS、RTSP
4 传输层 端到端传输、端口、可靠传输 TCP、UDP
3 网络层 寻址、路由、选路 IPv4/IPv6、ICMP、ARP、OSPF、BGP、RIP
2 数据链路层 帧封装、MAC 地址、差错检测 Ethernet、PPP、HDLC、WiFi(802.11)、VLAN
1 物理层 比特流、电气 / 物理规范 双绞线、光纤、RJ45、电压、0/1 比特流

左右两侧分别为16进制数据和ascll码

过滤器:

对比项 捕获过滤器 (Capture Filter) 显示过滤器 (Display Filter)
作用时机 抓包前设置 抓包后过滤
功能 只抓符合条件的包,丢弃其他 不丢包,只隐藏不符合的
语法 libpcap 语法(简单) Wireshark 原生语法(强大)
性能 占用资源小,适合长时间抓包 占用资源大,适合事后分析
输入位置 启动抓包前的输入框 抓包界面顶部输入框

显示过滤器:

基本运算符语法:

符号 含义 示例
== 等于 ip.addr == 192.168.1.1
!= 不等于 ip.src != 192.168.1.1
> 大于 tcp.port > 1024
< 小于 frame.len < 100
>= 大于等于 tcp.window_size >= 1024
<= 小于等于 frame.len <= 1500

地址过滤语法:

过滤器 作用
ip 只显示 IPv4 包
ipv6 只显示 IPv6 包
ip.addr == 192.168.1.100 源或目标 IP 是 192.168.1.100
ip.src == 192.168.1.100 源 IP
ip.dst == 192.168.1.100 目标 IP


捕获过滤器:

过滤器语法 作用
host 192.168.1.100 抓取与该 IP 相关的所有包
src host 192.168.1.100 只抓源 IP 是该地址
dst host 192.168.1.100 只抓目的 IP 是该地址
net 192.168.1.0/24 抓取整个网段
src net 192.168.1.0/24 源网段
dst net 192.168.1.0/24 目的网段

只会捕获相应的数据包

tcp协议的三次握手和四次挥手:

        TCP 三次握手(建立连接)

次数 方向 报文标志 状态变化 说明
1 客户端 → 服务端 SYN=1 客户端:CLOSED → SYN_SENT 客户端发起连接请求
2 服务端 → 客户端 SYN=1, ACK=1 服务端:LISTEN → SYN_RCVD 服务端同意连接,并回应
3 客户端 → 服务端 ACK=1 客户端:SYN_SENT → ESTABLISHED服务端:SYN_RCVD → ESTABLISHED 客户端确认,连接建立

        TCP 四次挥手(关闭连接)

次数 方向 报文标志 状态变化 说明
1 主动方 → 被动方 FIN=1 主动方:ESTABLISHED → FIN_WAIT1 主动方:我发完数据了,请求关闭
2 被动方 → 主动方 ACK=1 被动方:ESTABLISHED → CLOSE_WAIT主动方:FIN_WAIT1 → FIN_WAIT2 被动方确认收到关闭请求
3 被动方 → 主动方 FIN=1 被动方:CLOSE_WAIT → LAST_ACK 被动方数据也发完,同意关闭
4 主动方 → 被动方 ACK=1 主动方:FIN_WAIT2 → TIME_WAIT被动方:LAST_ACK → CLOSED 主动方最后确认,双方关闭

抓包所示:

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐