CTF 全讲解:[SWPUCTF 2021 新生赛]Do_you_know_http

news2024/11/17 3:52:51

文章目录

  • 参考
  • 环境
  • 题目
  • hello.php
      • 雾现
      • User-Agent
      • 伪造 User-Agent
          • HackBar
            • HackBar 插件的获取
            • 修改请求头信息
      • 雾散
  • a.php
      • 雾现
      • 本地回环地址
      • 与客户端 IP 相关的 HTTP 请求头
          • X-Forwarded-For
      • 雾散

参考

项目描述
搜索引擎BingGoogle
AI 大模型文心一言通义千问讯飞星火认知大模型ChatGPT
MDN Web Docshttps://developer.mozilla.org/zh-CN/

环境

项目描述
HackBar1.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 的一些 主要 特点和功能:

  1. HTTP 请求和响应拦截
    HackBar 允许用户 查看编辑浏览器发送的 HTTP 请求报文及接收到的 HTTP 响应报文。在需要的时候,你可以通过 修改 HTTP 请求报文 来实现 对请求的精细化控制

  2. Cookie 编辑和管理
    HackBar 允许用户轻松编辑和管理浏览器中的 Cookie,这对于模拟不同的用户会话非常有用。

  3. 表单处理
    HackBar 提供了表单提交和数据包装功能,以帮助用户测试应用程序的输入验证和表单处理。你 可以手动构建 POST 或 GET 请求,并查看服务器对此进行的响应

  4. 编码和加密工具
    HackBar 包括一些编码和加密工具,可用于处理 Base64MD5SHA1 等的相关数据。

  5. XSS 攻击测试
    HackBar 提供了一些工具,用于 检测和测试跨站脚本(XSS)漏洞

  6. SQL 注入测试
    HackBar 还包括用于 测试 SQL 注入漏洞 的工具,可以帮助用户评估 Web 应用程序的数据库安全性。

由于微软的 Edge 浏览器的插件官网没有提供 HackBar 这款扩展工具,而 Google 的 Chrome 浏览器的插件官网由需要科学上网,所以推荐需要这款插件的朋友可以使用 Firefox 浏览器。

HackBar 插件的获取

首先,打开 Firefox 浏览器并进入其 插件官网,搜索插件 HackBar,你将得到如下类似界面。

选择图中 红色箭头指向的两个插件中的其中一个 进行安装即可。

修改请求头信息

使用 HackBar 修改请求头的大致步骤如下:

  1. 安装 HackBar 插件后,在需要使用到 HackBar 插件的页面 右键鼠标 选择 检查 或直接敲击 F12 进入浏览器提供的 开发者工具
  2. 选择 HackBar 分栏。
  3. 点击 LOAD 将当前页面的 URL 加载至输入框中。
  4. 修改相关请求头的 Value
  5. 点击 EXCUTE 向 URL 所指向的页面发起请求。

雾散

为了让 hello.php 相信我们使用的是 WLLM 浏览器,我们需要将 User-Agent 请求头的值设置为 WLLM

点击 EXCUTEhello.php 发起请求,得到如下界面:

a.php

雾现

进入 a.php 后,页面的信息意在提示我们需要在 本地(当前页面所处的服务器中) 对当前页面进行访问才可正常阅读。随后,页面指出了客户端的 IP 地址。

如何才能让 a.php 页面认为我们是在本地对该页面进行访问的呢?答案是告诉 a.php 我们的 IP 地址是 127.0.0.1127.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。随后,点击 EXCUTEa.php 发起请求,即得 flag

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓄电池与超级电容混合储能并网逆变系统Simulink仿真

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

微信小程序开发——自定义堆叠图

先看效果图 点击第一张图片实现折叠,再次点击实现展开 思路 图片容器绑定点击事件获取当前图片索引,触发onTap函数,根据索引判断当前点击的图片是否为第一张,并根据当前的折叠状态来更新每张图片的位置,注意图片向上…

android插件开发

写文件:二进制: 项目步骤:下载图片,转码。测试显示。 测试加的代码 写文件,二进制,Base64解码:

基于复旦微JFM7K325T FPGA的高性能PCIe总线数据预处理载板(100%国产化)

PCIE711是一款基于PCIE总线架构的高性能数据预处理FMC载板,板卡采用复旦微的JFM7K325T FPGA作为实时处理器,实现各个接口之间的互联。该板卡可以实现100%国产化。 板卡具有1个FMC(HPC)接口,1路PCIe x8主机接口&#x…

2023.10.07

#include <iostream>using namespace std;int main() {string str;cout << "请输入字符串&#xff1a;";getline(cin,str);int big0,little0,spac0,num0,sym0;int sizestr.size();for(int i0;i<size;i){if((int)str.at(i)<6526 && (int)st…

可怕,鸡的这些部位千万不能吃?多数人都不知道……

鸡肉深受大多数人的喜爱&#xff0c;但网上关于鸡肉的说法也是各式各样&#xff1a; 有人说“鸡头当中含有重金属物质&#xff0c;食用有危害”&#xff1b;有人说“鸡皮不能吃&#xff0c;不然会中毒”&#xff1b;甚至还有人说“鸡肉不能吃&#xff0c;否则会致癌”…… 网传…

VMware 虚拟机删除+重建

