伪造referer [极客大挑战 2019]Http1

打开题目

没有发现什么,我们查看源代码

在这里我们发现了提示

访问一下页面得到

提示说不能来自于https://Sycsecret.buuoj.cn,我们尝试访问一下这个url

发现访问不了

我们bp抓包一下

伪造个referer头

referer:https://Sycsecret.buuoj.cn

发包过去看看

发现页面又说要用Syclover

所以又要伪造浏览器

 发包过去,发现页面又要本地ip才能访问

我们伪造本地ip地址

发包过去

得到flag

同样的道理

例题见:墨者学院 浏览器信息伪造

打开题目

点开才发现网页只有在IPhone手机的2g网络下才能查看

抓包,修改ua头

Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13F69 MicroMessenger/6.6.1 NetType/2G

或者这个

Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.17(0x17001126) NetType/2G Language/zh_CN

{上面这个是我百度搜的,大佬说ua头信息百度就能搜到,搜关键词iPhone手机,微信就能有一大堆,不是固定卡死的,其实浏览器也只是看看关键词,我们只需要改一下关键词上传即可}

ua头大全见:手机微信ua大全,最新不重复的UA库

审计一下

  • Mozilla/5.0: 这是用户代理字符串的一部分,表示浏览器使用了Mozilla浏览器的通用标识。在很多情况下,这只是一个历史遗留的标识,而实际上并不表示使用Mozilla浏览器。

  • (iPhone; CPU iPhone OS 9_3_2 like Mac OS X): 表示设备是一个iPhone,运行的是iOS 9.3.2操作系统,类似于Mac OS X。

  • AppleWebKit/601.1.46 (KHTML, like Gecko): 表示浏览器内核是基于WebKit的,版本号是601.1.46,同时支持KHTML和Gecko标准。

  • Mobile/13F69: 表示该设备是移动设备,后续的数字/字符可能表示设备的具体型号或其他信息。

  • MicroMessenger/6.6.1: 表示浏览器使用的是微信内置的浏览器,版本号为6.6.1。

  • NetType/2G: 表示网络类型为2G

相关知识点见:谈谈 UserAgent 字符串的规律和伪造方法 - 知乎

发包过去得到key

mozhe5fe1238926257467d9434663069

知识点:

  • HTTP协议头部referer

  Referer是HTTP请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含Referer 。比如在www.xxxx.com 里有一个www.bai.com 链接,那么点击这个www.bai.com ,它的header 信息里就有:Referer=https://www.xxxx.com信息

  • referer作用
  1. 防盗链

  那么可以利用这个来防止盗链了,比如我只允许我自己的网站访问我自己的图片服务器,那我的域名是www.xxx.com,那么图片服务器每次取到Referer来判断一下是不是我自己的域名www.xxxx.com,如果是就继续访问,不是就拦截。

      2.防止恶意请求

比如只允许某台服务器访问我自己的图片服务器资源,则可校验Http请求包中的Referer。判断是不是特定服务器的域名,若不是,则拒接响应。

比如我的网站上,静态请求是*.html结尾的,动态请求是*.shtml,那么由此可以这么用,所有的*.shtml请求,必须 Referer  为我自己的网站。

     3. 空referer

空 Referer  的定义为, Referer  头部的内容为空,或者,一个 HTTP  请求中根本不包含 Referer  头部。

 那么什么时候 HTTP  请求会不包含 Referer  字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。

比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含 Referer  字段的,因为这是一个“凭空产生”的 HTTP  请求,并不是从一个地方链接过去的

