CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http
文章目录
- 参考
- 环境
- 题目
- hello.php
- 雾现
- User-Agent
- 伪造 User-Agent
- HackBar
- HackBar 插件的获取
- 修改请求头信息
- 雾散
- a.php
- 雾现
- 本地回环地址
- 与客户端 IP 相关的 HTTP 请求头
- X-Forwarded-For
- 雾散
参考
项目 | 描述 |
---|---|
搜索引擎 | Bing、Google |
AI 大模型 | 文心一言、通义千问、讯飞星火认知大模型、ChatGPT |
MDN Web Docs | https://developer.mozilla.org/zh-CN/ |
环境
项目 | 描述 |
---|---|
HackBar | 1.2.2 |
浏览器 | Chrome |
题目
项目 | 描述 |
---|---|
得分项 | HTTP 请求头 |
题目来源 | NSSCTF |
hello.php
雾现
访问题目首页 hello.php
得到如下界面:
意在希望我们使用名为 WLLM
的浏览器访问页面。如何解决?我们似乎也没有听说过名为 WLLM
的浏览器。那就从原理出发,浏览器是如何知道我们使用什么工具访问浏览器的呢?答案是 User-Agent
请求头。
User-Agent
HTTP 请求报文中的 User-Agent
请求头是一个用来 标识发送请求的客户端(通常是浏览器或其他网络应用程序)的字符串
。这个字符串通常包含了客户端的应用程序名称、版本号、操作系统信息和一些其他相关的信息,用来 帮助服务器识别请求的来源
。User-Agent 请求头的 主要目的
是为了让服务器能够根据客户端的不同特性来适配响应内容,以提供更好的用户体验。
User-Agent 请求头的示例如下:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36
Web开发人员和服务器管理员通常使用 User-Agent 请求头来识别客户端的类型和版本,以确保网站或应用程序能够提供适当的内容或功能。但需要注意的是,User-Agent 是可以伪造的
,因此不能完全依赖它来确定客户端的真实性。有些浏览器或工具可以通过设置自定义的 User-Agent 字符串来隐藏其真实身份。因此,在安全性要求较高的情况下,应该使用其他方式来验证客户端的身份。
伪造 User-Agent
让浏览器认为我们使用 WLLM
浏览器可以通过伪造 User-Agent
来实现。可问题是我们该如何修改发送的请求头信息呢?可以试试 HackBar
浏览器插件。
HackBar
Hackbar
是一个 浏览器扩展
,该扩展工具为安全专家、渗透测试人员和开发人员提供了一组工具,用于测试和评估 Web 应用程序的安全性
。HackBar
可以帮助用户识别潜在的安全漏洞,进行渗透测试,以及执行各种与网络安全相关的任务。以下是 Hackbar 的一些 主要
特点和功能:
-
HTTP 请求和响应拦截
HackBar 允许用户查看编辑浏览器发送的 HTTP 请求报文及接收到的 HTTP 响应报文
。在需要的时候,你可以通过修改 HTTP 请求报文
来实现对请求的精细化控制
。 -
Cookie 编辑和管理
HackBar 允许用户轻松编辑和管理浏览器中的 Cookie,这对于模拟不同的用户会话非常有用。 -
表单处理
HackBar 提供了表单提交和数据包装功能,以帮助用户测试应用程序的输入验证和表单处理。你可以手动构建 POST 或 GET 请求,并查看服务器对此进行的响应
。 -
编码和加密工具
HackBar 包括一些编码和加密工具,可用于处理Base64
、MD5
、SHA1
等的相关数据。 -
XSS 攻击测试
HackBar 提供了一些工具,用于检测和测试跨站脚本(XSS)漏洞
。 -
SQL 注入测试
HackBar 还包括用于测试 SQL 注入漏洞
的工具,可以帮助用户评估 Web 应用程序的数据库安全性。
由于微软的 Edge
浏览器的插件官网没有提供 HackBar
这款扩展工具,而 Google 的 Chrome
浏览器的插件官网由需要科学上网,所以推荐需要这款插件的朋友可以使用 Firefox
浏览器。
HackBar 插件的获取
首先,打开 Firefox
浏览器并进入其 插件官网,搜索插件 HackBar
,你将得到如下类似界面。
选择图中 红色箭头指向的两个插件中的其中一个
进行安装即可。
修改请求头信息
使用 HackBar
修改请求头的大致步骤如下:
- 安装
HackBar
插件后,在需要使用到 HackBar 插件的页面右键鼠标
选择检查
或直接敲击F12
进入浏览器提供的开发者工具
。 - 选择
HackBar
分栏。 - 点击
LOAD
将当前页面的 URL 加载至输入框中。 - 修改相关请求头的
Value
。 - 点击
EXCUTE
向 URL 所指向的页面发起请求。
雾散
为了让 hello.php
相信我们使用的是 WLLM
浏览器,我们需要将 User-Agent
请求头的值设置为 WLLM
。
点击 EXCUTE
向 hello.php
发起请求,得到如下界面:
a.php
雾现
进入 a.php
后,页面的信息意在提示我们需要在 本地(当前页面所处的服务器中)
对当前页面进行访问才可正常阅读。随后,页面指出了客户端的 IP 地址。
如何才能让 a.php
页面认为我们是在本地对该页面进行访问的呢?答案是告诉 a.php
我们的 IP 地址是 127.0.0.1
。127.0.0.1
即本地回环地址,访问这个地址 不需要通过实际的网络连接
。至于如何告诉 a.php
我们的 IP 地址,这可以通过修改 HTTP 请求头实现。
本地回环地址
本地回环地址(Loopback Address)
是计算机网络中的一个 特殊 IP 地址
,通常是 127.0.0.1(IPv4)
或 ::1(IPv6)
。本地回环地址的主要目的是用于计算机上的 自我测试
和 内部通信
,而 不涉及真实的网络通信
。本地回环地址允许计算机将网络请求发送给本机,而不需要通过实际的网络连接。
与客户端 IP 相关的 HTTP 请求头
在 HTTP 请求头中,通常 没有特定的请求头字段可以直接用于告诉页面客户端所使用的 IP 地址
,因为 IP 地址是由 底层网络协议(如 TCP/IP)
处理的,而 HTTP 是应用层协议,主要关注 如何在不同计算机或设备之间的应用程序之间进行通信和数据交换
。HTTP 请求头的主要目的是 提供与请求资源相关的元数据
。
在 HTTP 报文经过 代理服务器
或 负载均衡器
时,通常会添加与客户端 IP 相关的 HTTP 请求头以指示 源客户端的 IP 地址
。在这一过程中常使用到的 HTTP 请求头是 X-Forwarded-For
。
X-Forwarded-For
X-Forwarded-For
用于表示经过代理服务器或负载均衡器的 HTTP 流量的原始 IP 地址。当 HTTP 请求经过 多个代理服务器
或 负载均衡器
时,X-Forwarded-For
的值可能包含 多个用逗号隔开的 IP 地址
,而第一个 IP 地址通常就是 源客户端的 IP 地址
。
雾散
为了使 a.php
相信我们是在 本地
对该页面进行访问的,我们需要通过 HackBar
添加 X-Forwarded-For
请求头,并将该请求头的值设置为 127.0.0.1
。
在 HackBar 插件界面,点击 MODIFY HEADER
即可添加输入框以添加 HTTP 请求头。
尝试添加 X-Forwarded-For
请求头并将其值设置为 127.0.0.1
。随后,点击 EXCUTE
向 a.php
发起请求,即得 flag
。
相关文章:
CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http
文章目录 参考环境题目hello.php雾现User-Agent伪造 User-AgentHackBarHackBar 插件的获取修改请求头信息 雾散 a.php雾现本地回环地址与客户端 IP 相关的 HTTP 请求头X-Forwarded-For 雾散 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型…...
物联网AI MicroPython传感器学习 之 4路电容式触摸开关
学物联网,来万物简单IoT物联网!! 一、产品简介 板载TTP224电容式4键触摸感应IC,开发者通过触摸该电容模块获取对应的高低电平状态,可以广泛应用于灯光控制、玩具、家用电器等产品中。 引脚定义: VCC&…...
头戴式耳机什么牌子最好?头戴式耳机推荐性价比高
脖子上挎个头戴式作为随身装备,不仅给服装配饰添加了潮流感,还可以可以随时聆听音乐,随着广大消费者的生活水平不断提高,市面上的头戴式耳机越来越多。 选择头戴式耳机时无非就是听音质、看外观、舒适度等等,那么头戴…...
第 366 场周赛 LeetCode 周赛题解
A 分类求和并作差 模拟 class Solution { public:int differenceOfSums(int n, int m) {int res 0;for (int i 1; i < n; i)res i % m ! 0 ? i : -i;return res;} };B 最小处理时间 排序:设四个 p r o c e s s o r T i m e processorTime processorTime 的元…...
Linux: tcpdump抓包示例
文章目录 1. 前言2. TCP 状态机3. tcpdump 抓包示例3.1 抓连接握手包:三次握手3.2 抓数据包示例3.3 抓终结连接:四次挥手 4. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任…...
seafile server10.0.1 onlyoffice
目标:解决seafile server无法查看office相关文档问题 seafile server 已安装完成 安装onlyoffice 一、Install Docker Engine on Ubuntu 20.04 验证是否安装成功 sudo docker run hello-world 二、拉取onlyoffice/documentserver 镜像及安装 docker network cre…...
商城系统选型:Java商城系统还是PHP商城系统好?
电子商务的不断发展,商城系统成为了企业建设在线销售平台的重要组成部分。 可是在选择合适的商城系统时,许多企业面临着一个重要的决策:是选择Java商城系统还是PHP商城系统呢?下面就对这两种常见的商城系统进行比较,并…...
【多线程进阶】线程安全的集合类
文章目录 前言1. 多线程环境使用 ArrayList2. 多线程环境使用队列3. 多线程环境使用哈希表3.1 HashTable3.2 ConcurrentHashMap 总结 前言 本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中…...
016 Spring Boot + Vue 图书管理系统
Spring Boot Vue 图书馆管理系统(library-system) 本地快捷预览项目 第一步:运行 db 文件夹下的springboot-vue.sql(询问作者获取),创建springboot-vue数据库 第二步:修改后端数据库配置文件,启动后端 …...
C语言中volatile/register/const/static/extern/auto关键字的作用
目录 一、volatile 二、register详解 三、const详解 四、static详解 五、extern详解 语法 作用 六、auto详解 突然想总结一下这些关键字的作用,灵活使用这些对程序的可靠性和速率都有提高 一、volatile volatile是防止编译器优化,如果是高频繁…...
docker compose的安装和使用
docker-copose 介绍 docker-compose 是一个容器编排工具(自动化部署、管理); 它用来在单台 Linux 服务器上运行多个 Docker 容器; docker-compose 使用YAML文件来配置所有需要运行的 Docker 容器,该 YAML 文件的默认名称为 docker-compose.…...
/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by
在某项目中遇到下面的错误, ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./model2trt_v2) ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ../../../lib/linux_lib/libcuda_utils…...
数字化转型的必备工具:智能呼叫中心系统的应用
数字化转型已经成为企业发展的必然趋势,在这个过程中,智能呼叫中心系统成为了一个不可或缺的工具。智能呼叫中心系统通过整合各种通信渠道和自动化技术,为企业提供了高效、智能的客户服务解决方案。 首先,系统能够集成多种通信渠…...
macOS Sonoma 正式版系统已发布,macos14值得更新吗
北京时间9月27日macOS Sonoma 正式版系统发布,为 Mac 带来一系列丰富新功能:优化小组件、升级视频会议、沉浸式游戏体验等,最新macos14值得更新吗?这里根据我一个月的试用beta版本体验来分享一下。 我使用的是M1芯片的MacBook air…...
数据结构-图-最短路径问题
最短路径问题 单源最短路径Dijkstra算法原理代码实现 Bellman-Ford算法原理代码实现SPFA优化SPFA代码实现 多元最短路径Floyd-Warshall算法原理代码实现 单源最短路径 🚀最短路径:从图G的某个顶点出发到达另一个顶点的最短路径,其中最短是指…...
弹性资源组件elastic-resource设计(二)-集群
简介 弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。 本文介绍弹性资源组件的设计,包括架构设计和详细设计,指导开发人员代码开发,设计基于《flink原理源码分析(一…...
Flink学习笔记(一):Flink重要概念和原理
文章目录 1、Flink 介绍2、Flink 概述3、Flink 组件介绍3.1、Deploy 物理部署层3.2、Runtime 核心层3.3、API&Libraries 层3.4、扩展库 4、Flink 四大基石4.1、Checkpoint4.2、State4.3、Time4.4、Window 5、Flink 的应用场景5.1、Event-driven Applications【事件驱动】5.…...
网络中的一些基本概念
数据共享本质是网络数据传输 ,即计算机之间通过网络来传输数据,也称为 网络通信 。 根据网络互连的规模不同,可以划分为局域网和广域网。 局域网 LAN 局域网,即 Local Area Network ,简称 LAN 。 Local 即标识了局…...
mysql中varchar长度为多少
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存…...
python+selenium实现UI自动化(入门篇)
一、基础准备。 python环境安装,参考:CSDN pycharm安装,参考:CSDN 谷歌浏览器驱动配置,参考:CSDN二、新建pycharm项目 截图中,上面是项目地址(可以提前在指定位置创建文件夹…...
深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict
深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict 1、nn.Sequential 、 nn.ModuleList 、 nn.ModuleDict 类都继承自 Module 类。2、nn.Sequential、nn.ModuleList 和 nn.ModuleDict语法3、Sequential 、ModuleDict、 ModuleList 的区别…...
【DevOps】搭建你的第一个 Docker 应用栈
搭建你的第一个 Docker 应用栈 1.Docker 集群部署2.第一个 Hello World2.1 获取应用栈各节点所需镜像2.2 应用栈容器节点互联2.3 应用栈容器节点启动2.4 应用栈容器节点的配置2.4.1 Redis Master 主数据库容器节点的配置2.4.2 Redis Slave 从数据库容器节点的配置2.4.3 Redis 数…...
软件测试职业生涯需要编写的全套文档模板,收藏这一篇就够了 ~
作为一名测试工程师,在整个的职业生涯中,会涉及到各种不同类型的文档编写,大体包括如下: 对应文档模板及文档编写视频如下: 一、测试岗位必备的文档 在一个常规的软件测试流程中,会涉及到测试计划、测试方…...
【Kubernetes】Pod——k8s中最重要的对象之一
Pod是什么?如何使用Pod?资源共享和通信Pod 中的存储Pod 联网:跨 Pod 通信 静态 Pod感谢 💖 Pod是什么? Pod是k8s中创建和管理的、最小的可部署的计算单元。它包含一个或多个容器。就像豌豆荚里面包含了多个豌豆一样。…...
vue-cli-service: command not found问题解决
解决方案:重新安装一下: npm install -g vue/cli...
每日一练 | 华为认证真题练习Day117
1、缺省情况下,广播网络上OSPF协议Deadtime是? A. 20s B. 40s C. 10s D. 30s 2、当两台OSPF路由器形成TWO-WAY邻居关系时,LSDB已完成同步,但是SPF算法尚未运行。 A. 对 B. 错 3、以下哪种协议不属于文件传输协? …...
【JVM】垃圾回收(GC)详解
垃圾回收(GC)详解 一. 死亡对象的判断算法1. 引用计数算法2. 可达性分析算法 二. 垃圾回收算法1. 标记-清除算法2. 复制算法3. 标记-整理算法4. 分代算法 三. STW1. 为什么要 STW2. 什么情况下 STW 四. 垃圾收集器1. CMS收集器(老年代收集器&…...
阿里云服务器公网带宽多少钱1M?
阿里云服务器公网带宽计费模式按固定带宽”计费多少钱1M?地域不同带宽价格不同,北京、杭州、深圳等大陆地域价格是23元/Mbps每月,中国香港1M带宽价格是30元一个月,美国硅谷是30元一个月,日本东京1M带宽是25元一个月&am…...
应用DeepSORT实现目标跟踪
在ByteTrack被提出之前,可以说DeepSORT是最好的目标跟踪算法之一。本文,我们就来应用这个算法实现目标跟踪。 DeepSORT的官方网址是https://github.com/nwojke/deep_sort。但在这里,我们不使用官方的代码,而使用第三方代码&#…...
Beyond Compare 4 30天评估到期 解决方法
Beyond Compare 4 用习惯了,突然提示评估到期了,糟心😄 该方法将通过修改注册表,使BeyondCompare 版本4可以恢复到未评估状态,使其可以持续使用30天评估😄。 修改注册表 第一步:打开注册表。 在…...
用图片做简单网站/如何实现网站的快速排名
转载自http://www.cnblogs.com/venow/archive/2012/11/03/2752431.html 策略模式定义: 定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 策略模式解析: 策略…...
商城网站建设系统/2345网址导航电脑版
我正在尝试使用比较2数组的PHP函数,如果它们相同则返回true.例:assertArrayEquals(array(a>1, b>2), array(a>1, b>2)); // TrueassertArrayEquals(array(a>1, b>2), array(b>2, a>1)); // TrueassertArrayEquals(array(a>1, b>2), a…...
wordpress 建立数据库连接时出错/百度竞价在哪里开户
从topcoder赚钱的方法~ 1. 算法 1.1 SRM 钱少($30左右),而且很难。 1.2 Tournament 钱多($1000~$10000),太难~ 2. 设计和开发2.1 构件设计和开发钱比较多($1000左右),而且机会很…...
沧州建设网站公司/b站推广2024mmm已更新
伴随着时期的发展趋势,计算机网变成人们日常生活必不可少的物品,只是计算机安全也变成了人们所忧虑的物品,那麼人们究竟该如何确保自身的计算机安全呢?有许多人挑选了配置HTTP安全证书,只是人们要是如何配置https安全证…...
wordpress 所有文章404/seo是什么职务
pygame 文档 Pygame之家【Pygame Home】 帮助内容【Help Contents】 指导索引【Reference Index】最有用的东西 【Most useful stuff】Color | display | draw | event | font | image | key | locals mixer | mouse | Rect | Surface | time | music | pygame 高级的东西【…...
wordpress rewirte/什么平台可以免费打广告
nginx比较强大,可以针对单个域名请求做出单个连接超时的配置. 比如些动态解释和静态解释可以根据业务的需求配置 proxy_connect_timeout :后端服务器连接的超时时间_发起握手等候响应超时时间 proxy_read_timeout:连接成功后_等候后端服务器响应时间_其实已经进入后端的排队…...