当前位置: 首页 > article >正文

6.【BUUCTF】[极客大挑战 2019] Http(HTTP头伪造)

进入题目页面如下

ctrl+u查看源码

进入查看

提示不是来自https://Sycsecret.buuoj.cn

用burp suite抓包,右键发送到重放器,添加http请求头

Referer:https://Sycsecret.buuoj.cn绕过

提示use "Syclover" 

提示只允许本地访问此网页

HTTP头伪造

HTTP 头伪造是一种网络攻击技术,通过修改或伪造 HTTP 请求头中的信息来达到特定目的。

基本概念

在 HTTP 通信中,客户端(如浏览器)向服务器发送请求时会附带一系列的 HTTP 头信息,用于传递请求的相关元数据,例如请求方法、请求的资源路径、客户端的类型、支持的编码格式等。服务器在接收到请求后,会根据这些头信息来处理请求并返回相应的响应。HTTP 头伪造就是攻击者通过各种手段修改或伪造这些头信息,使服务器按照攻击者的意图进行处理。

常见伪造场景及原理

1. 伪造 User-Agent 头

原理User-Agent 头用于标识客户端的类型和版本信息,服务器可以根据这个信息来提供不同的服务或内容。攻击者可以伪造 User-Agent 头,模拟不同的客户端类型,例如将自己伪装成搜索引擎爬虫,绕过一些基于 User-Agent 的访问限制。

在 Python 中使用 requests 库伪造 User-Agent 头:

2. 伪造 Referer 头

原理Referer 头用于指示请求是从哪个页面跳转过来的,服务器可以根据这个信息来进行一些统计或访问控制。攻击者可以伪造 Referer 头,绕过基于 Referer 的访问验证,例如在一些网站中,只有从特定页面跳转过来才能访问某些资源,可以伪造 Referer 头来绕过这个限制。

import requests

headers = {
    'Referer': 'http://trusted-site.com'
}
response = requests.get('http://example.com/protected-resource', headers=headers)
3. 伪造 X-Forwarded-For 头

原理:在使用代理服务器的网络环境中,X-Forwarded-For 头用于记录客户端的真实 IP 地址。可以伪造这个头信息,隐藏自己的真实 IP 地址,或者将责任嫁祸给其他 IP 地址

X-Forwarded-For: 1.2.3.4
4. 伪造 Cookie 头

原理Cookie 头用于在客户端和服务器之间传递会话信息,服务器可以根据 Cookie 中的信息来识别用户身份。可以通过窃取或伪造 Cookie 头,冒充合法用户访问受保护的资源。


构造payload

X-Forwarded-For:127.0.0.1

 最终得到flag


X-Forwarded-For(XFF)

是一个在 HTTP 协议中常用的头字段,主要用于在使用代理服务器的网络环境里,记录客户端的真实 IP 地址

X-Forwarded-For 是一个非标准的 HTTP 头字段,它不是 HTTP 协议规范的一部分,但被广泛应用于代理服务器和负载均衡器中。当客户端通过代理服务器向服务器发送请求时,服务器通常只能获取到代理服务器的 IP 地址,而无法直接获取客户端的真实 IP 地址。X-Forwarded-For 头字段的作用就是在请求经过代理服务器时,将客户端的真实 IP 地址追加到该字段中,以便服务器能够了解请求的原始来源。

工作原理

  1. 客户端发起请求:客户端向代理服务器发送 HTTP 请求。
  2. 代理服务器处理请求:代理服务器接收到请求后,会在请求头中添加 X-Forwarded-For 字段,并将客户端的 IP 地址作为该字段的值。如果请求已经经过了多个代理服务器,每个代理服务器会将前一个代理服务器记录的 X-Forwarded-For 字段值追加到新的 X-Forwarded-For 字段中,多个 IP 地址之间用逗号和空格分隔。
  3. 服务器接收请求:服务器接收到请求后,可以通过解析 X-Forwarded-For 字段来获取客户端的真实 IP 地址。

http://www.kler.cn/a/537917.html

相关文章:

  • HAL库外设宝典:基于CubeMX的STM32开发手册(持续更新)
  • HTML 颜色值
  • 双向链表、内核链表和gdb(20250208)
  • fs 文件系统模块
  • kafka消费端之消费者协调器和组协调器
  • 基于SpringBoot养老院平台系统功能实现六
  • 《从安全到定制:软件私有化部署业务实战案例解析》
  • 5.Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)
  • 编写一个自定义 Exporter
  • SpringSecurity:授权服务器与客户端应用(入门案例)
  • 2.9 配置文件状态管理
  • devmem命令之自定义/dev/mem
  • sip协议如何与isdn协议进行通信
  • 【LeetCode Hot100 动态规划】
  • MySQL第五次作业
  • 【Linux】29.Linux 多线程(3)
  • RUST项目编译
  • Java 大视界 -- Java 大数据在智能金融监管中的应用与实践(77)
  • 基于FreeSurfer 7.1、6.0和5.3版本的脑部指标在多站点重测信度和兼容性研究
  • 黑马 Linux零基础快速入门到精通 笔记
  • stm32-wifi模块
  • ARM嵌入式学习--第十四天(SPI)
  • 自然语言处理NLP_[1]-NLP入门
  • flask实现用户名查重,重复的用户名阻止注册,以及如何优化
  • 单调栈题目
  • 如何让虚拟机联上网