BUUCTF[ACTF2020 新生赛]Include 1题解

article/2025/6/24 11:24:09

BUUCTF[ACTF2020 新生赛]Include 1题解

  • 题目分析:
  • 知识准备:
    • `php://filter` 过滤器参数说明
    • 常用过滤器功能对照表
  • 开始解题:
    • 原理解析
    • 构造payload
  • 总结

题目分析:

生成靶机,打开网址,查看源码,抓包查看有无隐藏信息(公式化)。
点击tips:
tips
发现一段留言:Can you find out the flag?,同时我们观察url

http://163da250-9a0d-4ec7-9002-49df5c87e38b.node5.buuoj.cn:81/?file=flag.php

结合题目标题以及url中的?file=flag.php,几乎就可以断定有文件包含漏洞了。

知识准备:

在开始解题之前,我们需要了解PHP伪协议的知识:
PHP伪协议通过替换数据报的头部信息来欺骗网络协议。

以下是关于 php://filter 参数的过滤器整理表格:

php://filter 过滤器参数说明

参数类型过滤器名称作用
必须项resource=<要过滤的数据流>指定待筛选过滤的数据流(必填)
可选项(读链)read=<过滤器1|过滤器2>读链设置一个或多个过滤器,用管道符 | 分隔
可选项(写链)write=<过滤器1|过滤器2>写链设置一个或多个过滤器,用管道符 | 分隔
默认链<过滤器1|过滤器2>未加前缀的过滤器列表将根据操作类型(读/写)自动应用到对应链

常用过滤器功能对照表

过滤器类型过滤器名称作用
字符串过滤器string.rot13等同于 str_rot13(),进行 ROT13 字符变换
string.toupper等同于 strtoupper(),将字符串转为大写
string.tolower等同于 strtolower(),将字符串转为小写
string.strip_tags等同于 strip_tags(),移除 HTML/PHP 标签
转换过滤器convert.base64-encode等同于 base64_encode(),进行 Base64 编码
convert.base64-decode等同于 base64_decode(),进行 Base64 解码
convert.quoted-printable-encode将 8-bit 字符串编码为 Quoted-Printable 格式(可打印字符)
convert.quoted-printable-decode将 Quoted-Printable 格式解码为 8-bit 字符串

开始解题:

原理解析

后端代码大概可能是下面这样:

include($_GET['file'])

如果我不使用PHP伪协议,读取flag.php之后,include()就会自动执行其中的PHP代码,这样就无法在网站前端阅读到完整的源码。但是如果我们使用php://filter,对文件中的命令进行一些处理,就可以获得完整的源码。

构造payload

?file=php://filter/read=convert.base64-encode/resource=flag.php

payload中的每一个过滤器都能从上面的表格中找到,payload实现了把flag.php中的所有字符转换为BASE64编码,以逃脱include()执行php代码,获得完整源码
base64

BASE64解码得到:

<?php
echo "Can you find out the flag?";
//flag{5b7c82b0-4473-42a3-bb8c-068dcd50a1d0}

FLAG被注释掉了,但是通过PHP伪协议找到了。

总结

本题的提示还是非常明显的,没有绕弯,主要考察了CTFer对文件包含漏洞和PHP伪协议的理解,总的来说不是很难适合初学者(比如我)。


http://www.hkcw.cn/article/iQbeaTwxSx.shtml

相关文章

STM32 笔记 _《GPIO配置从低层走向高层》

目录 一.寄存器直接地址写入法 二.寄存器地址命名写入法 三.其它命名、及使用结构体 /枚举来归类 (逐步走向库函数) 三.GPIO一些参考图 一.寄存器直接地址写入法 操作IO口分三步&#xff1a; 1.打开相应的时钟&#xff1b; 2. 配置相应的I/O模式和频率&#xff08;内部会…

c++继承

继承的概念及定义介绍 什么是继承&#xff0c;继承是面向对象而言的&#xff0c;他的地基是基于类而言的。最简单的介绍就是&#xff0c;一个类继承了另一个的成员&#xff0c;可以使用这个类成员&#xff0c;并且可以在此基础上&#xff0c;定义自己的成员&#xff0c;从而…

【后端高阶面经:架构篇】56、大数据技术架构的思想和原理是什么?

