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

[极客大挑战 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: 这是用户代理字符串的一部分,表示浏览器使用了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

发包过去得到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博客

http://www.lryc.cn/news/224806.html

相关文章:

  • C 语言 for循环
  • 浅谈数据结构之链表
  • 封装一个 虚拟列表渲染 组件
  • Spring中@Bean标注的方法是如何创建对象呢?
  • 伦敦金股票代码是什么?
  • 【环境装配】Anaconda在启动时闪现黑框,闪几次后仍能正常使用,解决黑框问题
  • 【Python】Python爬虫使用代理IP的实现
  • 盘点U-Mail邮件系统安全设计
  • Webpack--动态 import 原理及源码分析
  • 创新无处不在的便利体验——基于智能视频和语音技术的安防监控系统EasyCVR
  • 强化IP地址管理措施:确保网络安全与高效性
  • Power Automate-创建审批流
  • 商越科技:渗透测试保障平台安全,推动线上采购高效运转
  • Java10新增特性
  • Hive 知识点八股文记录 ——(一)特性
  • 如何使用PHP替换回车为br
  • Unity 场景优化策略
  • Wireshark在Windows上安装后报错怎么办?
  • 【Proteus仿真】【51单片机】水质监测报警系统设计
  • TensorFlow2.0教程3-CNN
  • flink1.18.0 sql-client报错
  • 基于ssm的校园快递物流管理系统(java+jsp+ssm+javabean+mysql+tomcat)
  • C++:this指针和构造与析构的运用
  • 通用工作站设计方案 :807-ORI-S3R500 -多路PCIe3.0的单CPU通用工作站
  • 机器学习写代码时遇到的问题(23.11.9)
  • C#学习系列之事件
  • list部分接口模拟实现(c++)
  • 数据结构(C语言) 实验-栈与字符串
  • xLua Lua访问C#注意事项(七)
  • vue3+antv2.x的画布