由于本人暴力地关闭虚拟机&#xff0c;导致虚拟机出现了一些问题&#xff0c;并且还没有给虚拟机拍快照&#xff0c;虽然还能用&#xff0c;但本人不想将就&#xff0c;于是乎打算重新新建一个虚拟机 一、删除 1.打开workstation,选择虚拟机&#xff0c;右键选择移除。 虽然虚…

x64内核实验7-线程

x64内核实验7-线程 TOC 线程是比较重要的内核结构&#xff0c;思考一下其实可以想到线程结构体在64位下的变化应该不会很大最多只是扩充了一些内容&#xff0c;因为从我们之前分析段页时候会发现cpu更新的这些内容大部分不影响xp时候的线程切换机制&#xff0c;下面我们来验证…

无法打开软件,因为计算机中找不到MSVCP140.dll的解决方法

msvcp140.dll是Microsoft Visual C 2015 Redistributable的一个动态链接库文件&#xff0c;它是Microsoft Visual Studio 2015的一部分。这个文件包含了许多用于运行C程序所需的运行时函数和数据。当计算机上安装了Visual Studio 2015或更高版本时&#xff0c;msvcp140.dll文件…

嵌入式Linux裸机开发(四)IMX6U主频和时钟配置

系列文章目录 文章目录 系列文章目录介绍时钟来源PLL时钟源内核时钟PFD时钟AHB、 IPG 和 PERCLK 根时钟设置 结语 介绍 默认配置下 I.MX6U 工作频率为 396MHz&#xff0c;但该系列标准工作频率事528MHz&#xff0c;有些型号甚至可以工作到696MHz。 默认情况下内部 boot rom 会…

阿里云服务器ECS经济型e实例租用价格表

阿里云服务器e系列优惠价格&#xff1a;2核2G配置182元一年、2核4G配置365元一年、2核8G配置522元一年&#xff0c;e系列即ECS经济型e实例&#xff0c;CPU采用Intel Xeon Platinum可扩展处理器&#xff0c;系统盘支持ESSD Entry云盘&#xff08;推荐&#xff09;、ESSD云盘、ES…

【SpringBoot】| Thymeleaf 模板引擎

目录 Thymeleaf 模板引擎 1. 第一个例子 2. 表达式 ①标准变量表达式 ②选择变量表达式&#xff08;星号变量表达式&#xff09; ③链接表达式&#xff08;URL表达式&#xff09; 3. Thymeleaf的属性 ①th:action ②th:method ③th:href ④th:src ⑤th:text ⑥th:…

【yolo系列:yolov7改进wise-iou】

yolo系列文章目录 学习视频&#xff1a; YOLOV7改进-Wise IoU_哔哩哔哩_bilibili 代码地址&#xff1a; objectdetection_script/yolov7-iou.py at master z1069614715/objectdetection_script (github.com) 文章目录 yolo系列文章目录一、在yolov7之上进行替换二、在loss.p…

双馈风力发电机-900V直流混合储能并网系统Simulink仿真

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C++默认参数(实参)

在本文中&#xff0c;您将学习什么是默认参数&#xff0c;如何使用它们以及使用它的必要声明。在C 编程中&#xff0c;您可以提供函数参数的默认值。默认参数背后的想法很简单。如果通过传递参数调用函数&#xff0c;则这些参数将由函数使用。但是&#xff0c;如果在调用函数时…

几道web题目

总结几道国庆写的web题目 [ACTF2020 新生赛]Include1 点进去发现就一个flag.php,源代码和抓包都没拿到好东西 结合题目猜是文件包含&#xff0c;构建payload ?filephp://filter/readconvert.base64-encode/resourceflag.php 得到base64编码过的flag&#xff0c;解码即可 此题…

榜单发布!AR-HUD进入LCoS时代,哪些企业正在领跑

高工智能汽车研究院监测数据显示&#xff0c;今年1-7月中国市场&#xff08;不含进出口&#xff09;乘用车前装标配W/AR HUD交付108.35万辆&#xff0c;同比增长47.98%&#xff0c;前装搭载率升至9.82%。 其中&#xff0c;从价位区间分布来看&#xff0c;30万元及以上车型标配W…

【Overload游戏引擎分析】画场景栅格的Shader分析

Overload引擎地址&#xff1a; GitHub - adriengivry/Overload: 3D Game engine with editor 一、栅格绘制基本原理 Overload Editor启动之后&#xff0c;场景视图中有栅格线&#xff0c;这个在很多软件中都有。刚开始我猜测它应该是通过绘制线实现的。阅读代码发现&#xff0…

2023年,有哪些好用的互联网项目管理软件?

项目管理是为了使工作项目能够按照预定的需求、成本、进度、质量顺利完成&#xff0c;而对人员、产品、过程和项目进行分析和管理的活动。 一直以来&#xff0c;项目管理被企业管理人员和各级人员所重视&#xff0c;项目管理是一个项目的灵魂&#xff0c;只有做好了项目管理&am…

IO流 Java

IO 字节输入流 1&#xff1a;我使用while遍历 用循环来遍历文件里的数据 读取性能很差 读取汉字和维语字 会乱码 无法避免的 流使用完毕之后 必须关闭 释放系统资源 out.close();//关闭流 package IO_TEST;import java.io.File; import java.io.FileInputStream;import java…