HTTP详细知识点

前言

HTTP 是 CTF Web 方向的基础中的基础 ,所有 Web 漏洞的利用、绕过几乎都要基于 HTTP 协议做操作(比如改请求头、改参数、抓包重放),CTF 里考的 HTTP 知识点不偏难,但全是高频实用点 ,同时标注 CTF 里的常考场景和利用技巧

先明确一个核心:HTTP 就是客户端(浏览器 / 你用的 Burp)和服务端(网站服务器)之间的沟通语言 ,所有交互都是 "客户端发请求→服务端回响应",CTF 里的操作本质就是篡改这份 "沟通内容",让服务端做它原本不让做的事。

下面分请求、响应、核心头字段、常用技巧、CTF 高频考点五个部分讲,覆盖所有 CTF 中会用到的 HTTP 知识。

一、先搞懂:HTTP 的交互就两步 ------ 发请求、收响应

你访问一个网站,背后的过程就是:

  1. 客户端(比如浏览器)拼一个HTTP 请求包发给服务器(比如百度的服务器);
  2. 服务器解析请求包,处理完后拼一个HTTP 响应包发回客户端;
  3. 客户端解析响应包,展示成你看到的网页 / 内容。

CTF 里最常用的工具Burp Suite ,核心功能就是拦截、修改、重放 这两个包 ------ 比如把请求包里的admin=0改成admin=1,把GET改成POST,这是所有 Web 题的操作基础。

两个包的结构都很简单,不用背,能认、能改就行,下面先讲最核心的结构,多余的字段 CTF 里基本用不上。

二、HTTP 请求包:客户端对服务端说的 "话"(重点改这个)

请求包是 CTF 里修改最多的部分 ,结构分 3 块,从上到下依次是:请求行 → 请求头 → 请求体,空行分隔,格式固定。

1. 请求行:核心指令,告诉服务端 "做什么、找哪个、用哪个版本"

格式:请求方法 访问路径 HTTP协议版本例:GET /index.php?name=test HTTP/1.1这是请求包的第一行 ,CTF 里高频修改前两个部分,逐一说:

(1)请求方法:最核心的 "指令动作"(CTF 常考修改 / 绕过)

就是告诉服务端 "我要干嘛",CTF 里常用的就 6 个 ,其余几乎不考,重点记GET/POST,剩下的是 "绕开限制的神器":

  • GET :最常用,"拿东西"(比如访问网页、查数据),参数直接跟在 URL 后面?name=test&age=18),有长度限制(一般几 KB)。CTF 考点:GET 参数易被截取,部分网站只过滤 POST 不过滤 GET,可直接构造恶意参数。
  • POST :"提交东西"(比如登录、注册、上传文件),参数藏在请求体里(后面讲),无长度限制,更隐蔽。CTF 考点:登录框 / 提交框几乎都是 POST,需抓包到请求体改参数;部分网站防 GET 注入,却漏了 POST 注入。
  • PUT :"上传文件",服务端开启后,可直接上传文件到服务器(比如上传shell.php)。CTF 考点:高频绕过文件上传限制,比如网站禁止 POST 上传,却没关 PUT 方法,直接用 PUT 传恶意文件。
  • DELETE:"删除文件 / 数据",CTF 里偶考,比如构造 DELETE 请求删除服务端的限制文件。
  • OPTIONS :"探测信息",查询服务端允许哪些请求方法(比如查出来允许 PUT,就可以用 PUT 上传)。CTF 考点:拿到网站后,先送一个 OPTIONS 请求,快速摸清服务端的 "权限",找可利用的方法。
  • TRACE :"回显请求",服务端会把收到的请求原封不动返回,CTF 里偶考跨站追踪漏洞,或用来探测服务端的过滤规则。
(2)访问路径:告诉服务端 "找哪个文件 / 接口"

