HTTP 协议 — CTF 考点总览

本知识库中的 HTTP 协议正式讲解

在深入 CTF 题目之前,建议先阅读本知识库中 HTTP 协议的完整知识点:

HTTP 协议概述

HTTP(HyperText Transfer Protocol)是 Web 通信的基石。CTF 中大量题目直接或间接涉及 HTTP 协议的理解与利用。

sequenceDiagram
    participant C as 客户端 (curl/Browser)
    participant S as 服务器 (Apache/Nginx)
    C->>S: 1. 建立 TCP 连接 (三次握手)
    C->>S: 2. 发送 HTTP 请求 (请求行 + 头部 + 可选的请求体)
    S->>C: 3. 返回 HTTP 响应 (状态行 + 头部 + 响应体)
    Note over C,S: HTTP 是无状态协议,每个请求独立
    C->>S: 4. 后续请求携带 Cookie 维持会话

核心概念速查

概念说明
请求方法GET/POST/PUT/DELETE/OPTIONS/HEAD/PATCH/CONNECT/TRACE
状态码1xx 信息 / 2xx 成功 / 3xx 重定向 / 4xx 客户端错误 / 5xx 服务端错误
请求头Host、User-Agent、Content-Type、Cookie、Referer、X-Forwarded-For 等
响应头Set-Cookie、Location、Content-Type、Server 等
Cookie服务端通过 Set-Cookie 下发,客户端在后续请求中携带
Session服务端会话标识,通常以 Cookie 中的 SessionID 形式传递
URL 编码%XX 形式编码特殊字符

CTF 中常见的 HTTP 协议相关题目

题目类型描述常见突破点
自定义请求方法要求用非标准方法(如 CTFHUB)访问curl -X 方法、requests 自定义方法
Host 头攻击服务端根据 Host 头做不同响应修改 Host 为内部地址或特定值
X-Forwarded-For 伪造服务端根据来源 IP 做权限判断添加 X-Forwarded-For: 127.0.0.1
Referer 检查绕过服务端校验请求来源添加 Referer: 期望值
User-Agent 伪造针对特定浏览器或客户端修改 UA 为移动端/搜索引擎爬虫
HTTP 请求走私利用前端后端对 Content-Length 和 Transfer-Encoding 解析差异构造畸形请求体
缓存投毒利用缓存服务器存储恶意响应操纵请求头使缓存返回恶意内容
Cookie 篡改修改 Cookie 中的敏感字段解码/伪造 Cookie 值
HTTP 重定向利用 Location 头跳转到恶意地址关注 302 响应中的 Location 值
状态码绕过限制特定状态码的访问关注 403/404 后的隐藏信息

解题常用工具

  • Burp Suite — 拦截、修改、重放 HTTP 请求(本知识库推荐)
  • curl — 命令行发送自定义 HTTP 请求
  • Python requests — 自动化脚本发送 HTTP 请求
  • netcat — 手动构造原始 HTTP 请求
  • Postman — 图形化 API 调试工具

参考本知识库的 archstrike-web教学 模块获取上述工具的深入教程。

相关文章

此文件夹下有1条笔记。