BUGKU-Do you know HTTP

一、HTTP 核心知识点精讲

本节系统梳理 HTTP 协议的关键概念,结合实例拆解原理,为后续实战题目提供清晰的理论支撑。

1.1 HTTP 常见请求方法:功能与场景

HTTP 请求方法定义了客户端与服务器的交互意图,核心常用方法如下:

  • GET核心作用是获取服务器资源,请求参数会直接拼接在 URL 中(如https://example.com/name.php?name=benben),适用于数据查询、资源读取等场景(如浏览网页、搜索内容)。

  • 注意:GET 请求的参数可见性高、长度有限制(不同浏览器 / 服务器限制不同,通常建议不超过 2KB),且不适合传输敏感数据(如密码、银行卡号)。

  • POST:核心作用是向服务器提交数据,请求参数封装在请求体中(而非 URL),适用于数据提交、资源更新等场景(如表单提交、文件上传)。

    优势:参数隐藏性好、支持大体积数据传输,且可通过不同的Content-Type适配多种数据格式(如表单数据、JSON、文件流)。

1.2 HTTP 请求状态码:含义与应用

状态码是服务器对请求结果的 “反馈信号”,通过三位数字快速判断请求状态,核心常用状态码如下:

状态码类别含义典型场景
200 成功 请求已被服务器正常处理并返回数据 正常打开网页、API 调用成功
302 重定向 临时跳转,服务器会通过Location头指定新地址 登录后跳转到首页、临时维护页面跳转
304 缓存 客户端请求的资源未更新,直接使用本地缓存 重复访问同一网页(如刷新未修改的文章)
404 客户端错误 服务器无法找到请求的资源 访问不存在的 URL(如输入错误的网页地址)
405 客户端错误 服务器不支持当前请求使用的方法 用 GET 请求访问仅允许 POST 的接口
500 服务器错误 服务器内部代码异常或配置错误 后端程序报错(如数据库连接失败)

1.3 User-Agent(UA)头:概念、解析与伪造漏洞

1.3.1 UA 头的核心作用

UA 头是 HTTP 请求中用于标识客户端身份的关键字段,服务器通过 UA 头判断客户端的操作系统、浏览器类型及版本,进而实现 “页面适配” 或 “访问控制”:

  • 页面适配:如识别到移动端 UA(如Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1),返回移动端优化页面;

  • 访问控制:部分网站会禁止低版本浏览器(如 IE8 及以下)访问,通过 UA 头拦截不符合要求的请求。

1.3.2 UA 头实例解析

以示例 UA 头为例,各字段含义清晰可拆:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
  • Windows NT 10.0; Win64; x64:客户端操作系统为Windows 10 64 位

  • AppleWebKit/537.36:浏览器内核(Chrome、Safari 等主流浏览器均基于此内核);

  • Chrome/139.0.0.0:浏览器类型为Google Chrome,版本号为 139.0.0.0;

  • Safari/537.36:兼容标识(因 Chrome 内核源自 Safari,保留该字段以适配部分服务器判断逻辑)。

1.3.3 UA 头伪造漏洞的利用

若服务器仅依赖 UA 头进行身份验证(如 “仅允许特定浏览器访问”),未做其他校验,则存在 “UA 伪造漏洞”,利用步骤如下:

  1. 抓包:使用 Burp Suite(BP)、Fiddler 等工具捕获 HTTP 请求;

  2. 修改:在请求头中替换 UA 字段为目标值(如将 PC 端 UA 改为指定的 “LT 官方浏览器” UA);

  3. 重放:将修改后的请求发送给服务器,绕过 UA 校验逻辑。

1.4 HTTP 返回头(请求头)分析:关键字段与价值

以百度抓包实例为例,拆解 HTTP 请求中核心字段的含义与分析价值,帮助理解 “如何通过请求头挖掘信息或漏洞”:

百度请求头实例(精简版)

http

GET / HTTP/1.1
Host: www.baidu.com
Cookie: BAIDUID_BFESS=D2865BCB81FE5F26218794ED0568EC52:FG=1; BIDUPSID=D2865BCB81FE5F26218794ED0568EC52; ...
Referer: https://www.baidu.com/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ... Chrome/139.0.0.0 ...
Sec-Ch-Ua-Platform: "Windows"
Accept: application/json, text/javascript, */*; q=0.01

核心字段分析

字段名含义分析价值
Host 指定请求的目标服务器域名 / IP 确认请求的目标地址,可用于判断是否存在 “主机头攻击” 漏洞(如通过修改 Host 指向恶意服务器)
Cookie 存储客户端与服务器的会话信息(如登录状态、用户偏好) 1. 修改 Cookie 值可能触发 “越权漏洞”(如将普通用户 ID 改为管理员 ID);2. 分析 Cookie 的有效期、加密状态,可判断会话安全性(如是否存在 “未设置 HttpOnly” 导致 XSS 窃取 Cookie 的风险)
Referer 标识当前请求的 “来源页面”(即用户从哪个页面跳转过来) 1. 服务器可通过 Referer 实现 “防盗链”(如仅允许从本站跳转的请求访问图片资源);2. 伪造 Referer 可绕过部分防盗链或访问控制逻辑(如本题中需伪装来源为www.ltyyds.com
Sec-Ch-Ua-Platform 补充标识客户端操作系统(与 UA 头功能重叠,为现代浏览器新增字段) 辅助服务器判断客户端环境,若仅依赖该字段做控制,可通过修改该字段绕过限制
Accept 客户端可接收的响应数据格式(如 JSON、HTML、JavaScript) 帮助服务器返回适配的响应格式,若格式不匹配可能导致请求失败(如客户端仅接收 JSON,服务器返回 HTML)

1.5 POST 与 GET 的核心区别(实战维度)

对比维度GETPOST
参数位置 拼接在 URL 中(可见) 封装在请求体中(隐藏,需抓包查看)
数据长度 受 URL 长度限制(通常≤2KB) 无明确限制(由服务器配置决定,支持大文件传输)
安全性 低(参数暴露在 URL 中,易被日志记录、缓存捕获) 较高(参数隐藏,需抓包才能查看,适合敏感数据)
缓存特性 可被浏览器缓存(如刷新页面时直接使用缓存结果) 默认不被缓存(需手动配置缓存策略)
幂等性 幂等(多次请求结果一致,如查询同一数据) 非幂等(多次请求可能产生不同结果,如重复提交订单)

实战示例补充

  • GET 请求示例(注意请求头后需加空行,请求体可空):

    http

    GET /name.php?name=benben HTTP/1.1
    Host: 172.250.250.4

    (此处为请求头后的空行,请求体为空)

     

    注意HTTP/1.1是 HTTP 协议版本(而非请求方法),用于定义请求 / 响应的传输规则(如长连接、管道化传输等)。

  • POST 请求示例(需指定Content-TypeContent-Length,确保与请求体匹配):

    http

    POST /pages/search.isp HTTP/1.1
    Host: 127.0.0.1
    Content-Type: application/x-www-form-urlencoded # 表单数据格式
    Content-Length: 6 # 请求体“wk=SQL”共6个字符(含等号)

    wk=SQL # 请求体(参数内容)

     

    关键说明Content-Type为 MIME 类型(参考菜鸟教程 MIME 类型手册),不同类型对应不同的数据格式(如multipart/form-data用于文件上传,application/json用于 JSON 数据);Content-Length必须与请求体的字符长度一致,否则服务器可能无法正常解析请求。

二、题目

打开题目我们发现,题目提示用HS请求试试,所以此时我们可以通过抓包,进行更改包,即更改图中位置(这里最好发送到重放器)

将请求方式改为HS后,发送,提示用本地地址才可以,此时需要添加X-Forwarded-For板块(这类可以参考文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Reference/Headers/X-Forwarded-For

得到提示是从www.ltyyds.com得来的,所以此时,需要用到Referer

得到新的提示,只有LT为官方的浏览器,此时,只需要将User-Agent进行更改即可

于是乎成功得到了flag

posted @ 2025-09-24 21:22  困困小猫log  阅读(9)  评论(0)    收藏  举报  来源