例:/index.php/admin/login/api/getflag,CTF 里高频爆破路径 (比如猜后台路径/admin/manage)。小技巧:如果访问/index.php返回 403(禁止),可以试试/index.php/(加斜杠),部分中间件(Nginx/Apache)会绕过权限检查。

(3)HTTP 版本:几乎不用改,CTF 里都是HTTP/1.1

1.1 是最常用的版本,支持长连接,不用每次请求都重新建立连接,其余版本(1.0/2.0/3.0)CTF 里几乎不考。

2. 请求头:客户端的 "身份信息 / 附加要求"(CTF 高频改,核心)

请求行下面就是请求头,格式是头字段名: 字段值,一行一个,比如Host: www.ctf.comCookie: user=123。本质是客户端告诉服务端 "我是谁、我要什么、我从哪来" ,服务端会根据请求头做权限校验、过滤、适配 ------CTF 里 80% 的绕过都是改请求头,比如伪装成管理员、伪装成正常浏览器、绕开 IP 封禁。

三、CTF 中 HTTP 必考 12 个请求头(按考察频率排序)

所有请求头均围绕作用 + CTF 常考场景 + 实战利用技巧讲解,全是 Web 题中高频修改、绕过的核心点,理解后直接能上手抓包改包操作。

作用 :服务端存在客户端的身份凭证,是客户端和服务端之间的 "身份通行证",比如登录后的用户 token、是否为管理员的标识、会话 ID 等,每次请求会自动携带给服务端做身份校验。

CTF 考点:Web 方向 TOP1 必考请求头,覆盖越权、登录绕过、注入、会话劫持等几乎所有基础场景。

利用技巧 :① 直接修改值做越权,比如看到admin=0admin=1is_login=0is_login=1,大概率直接进入管理员后台;② 无加密的 Cookie 可直接构造,比如网站验证user=admin,直接添加该 Cookie 键值对就能免登;③ 把注入 payload 写进 Cookie 参数,比如id=1' or 1=1#,突破服务端仅过滤 URL / 请求体的注入限制;④ 窃取有效 Cookie 值,直接替换自己的 Cookie,实现会话劫持登录。

2. X-Forwarded-For(XFF)

作用 :告知服务端客户端的真实 IP 地址,主要用于存在代理服务器的场景,服务端通过这个头获取原始访问 IP,而非代理服务器的 IP。

CTF 考点:绕开 IP 封禁 / IP 白名单限制的核心头,仅次于 Cookie 的高频考点,几乎所有涉及 IP 校验的题目都会考。

利用技巧 :① 网站封了你的公网 IP,直接将 XFF 改为任意合法 IP(如192.168.1.1),突破 IP 黑名单;② 伪造服务器本地 IP127.0.0.1,多数网站会对本地回环 IP 做免校验、免权限处理,直接访问后台 / 敏感接口;③ 部分网站按 IP 限制访问次数,不断修改 XFF 的 IP 值,绕过访问频率限制;④ 若 XFF 被过滤,可尝试拼接多个 IP(如127.0.0.1,192.168.1.2),部分服务端仅解析第一个 IP。

3. User-Agent(UA)

作用 :告知服务端客户端的设备、浏览器版本信息,比如 Chrome、Firefox、手机端微信浏览器、爬虫程序等,服务端会根据 UA 做页面适配或爬虫拦截。

CTF 考点:绕开设备 / 浏览器限制、爬虫检测、简单过滤规则,同时偶考 UA 注入。

利用技巧 :① 网站仅允许手机端访问,将 UA 改为手机端标识(如Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148),直接访问手机端专属敏感接口;② 网站拦截爬虫,将 UA 改为主流浏览器的正常标识,绕过爬虫检测;③ 部分网站仅过滤默认 UA 的请求,自定义特殊 UA(如CTF/1.0test/abc),突破服务端的简单过滤;④ 极少数网站会将 UA 值直接拼接到代码 / SQL 语句中,构造恶意 payload 写入 UA,触发代码执行 / SQL 注入。

4. Referer