一、大数据架构的核心思想:分而治之的分布式哲学 (一)分布式存储与计算的本质 大数据架构的终极目标是解决单机存储与计算的性能瓶颈,其核心在于将数据与计算任务分散到多台廉价服务器,通过协同工作突破物理限制。这一思想的实现依赖两大基石: 数据分片(Data Sharding…

联想发布C55数码相机 6400万像素新选择

联想在京东上架了一款型号为C55的6400万像素数码相机,现已开售。该相机提供64GB和128GB两种版本,售价分别为499元和559元,首发价则为424元和475元。部分地区还支持叠加15%的国家补贴。这款相机采用了6400万像素的索尼CMOS传感器,尺寸为1/3英寸,配备2.8英寸液晶屏,支持ISO…

律师:厂家远程锁电动车侵权 经销商财产权受损

厂家远程锁电动车侵权 经销商财产权受损!最近,盐城市民王先生遇到了一个棘手的问题。去年他加盟销售一款品牌电动车,但由于销量不佳,最终自行关闭了店铺。在与厂家协商店铺装修赔偿事宜时,厂家通过技术手段将王先生已经付全款的库存电动车全部锁死,导致这批车辆无法正常销…

武汉女足主帅:王霜是核心,展现强大心脏

率队夺得女足亚冠冠军后,武汉车谷江大女足主教练常卫魏在接受采访时说:“赢得亚冠的历程,值得我一辈子回忆。陈晨成为扑点球的专家了,王霜展现了核心的价值。”关于门将陈晨在决赛中的表现,常卫魏提到,首发门将丁旋在上半场与对方球员有一次碰撞,中场休息时她表示腰部非…

【软件测试】火狐驱动下载镜像

CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?pathgeckodriver/

windows 缓冲区溢出实验关于VS的一些配置 (逆向与漏洞分析 (魏强) (Z-Library))

使用vs编写缓冲区溢出demo 的配置 最近在看 逆向与漏洞分析 (魏强) (Z-Library) 这本书&#xff0c;书上的关于缓冲区溢出的实验代码&#xff0c;使用vs 编写代码编译出来的可执行程序默认情况下就会存在一系列保护&#xff0c;如何不修改的话真的就调试不了书上的实验。主要是…

西红柿番茄成熟度目标检测数据集介绍

随着智能农业的发展&#xff0c;果蔬成熟度识别逐渐成为自动化采摘与质量控制中的核心问题之一。为了支持基于深度学习的目标检测算法对西红柿不同成熟阶段进行识别与分类&#xff0c;我们构建了一个西红柿成熟度目标检测数据集&#xff0c;该数据集包含三种成熟度类别&#xf…

大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森林 Bagging Boosting

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大模型篇章已经开始&#xff01; 目前已经更新到了第 22 篇&#xff1a;大语言模型 22 - MCP 自动操作 FigmaCursor 自动设计原型 Java篇开…

贪心算法应用:线性规划贪心舍入问题详解

贪心算法应用&#xff1a;线性规划贪心舍入问题详解 贪心算法是一种在每一步选择中都采取当前状态下最优的选择&#xff0c;从而希望导致结果是全局最优的算法策略。在线性规划问题中&#xff0c;贪心算法特别是贪心舍入技术有着广泛的应用。下面我将全面详细地讲解这一主题。…

【LLM vs Agent】从语言模型到智能体,人工智能迈出的关键一步

目录 一、什么是 LLM&#xff1f;语言的天才&#xff0c;思维的起点 ✅ 特点小结&#xff1a; 二、什么是 Agent&#xff1f;智能的执行者&#xff0c;自主的决策者 ✅ 特点小结&#xff1a; 三、LLM 与 Agent 的关系&#xff1a;是工具&#xff0c;更是大脑 四、案例实战…

esp32 platformio lvgl_gif的使用和踩坑情况

踩坑一&#xff1a;白屏 不显示 开启custom内存这里 以及 gif显示 踩坑二&#xff1a;只有图片 不显示动态 没开时间 要打开这个时基 网站:转成c数组的官方网站 Image Converter — LVGL 以及显示代码&#xff1a;在setup里面调用 LV_IMG_DECLARE(my_gif);lv_obj_t *img;img…

华南沿海等地较强降雨持续 局地伴有强对流天气

今明两天(6月3日至4日),我国降雨主要出现在云南和华南沿海、东北地区等地,局地还可能伴有强对流天气。随着高压脊东移,北方大部气温逐渐升高,华北、黄淮等地高温天气将发展增多,南方多地5日起也将加入高温行列。昨天,冷空气南下导致南方强降雨区域南压至华南和云南一带…

黄金白银原油大涨 市场热度持续升温

黄金原油市场收盘大涨,贵金属与能源品种展现出强劲涨势。COMEX黄金期货和白银期货分别以显著涨幅收盘,其中黄金期货收涨2.74%,报3406.4美元/盎司;白银期货收涨5.76%,报34.93美元/盎司。原油市场同样表现抢眼,WTI原油期货收于每桶62.52美元,上涨1.73美元,涨幅为2.85%;布…

“蹦床外长”当选联大主席 外交新挑战

蹦床外长当选联大主席!一夜醒来,联合国大会发生了重大变化。周一下午,在纽约联合国总部举行的全体会议上,被称为“蹦床外长”的安娜莱娜贝尔伯克以167票当选为联合国大会主席。这距离她离开德国外长之位不到一个月。这份工作需要相当强的外交技巧,一些批评人士认为这是贝尔…

python依赖库管理工具

软件名称&#xff1a;Python依赖管理工具 版本&#xff1a;1.0适用系统&#xff1a;Windows 7/10/11&#xff0c;Python 项目环境管理辅助工具 开发语言&#xff1a;Python 3 PyQt5 开发者&#xff1a;Thebzk 软件功能简介&#xff1a; 本工具是专为Python 开发者设计的图…

labuladong刷题之前缀和与差分数组技巧(空间换时间)

Q1题目链接&#xff1a;https://leetcode.com/problems/range-sum-query-immutable/ leetcode 303 看到题目的第一思路&#xff1a; 代码随想录之后的想法和总结&#xff1a; 如何用 prefix 查询区间和&#xff1f; 如果你想查询&#xff1a;nums[left] nums[left1] ... …

基于爬取的典籍数据重新设计前端界面

1.BooksView(书籍列表页) 2.ClassicsView&#xff08;目录页&#xff09; 3.管理员端

Origin将杂乱的分组散点图升级为美观的带颜色映射的气泡图

图形初步了解 带颜色映射的气泡图&#xff0c;是一种含有三个变量的高级散点图&#xff0c;前两个变量分别为横纵坐标&#xff0c;第三个变量通过气泡的大小和颜色来呈现。在视觉上辅助读者直观地比较三个变量的关系。 在本例图中&#xff0c;通过pH、Group和Solubility三个指…