Referer头部的内容为空的情况:

  • 浏览器内直接输入URL
  • Windows桌面的超链接图标
  • 浏览器内书签
  • 第三方软件内容中的链接跳入

     4.在防盗链设置中,允许空Referer和不允许空Referer的区别

  1. 允许空Referer:

    • 当你允许空Referer时,服务器将接受来自任何来源的请求,无论请求中是否包含Referer头信息。
    • 这意味着如果请求中包含一个有效的Referer头信息,服务器将根据该信息来判断请求是否合法,但如果Referer头信息为空或不存在,服务器仍然会处理请求,不会拒绝它。
    • 这可以用于一些情况,例如当你希望公开共享某些资源,但仍然希望检测和处理来自合法来源的请求。
  2. 不允许空Referer:

    • 当你不允许空Referer时,服务器将要求每个请求都包含一个有效的Referer头信息。如果请求中的Referer头信息为空或不存在,服务器将拒绝该请求。
    • 这是一种更严格的防盗链策略,用于确保只有从指定来源发送的请求才能被处理,而来自其他来源的请求会被拒绝。
    • 这可以提供更高级别的安全性,但可能会导致一些合法请求被拒绝,例如某些浏览器或代理可能不发送Referer头信息。

  • refer伪造

   伪造为ip地址:

         使用brup拦截请求包,在Proxy里面发送到Repeater,将Http头中的X-Forwarded-For改为想改的ip

   伪造为url地址:

        通过brup拦截,再使用Reapter修改Referer为想指定的URL

  • 浏览器伪造

通过User-Agent字段,网站服务器会知道访问者是通过什么工具来请求的

 User-Agent一般格式为:Mozilla/5.0 (操作系统) 引擎版本 浏览器版本号

User Agent用户代理,是Http协议中的一部分,属于头域的组成部分,简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核等信息的标识

所以我们可以通过修改ua头进行浏览器的伪造

  • ip伪造

HTTP 连接基于 TCP 连接,HTTP 协议中没有 IP 的概念,只能通过X-Forwarded-For来实现。

X-Forwarded-For(XFF)请求标头是一个事实上的用于标识通过代理服务器连接到 web 服务器的客户端的原始 IP 地址的标头。

所以我们可以通过bp抓包修改并伪装X-Forwarded-For来实现任意ip

知识点选自:https://www.cnblogs.com/huhu1020387597/p/11479468.html

2.http请求头中Referer的作用与伪造_referer伪造-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/132525.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

经典的测试开发面试题

1、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库进行备案。 然后,要获取判断的依据和标准: 根绝需求说明书,产品说明、设计文档等&…

邻接表储存图实现广度优先遍历(C++)

目录 基本要求: 邻接表的结构体: 图的邻接表创建: 图的广度优先遍历(BFS): 邻接表的打印输出: 完整代码: 测试数据: 结果运行: 通过给出的图的顶点和…

Jmeter之Bean shell使用详解

一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精…

Android---内存泄漏的优化

内存泄漏是一个隐形炸弹,其本身并不会造成程序异常,但是随着量的增长会导致其他各种并发症:OOM,UI 卡顿等。 为什么要将 Activity 单独做预防? 因为 Activity 承担了与用户交互的职责,因此内部需要持有大…

JAVA基础语法编程详解

1 类型转换 描述: 设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型输入描述: 随机double类型变量输出描述: 转化后的int类型变量示例 输入:123.45 输出: 123 题解思路&…

吴恩达《机器学习》8-1->8-2:非线性假设、神经元和大脑

一、非线性假设 在之前学到的线性回归和逻辑回归中,存在一个缺点,即当特征数量很多时,计算的负荷会变得非常大。考虑一个例子,假设我们使用 𝑥₁, 𝑥₂ 的多项式进行预测,这时我们可以很好地应…

【自定义类型:结构体】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1. 结构体类型的声明 1.1 结构体的概念 1.2 结构的声明 ​编辑 1.3 特殊的声明 1.4 结构的自引用 2. 结构体变量的创建和初始化 3. 结构成员访问操作符 4. 结构体内…

数据库01-慢查询优化

目录 MySQL优化 慢查询 如何定位慢查询? 如何分析慢查询? MySQL优化 MySQL 优化是数据库管理和应用性能调优的一个重要方面。以下是一些常规性的 MySQL 优化经验和适用场景: 索引优化: 确保表的字段上有适当的索引&#xff0…

如何选择一个可靠的爬虫代理服务商?技术人员都需要知道

我身边从事大数据相关行业的朋友最近告诉我,自己新招的小伙伴工作效率很低,很多最基础的工具都不会选择,经常因为代理IP不可靠导致工作出错。 听完这些我才意识到,在这个大数据时代,还是有很多新手在进行网络爬取任务…