作用 :告知服务端客户端从哪个页面跳转过来,是请求的 "来源页面",服务端主要用这个头做防盗链、页面访问限制(如仅允许从首页跳转到后台)。

CTF 考点:绕开防盗链、页面来源校验,Web 基础题的高频考点。

利用技巧 :① 网站禁止直接访问图片 / 文件 / 敏感接口(直接访问返回 403),将 Referer 改为网站自身的域名 / 首页路径(如https://www.ctf.com/https://www.ctf.com/index.php),绕过防盗链校验;② 后台页面仅允许从网站内指定页面跳转,构造 Referer 为该指定页面的路径,直接访问后台;③ 部分网站按 Referer 统计访问来源,修改 Referer 为恶意域名,偶可触发缓存投毒漏洞(CTF 偏进阶考点);④ 若 Referer 被要求严格匹配,可尝试省略路径仅保留域名,或在路径后加随机参数(如/index.php?123),部分服务端仅做模糊匹配。

5. Content-Type

作用 :告知服务端请求体中的数据格式,服务端会根据这个头解析请求体参数,是前后端交互的 "格式约定"。

CTF 考点:文件上传绕过的核心头,同时考参数格式解析绕过,Web 中档题的必考项。

利用技巧 :① 上传 php/jsp 等恶意文件被拦截,将 Content-Type 从脚本文件格式(如application/x-httpd-php)改为图片 / 文本格式(如image/jpegimage/pngtext/plain),突破服务端的前端 / 初级文件类型检测;② 服务端仅接受 JSON 格式参数,将 Content-Type 改为application/json,并把请求体改为 JSON 格式(如{"user":"admin","pass":"123456"}),可绕过服务端对表单格式的参数过滤;③ 表单提交时默认 Content-Type 为application/x-www-form-urlencoded,改为multipart/form-data,部分服务端会放松参数过滤规则。

6. Origin

作用 :告知服务端跨域请求的发起域名,仅在跨域请求时携带,同源请求时不携带,服务端通过这个头做跨域资源共享(CORS)的权限校验。

CTF 考点:CORS 跨域漏洞的必考头,Web 中档题高频考点,常结合数据窃取出题。

利用技巧 :① 构造恶意域名写入 Origin(如https://attacker.com),若服务端未过滤 Origin、直接返回Access-Control-Allow-Origin: *或匹配的恶意域名,即可触发 CORS 漏洞,窃取网站的敏感数据(如 flag、用户信息);② 若服务端对 Origin 做模糊匹配,可构造子域名 / 相似域名(如服务端允许ctf.com,构造test.ctf.com),绕过 Origin 校验;③ 若 Origin 被过滤,尝试删除 Origin 头,或构造空 Origin(Origin: null),部分服务端会对空 Origin 做放行处理。

7. X-Real-IP

作用 :和 X-Forwarded-For 功能完全一致,都是告知服务端客户端的真实 IP,区别是部分服务端(如 Nginx+PHP)仅识别 X-Real-IP,不识别 XFF。

CTF 考点:作为 XFF 的 "备用方案",绕开 IP 封禁 / 白名单,在 XFF 修改无效时必试。

利用技巧 :① 改 XFF 后仍被拦截,直接将 X-Real-IP 改为127.0.0.1,利用本地 IP 免校验规则;② 部分网站同时校验 XFF 和 X-Real-IP,需将两个头改为相同的 IP 值(如均为192.168.1.1),避免校验失败;③ 同 XFF 的利用技巧,可修改为任意合法 IP,突破 IP 黑名单和访问频率限制。

8. Host

作用 :告知服务端要访问的域名 / 主机地址,主要用于服务端的虚拟主机配置(一台服务器绑定多个域名),服务端根据 Host 头返回对应域名的内容。

CTF 考点:绕开域名访问限制、探测隐藏虚拟主机、缓存投毒,Web 偏进阶考点。

利用技巧 :① 网站仅允许指定域名访问(如www.ctf.com),改 Host 为该指定域名,突破域名黑名单;② 构造未知域名写入 Host(如test.ctf.comadmin.ctf.com),探测服务端隐藏的虚拟主机 / 后台管理系统;③ 构造恶意域名 + 特殊参数写入 Host,触发服务端缓存投毒,让其他访问者加载恶意内容(CTF 进阶考点);④ 部分网站对 Host 做严格匹配,可尝试在域名后加端口(如www.ctf.com:8080),部分服务端会忽略端口仅校验域名。

9. Accept

作用 :告知服务端客户端能接受的响应数据格式,比如网页(text/html)、JSON(application/json)、图片(image/*)等,服务端会根据 Accept 返回对应格式的内容。

CTF 考点:绕开数据格式限制,获取未过滤的原始数据,偶考在基础题中。

利用技巧 :① 网站默认返回 HTML 格式的内容(敏感数据被过滤 / 隐藏),将 Accept 改为application/jsonapplication/xml,服务端可能返回未做过滤的 JSON/XML 原始数据,直接获取 flag / 敏感信息;② 构造特殊的 Accept 值(如*/*,表示接受所有格式),部分服务端会返回多格式的混合数据,可能包含隐藏信息;③ 若服务端按 Accept 限制文件下载,改为对应文件格式的 Accept 值(如下载 pdf 改为application/pdf),绕过下载格式限制。

10. Content-Length

作用 :告知服务端请求体的字节长度,服务端根据这个数值准确读取请求体中的数据,避免解析失败,是请求体的 "长度标识"。

CTF 考点:手工构造请求、绕过简单的请求体解析校验,偏基础操作考点。

利用技巧 :① 手工抓包修改请求体内容后,若 Burp 未自动更新 Content-Length,需手动修改为请求体的实际字节数,否则服务端会因解析失败返回错误;② 部分服务端仅校验 Content-Length 的数值格式,不校验是否和实际请求体一致,可构造超大 / 超小的数值(如Content-Length: 999999),干扰服务端的请求体解析,偶可突破简单过滤;③ 无请求体时(如 GET 请求),可省略该头,或设为0,避免服务端解析异常。

11. Cache-Control

作用 :告知服务端客户端的缓存规则,比如是否缓存页面、缓存有效期、是否强制刷新等,服务端会根据这个头做页面缓存适配。

CTF 考点:绕开页面缓存、获取最新的页面内容,低频考点,多在基础题中结合其他漏洞考察。

利用技巧 :① 访问敏感接口时,页面返回缓存的旧内容(无 flag / 敏感信息),设置Cache-Control: no-cacheCache-Control: no-store,强制服务端返回最新的页面内容,避免缓存干扰;② 部分网站通过缓存保存临时验证信息,设置Cache-Control: max-age=0,强制刷新页面,重置验证信息,偶可绕过简单的访问限制。

12. Connection

作用 :告知服务端是否保持 TCP 长连接 ,常用值为keep-alive(保持长连接,后续请求无需重新建立 TCP 连接)和close(关闭连接,每次请求重新建立 TCP 连接)。

CTF 考点:干扰服务端的连接处理,极低频考点,多在偏进阶的请求解析漏洞中考察。

利用技巧 :① 部分服务端对长连接做了访问次数限制,将Connection: keep-alive改为Connection: close,每次请求重新建立连接,绕过长连接的访问频率限制;② 手工构造多个连续请求时,设置Connection: keep-alive,保持连接不中断,避免多次建立连接导致的请求失败;③ 部分服务端对 Connection 头做了简单过滤,可尝试修改为小写connection: keep-alive,突破过滤规则。

四、HTTP 请求体:藏参数的 "核心区域"(GET/POST 的核心区别)

请求体是POST/PUT/DELETE 请求专属 的参数区域(GET 请求无请求体,参数在 URL),位于请求头最后一行,用空行分隔 ,服务端靠Content-Type头解析格式,CTF 里常考修改请求体格式 / 参数绕过过滤,核心掌握 3 种常用格式:

1. 表单格式(application/x-www-form-urlencoded)

最常用的格式,登录 / 注册 / 普通提交都是这个格式,参数格式:user=admin&pass=123&code=456,键值对用&分隔,等号连接。CTF 利用技巧

  • 抓包后直接修改参数值(如pass=123pass' or 1=1#),触发 SQL 注入;
  • 若参数被过滤,可在参数后加随机空值 (如user=admin&a=&pass=123),干扰服务端过滤规则;
  • 特殊字符用URL 编码 绕过(如空格改%20、单引号改%27),突破前端 / 初级过滤。

2. 表单上传格式(multipart/form-data)

文件上传专属格式 ,会用分隔符 (如----WebKitFormBoundary7MA4YWxkTrZu0gW)分隔参数和文件内容,包含文件名称、文件类型、文件二进制数据。CTF 利用技巧

  • 上传恶意文件时,修改分隔符后的filename(如1.jpg1.php)、Content-Type(如image/jpegapplication/x-httpd-php);
  • 给文件名加特殊后缀 / 符号 (如1.php.1.php%001.php/),绕过服务端的文件后缀检测;
  • 把恶意代码藏在图片二进制数据中,保留图片格式,触发文件包含漏洞执行代码。

3. JSON 格式(application/json)

前后端分离项目常用,参数是标准 JSON 字符串,格式:{"user":"admin","pass":"123","is_admin":false}CTF 利用技巧

  • 把布尔值falsetrue(如is_admin:true),直接绕过管理员权限校验;
  • 注入 payload 用转义字符 处理(如单引号改\'、双引号改\"),避免 JSON 解析报错;
  • 若服务端仅过滤表单格式,将请求头Content-Type改为application/json,请求体改 JSON 格式,绕过参数过滤(高频考点)。

补充:无请求体的情况

GET/OPTIONS/TRACE 请求无请求体,所有参数都在 URL 或请求头中,若强行加请求体,服务端会直接忽略,CTF 里别做无用功。

五、HTTP 响应包:服务端的 "回复内容"(找 flag / 探漏洞的关键)

客户端发请求后,服务端返回的内容就是响应包,结构分响应行、响应头、响应体 ,CTF 里80% 的 flag 藏在响应体 ,响应头则是探漏洞、绕限制的关键,核心考点全在这:

1. 响应行:服务端的 "状态提示"

格式:HTTP版本 状态码 状态描述,例:HTTP/1.1 200 OKHTTP/1.1 403 Forbidden核心状态码(CTF 必考,记含义 + 利用技巧)

  • 200 OK:请求成功,响应体是正常内容(找 flag 的主要场景);
  • 301/302 重定向:服务端让客户端跳转到其他页面,必看响应头 Location(里面是跳转地址,常藏后台路径 /flag 地址);
  • 403 Forbidden:禁止访问,需改请求头(Cookie/XFF/Referer)或 URL(加斜杠 / 改后缀)绕过;
  • 404 Not Found:页面不存在,要么路径错了(需爆破路径),要么服务端做了隐藏;
  • 500 Internal Server Error:服务器内部错误,高频触发报错注入(构造 payload 让服务端报错,返回数据库 / 代码信息);
  • 405 Method Not Allowed:请求方法不被允许,用 OPTIONS 请求探测允许的方法(PUT/DELETE),绕开限制;
  • 401 Unauthorized:未授权,需加 Cookie/token(常从其他页面的响应头中找);
  • 304 Not Modified:返回缓存内容,改请求头Cache-Control: no-cache强制刷新,获取最新内容。

2. 响应头:服务端的 "隐藏信息"(CTF 高频挖漏洞点)

响应头是服务端告诉客户端的附加信息 ,格式和请求头一致(头字段名: 字段值),CTF 里主要考信息泄露、漏洞探测、绕过限制,核心记 10 个必考响应头:

(1)Location

作用 :301/302 重定向时的跳转地址 ,CTF 里必看 ,常藏后台路径(如/admin)、flag 地址(如/flag.txt)。技巧:抓包看到 302 状态码,直接复制 Location 的地址访问,不用等浏览器自动跳转。

作用 :服务端给客户端设置 Cookie (如登录成功后返回user=admin; path=/),CTF 里是获取有效 Cookie 的核心。技巧 :登录失败后也看 Set-Cookie,可能返回临时 token,改值后可绕过登录;多个 Cookie 用;分隔,直接复制到请求头 Cookie 中使用。

(3)X-Powered-By

作用 :服务端暴露后端语言 / 版本 (如PHP/7.2.34Python/3.8.0Express/4.17.1),CTF 信息泄露 TOP1技巧:看到这个头,直接确定后端技术栈(如 PHP 则考 SQL 注入 / 文件包含,Python 则考 Flask 模板注入),针对性构造 payload。

(4)Access-Control-Allow-Origin(CORS 核心)

作用 :服务端设置允许跨域的域名 ,CTF 里CORS 漏洞必考技巧 :若值为*(允许所有域名)或恶意域名(如你构造的attacker.com),直接触发 CORS 漏洞,窃取敏感数据;若值为具体域名,构造相似域名绕过。

(5)Server

作用 :暴露服务器 / 中间件版本 (如Nginx/1.19.0Apache/2.4.41Tomcat/8.5.60),常含中间件漏洞技巧:看到具体版本,直接查对应漏洞(如 Nginx 1.19.0 的解析漏洞、Apache 2.4.41 的文件遍历),直接利用。

(6)Content-Disposition

作用 :文件下载时的文件名 / 格式 (如attachment; filename=flag.txt),CTF 里藏 flag 文件名 的高频点。技巧:看到这个头,直接下载文件,大概率是 flag;若文件名被隐藏,改请求头 Accept 触发下载。

(7)Content-Length

作用 :响应体的字节长度 ,CTF 里用于判断是否有隐藏内容技巧:页面显示空白,但 Content-Length 值大于 0,说明响应体有隐藏内容(如 flag),直接在 Burp 中看响应体原始内容。

(8)X-Frame-Options

作用 :防止点击劫持 ,值为DENY(禁止嵌入)、SAMEORIGIN(仅允许同域名嵌入)。技巧:若值为空或不存在,说明网站存在点击劫持漏洞,CTF 里偶考利用该漏洞获取 flag。

(9)Refresh

作用 :设置页面自动刷新 / 跳转 (如3;url=/login.php,3 秒后跳转到登录页)。技巧 :抓包看到这个头,直接修改 url 值(如/login.php/admin.php),绕过自动跳转,访问敏感页面。

(10)WWW-Authenticate

作用 :401 未授权时,要求客户端输入账号密码 ,CTF 里偶考弱口令爆破技巧 :看到这个头,用 Burp 爆破账号密码(常用弱口令admin/adminroot/root),突破授权限制。

3. 响应体:藏 flag 的 "主战场"(CTF 核心找答案区域)

响应体是服务端返回的实际内容(网页源码、JSON 数据、文件内容、纯文本),CTF 里 90% 的 flag 直接藏在这里,核心技巧:

  • 页面显示的内容有限,必看 Burp 中的 "原始响应体" (前端可能隐藏 flag,如用display:none);
  • 若响应体是 JSON 数据,重点看未过滤的字段 (如data: "flag{123}"msg: "error: flag is in /var/www/flag.txt");
  • 若响应体是空白,检查Content-Length(大于 0 则有隐藏内容),或改请求头(Accept/UA)重新请求;
  • 下载文件时,响应体就是文件二进制数据,直接保存为文件(如 flag.txt、flag.zip),打开即得 flag。

六、HTTP 协议核心特性(CTF 绕过滤的 "隐形神器")

HTTP 是无状态、明文、基于请求 - 响应的协议,这些特性本身不是漏洞,但 CTF 里服务端的过滤规则常忽略这些特性,成为绕过的关键,核心掌握 4 个必考特性:

1. 无状态协议

含义 :服务端不会记住客户端的上一次请求,每次请求都是独立的(靠 Cookie/Session 维持状态)。CTF 利用技巧

  • 若服务端按请求次数限制,每次请求修改 Cookie/XFF/UA,让服务端认为是不同客户端,绕过次数限制;
  • 登录态失效后,重新抓包发送带有效 Cookie 的请求,无需重新登录。

2. 明文传输

含义 :HTTP 请求 / 响应的所有内容都是明文 (未加密),可被抓包、修改、重放。CTF 利用技巧

  • 用 Burp 直接拦截、修改、重放请求(所有 Web 题的操作基础),无需解密;
  • 若看到 HTTPS(加密),先配置 Burp 证书,抓包后转为明文处理(CTF 里 HTTPS 仅考证书配置,无加密漏洞)。

3. 头字段不区分大小写

含义 :HTTP 请求头 / 响应头的字段名不区分大小写 ,服务端会自动解析(如CookiecookieXFFx-forwarded-for效果一致)。CTF 利用技巧

  • 若服务端过滤特定头字段(如过滤XFF),将字段名改为大小写混合 (如X-Forwarded-Forx-fOrWaRdEd-fOr),突破过滤。

4. 头字段可重复 / 拼接

含义 :同一个头字段可在请求中重复出现 ,或用逗号拼接 多个值,服务端一般会解析所有值。CTF 利用技巧

  • 若服务端过滤 XFF 的单个 IP(如过滤127.0.0.1),重复添加 XFF(X-Forwarded-For: 192.168.1.1X-Forwarded-For: 127.0.0.1),或拼接 IP(X-Forwarded-For: 192.168.1.1,127.0.0.1),部分服务端会解析最后一个 IP;
  • 若过滤 Cookie 的admin=1,重复添加 Cookie(Cookie: user=testCookie: admin=1),绕过过滤。

七、HTTP 高频协议漏洞(CTF 中档题必考,直接利用拿 flag)

这些漏洞是基于 HTTP 协议本身的设计缺陷,常和其他漏洞结合,核心掌握 3 个 CTF 高频漏洞,原理简单、利用直接:

1. CORS 跨域漏洞(跨域资源共享)

核心原理 :服务端的Access-Control-Allow-Origin响应头配置不当(如允许所有域名、允许任意子域名),导致恶意域名可窃取网站敏感数据(flag / 用户信息)。CTF 利用技巧

  • 抓包发送跨域请求(如从attacker.com请求目标网站的/api/getflag);
  • 若响应头Access-Control-Allow-Origin: *Access-Control-Allow-Origin: attacker.com,直接在响应体中获取 flag;
  • 若服务端校验 Origin,构造相似域名 (如目标域名为ctf.com,构造ctf.com.attacker.com),绕过校验。

2. 点击劫持漏洞

核心原理 :服务端未设置X-Frame-Options响应头,导致恶意网站可将目标网站嵌入 iframe 框架 ,诱导用户点击,窃取操作 /flag。CTF 利用技巧

  • 构造一个包含 iframe 的 HTML 页面,嵌入目标网站的敏感页面(如/admin/flag.php);
  • 诱导用户点击(CTF 里无需实际诱导,直接构造页面即可证明漏洞,获取 flag)。

3. 重定向漏洞(开放重定向)

核心原理 :服务端的重定向参数(如url=/login.php)未做过滤,攻击者可构造恶意重定向地址(如url=https://attacker.com),或跳转到敏感页面(如url=/flag.txt)。CTF 利用技巧

  • 找到重定向参数(如/redirect.php?url=/login.php),将 url 值改为敏感路径 (如/flag.txt/admin.php),直接跳转到目标页面拿 flag;
  • 若参数被过滤,用URL 编码 / 相对路径 (如../flag.txt)绕过。

八、CTF HTTP 实操改包技巧(Burp 专属,所有 Web 题通用)

所有 HTTP 知识点最终都要落地到Burp 抓包、修改、重放,这部分是 CTF 的 "操作基础",掌握后能应对所有 HTTP 相关的修改场景,核心 8 个技巧:

  1. 抓包拦截:打开 Burp 的 "Intercept is on",浏览器访问目标网站,Burp 会自动拦截所有 HTTP 请求;
  2. 修改请求:在 Burp 的 "Request" 页面,直接修改请求行、请求头、请求体,改完点击 "Forward" 发送;
  3. 重放请求:选中拦截的请求,右键 "Send to Repeater",在 Repeater 中可反复修改、发送,适合测试 payload;
  4. 爆破参数 :选中请求中的参数值(如id=1),右键 "Send to Intruder",在 Intruder 中设置爆破字典,批量测试(适合爆破账号密码、路径、ID);
  5. 查看原始内容:在 Burp 的 "Response" 页面,切换到 "Raw",查看服务端返回的原始响应体,避免前端隐藏 flag;
  6. URL 编码 / 解码:选中需要编码的内容,右键 "URL Encode"(编码)/"URL Decode"(解码),适合绕过特殊字符过滤;
  7. 保存响应体:在 Repeater 的 "Response" 页面,右键 "Save response",将响应体保存为文件(适合下载 flag 文件);
  8. 构造请求:在 Burp 的 "Repeater" 页面,直接手动构造请求(如 PUT 请求上传文件、OPTIONS 请求探测方法),无需浏览器触发。

九、CTF HTTP 高频坑点(避坑必备,少走 90% 弯路)

  1. 改完请求体后,一定要检查 Content-Type 头,格式不匹配会导致服务端解析失败;
  2. 302 重定向后,浏览器会自动删除部分请求头(如 Referer),需在 Burp 中手动转发,保留请求头;
  3. 部分服务端会过滤请求头的空格 / 换行,修改时保持格式规范(头字段名和值之间仅一个空格);
  4. JSON 格式的请求体,引号必须是双引号,单引号会导致解析报错;
  5. 看到 HTTPS 不要慌,配置 Burp 证书后和 HTTP 操作完全一致,CTF 里 HTTPS 无加密相关考点。

以上就是 CTF Web 方向中所有 HTTP 核心知识点,从基础的请求 / 响应结构,到进阶的漏洞利用、实操技巧,全覆盖且贴合 CTF 考情,掌握后能应对所有和 HTTP 相关的 Web 题,也是后续学习 SQL 注入、文件上传等漏洞的基础。

相关推荐
Godspeed Zhao2 小时前
现代智能汽车中的无线技术87——FMDAB(6)
网络·汽车·php
亓才孓2 小时前
[Spring错误]HTTP常见错误及解决方法
网络·网络协议·http
huangql5202 小时前
Web 数据交互选型指南:为什么不都用 WebSocket?——电话版
网络·websocket·网络协议
AC赳赳老秦2 小时前
多云协同趋势下的AI新范式:DeepSeek适配多云架构实现工作负载跨云迁移的深度解析
网络·人工智能·安全·web安全·架构·prometheus·deepseek
xuxg20052 小时前
4G AT命令解析框架LwAtParser V2.0设计及实现(基于uCOS II)--中级篇 第五章 AT命令解析框架设计
网络·4g tcp·4g mqtt·驱动层与协议层分离·协议模块化
lpfasd1232 小时前
FRP 内网穿透全解析:让内网服务安全暴露到公网
网络·安全
huohaiyu2 小时前
数据链路层与网络协议全解析
服务器·网络·数据链路层
乾元3 小时前
合规自动化:AI 在资产发现与数据合规治理中的“上帝之眼”
运维·网络·人工智能·安全·web安全·机器学习·安全架构
2501_915921433 小时前
iOS 抓包怎么绕过 SSL Pinning 证书限制,抓取app上的包
android·网络协议·ios·小程序·uni-app·iphone·ssl