threejs(11)-精通着色器编程(难点)2

一、shader着色器编写高级图案 小日本国旗 precision lowp float; varying vec2 vUv; float strength step(0.5,distance(vUv,vec2(0.5))0.25) ; gl_FragColor vec4(strength,strength,strength,strength);绘制圆 precision lowp float; varying vec2 vUv; float strength 1…

Java中Enum枚举类型在项目中应用

1、什么是枚举类型? 1、枚举的本质就是穷举法,将可能会出现的情况,都列举出来,然后在列举的情况中调用。 2、枚举与class类似,也可以定义属性,构造方法,有getter和setter方法。 3、枚举类型对…

改进YOLOv8:结合ICCV2023|动态蛇形卷积,构建不规则目标识别网络

🔥🔥🔥 提升多尺度、不规则目标检测,创新提升 🔥🔥🔥 🔥🔥🔥 捕捉图像特征和处理复杂图像特征 🔥🔥🔥 👉👉👉: 本专栏包含大量的新设计的创新想法,包含详细的代码和说明,具备有效的创新组合,可以有效应用到改进创新当中 👉👉👉: �…

基于FPGA的PS端的Si5340的控制

1、功能 Si5340/41-D可以输出任意频率,当然有范围,100Hz1GHz。外部输入为24M或者4854M的XTAL,VCO在13500~14256Mhz之间,控制接口采用IIC或者SPI。 芯片架构图 2、IIC控制方式 3、直接上控制代码 使用米联客ZU3EG,将…

spider-node-初识

spider-node spider想解决的问题1:业务架构层面2:代码层面3:业务,产品,研发,测试之间4: 系统迭代成本高 spider-node 配置讲解spider-node启动 spider想解决的问题 1:业务架构层面 帮助研发团队…

C++学习笔记(一):安装VisualStudio和Vcpkg

VisualStudio安装 error C4996: ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. #include <stdio.h>int main() {printf("hello"…

如何使用pngPackerGUI_V2.0,将png图片打包成plist的工具

pngPackerGUI_V2.0&#xff0c;此软件是在pngpacker_V1.1软件基础之后&#xff0c;开发的界面化操作软件&#xff0c;方便不太懂命令行的小白快捷上手使用。 具体的使用步骤如下&#xff1a; 1.下载并解压缩软件&#xff0c;得到如下目录&#xff0c;双击打开 pngPackerGUI.e…

iPhone或在2024开放第三方应用商店。

iPhone或开放第三方应用商店&#xff0c;可以说这是一个老生常谈的话题。对于像是iOS这样封闭的系统来说&#xff0c;此前传出苹果可能开放侧载消息的时候&#xff0c;又有谁能信&#xff0c;谁会信&#xff1f; 如果是按照苹果自身的意愿&#xff0c;这种事情自然是不可能发生…

Windows下Python及Anaconda的安装与设置、代码执行之保姆指南

学习Python编程需要安装基本的开发环境。 &#xff08;1&#xff09;python ——编译器&#xff1b;这个是任何语言都需要的&#xff1b;必需&#xff01; &#xff08;2&#xff09;Anaconda ——主要的辅助工具&#xff0c;号称是 Python‘OS&#xff1b;必需&#xff01; …

LeetCode | 234. 回文链表

LeetCode | 234. 回文链表 O链接 这里的解法是先找到中间结点然后再将中间节点后面的节点逆序一下然后再从头开始和从中间开始挨个比较如果中间开始的指针到走最后都相等&#xff0c;就返回true&#xff0c;否则返回false 代码如下&#xff1a; struct ListNode* reverseLis…

杂记杂记杂记

目录 Mybatis分页插件原理&#xff1f; ThreadLocal? 树形表的标记字段是什么&#xff1f;如何查询MySQL树形表&#xff1f; Mybatis的ResultType和ResultMap的区别&#xff1f; #{}和${}有什么区别&#xff1f; 系统如何处理异常&#xff1f; Mybatis分页插件原理&#…