PHP文件操作

文件包含&PHP伪协议利用 文件包含&PHP伪协议利用 相关函数 要想成功利用文件包含漏洞进行攻击,需要满足以下两个条件: 1、Web应用采用include()等文件包含函数通过动态变量的方式引入需要包含的文件; 2、用户能够控制该动态变量。 php中引发文件包含漏洞的通常是以下四个函数: (1) Require: 找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本,如果在包含的过程中有错,比如文件不存在等,则会直接退出,不执行后续语句。; (2) Require_once:与 include 类 阅读详情
关于文件的递归删除目录:注意理清楚各个路径的使用即可

函数

<?php
//删除目录,须知:文件dir只能删除空的,删除文件夹用:rmdir(),删除文件unlink();
//利用句柄当指针使用:readdir();
function del($path)
{
    //去掉错误的路径,自己格式化一次
    $path = rtrim($path,'/');

    //打开句柄
    $resuoce = opendir($path);

    while(false !== $fileName=(readdir($resuoce))){

        if($fileName=='.'||$fileName=='..')continue;

        //echo $path.'/'.$fileName.'<br />';
        $fileNew = $path.'/'.$fileName;

        //下面的参数必须是一个完整的路径,而不是文件名
        if(is_dir($fileNew)){
            del($fileNew);
        }else{
            unlink($fileNew);
        }
    }
        //删除空目录的顺序需要在关闭资源之后,因为:不能删除一个为关闭的资源,相当于删除一个已经打开的文件一个道理;
        closedir($resuoce);//参数是被打开的资源
        rmdir($path);//删除函数的参数必须是原打开的路径因为是递归遍历,而且需要删除自己打开的资源
}

// 调用
$path = './include';
del($path);
关于文件复制的递归函数:注意理清楚各个路径的使用即可

函数

<?php
/**
*   函数功能复制一个目录到指定的地方
* @param URL 需要复制的路径
* @param URL 指定存放的路径
*/
function copy_file($path,$to_path)
{

    //格式化代码,按照要求防止输入参数和符合
    $path= rtrim($path, '/');
    $to_path= rtrim($to_path, '/');
    if($path== '.' || $path== '..' || $to_path== '.' || $to_path== '..') return false;

    //防止源目录不存在和目标目录存在
    if(!file_exists($path)  || !is_dir($path)) return false;

    // if(!file_exists($src)){echo 1;}
    if(!file_exists($to_path) || !is_dir($to_path)) mkdir($to_path);

    //打开dir  打开句柄
    $resouce = opendir($path);
    //循环遍历dir  
    //while(false !== $dirNewName=(readdir($resouce))){
    while(false !== $dirNewName=(readdir($resouce))){

        //防止文件向上递归读取
        if($dirNewName=='.'||$dirNewName=='..')continue;

            //递归需要的路径
            $new_path = $path.'/'.$dirNewName;
            //复制目标需要的路径
            $copy_fileN = $to_path.$new_path;
            //echo $copy_fileN.'<hr />';
            //递归文件夹
            if(is_dir($new_path)){
               // echo $new_path.'<hr />';
                //复制文件夹,在递归之前执行是个逻辑顺序问题,必须要先有文件夹,下面的文件才有地方可放
                mkdir($copy_fileN,0777,true);//这里使用的路径不能是自己的,要目标的;
                //echo $to_path.'<hr />';
                copy_file($new_path,$to_path);//第二个参数只是起到一个开头引导作用,和函数体内的拼接目录作用,所以写原来 即可;
            }else{
                copy($new_path,$copy_fileN);//参数一:是源目标路径,参数二:刚刚创建在指定位置的新目录路径
            }
        }
        closedir($resouce);

}


PHP文件包含漏洞 涉及到的危险函数〔include(),require()和include_once(),require_once()〕 include()&&require()语句:包括并运行指定文件。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而require()则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用require()。include()就不是这样。 漏洞代码: root@ubuntu:/var/www# cat lif.php < 阅读详情

相关推荐

php文件操作

每次听丽江小倩都会想起大理古城,苍山雪,洱海月,丽江束河古镇,茶马古道,玉龙雪山,泸沽湖,还有虎跳峡,香格里拉,那里的普达措森林公园,藏传佛教,还有纯洁朴实的人们 在操作文件之前呢,我们应该打开文件,使用fopen()函数,注意,在打开文件时应该务必小心,一不小心可能就会把文件内容删掉, 1 打开文件 语法 resource fopen ( string $filename , s...

人生代码 ---- 公众号 856

php伪协议实现命令执行,任意文件读取

ctf----php伪协议

qq_44418229的博客 1万+

FreeRTOS实战:如何避免HAL_Delay在高优先级中断中的坑(附TIM6配置指南)

本文深入剖析了在STM32 FreeRTOS项目中,于高优先级中断内调用HAL_Delay函数导致系统假死的根本原因——SysTick时基被FreeRTOS占用且优先级最低。文章提供了治本方案:通过配置TIM6作为独立且最高优先级的HAL时基,实现与FreeRTOS系统心跳的解耦,并附上详细的CubeMX配置与代码移植指南,确保系统实时性与稳定性。

weixin_29230059的博客 64

CTF实战练习:文件包含漏洞

CTF实战练习:http://120.78.xx.xxx:8012 首先打开题目链接,已知的是这是一道关于文件包含的题目,既然是文件包含的题目,那就按照一般的步骤来喽。 先说一下,我拿到这道题目之后我的思路,因为之前博客中也写过关于文件包含漏洞的题目,就按照之前的思路来了。第一步,首先我输入了解题链接之后,网页链接变成了xxxx/index.php?file=hello.php,这就很明显...

烟雨天青色 4752

WSL2+Ubuntu-22.04搭建PX4仿真环境:从零避坑到一键起飞

本文详细指导在Windows系统上通过WSL2和Ubuntu-22.04搭建PX4仿真开发环境的完整流程,涵盖环境配置、源码下载、依赖安装、Gazebo仿真及常见错误解决方案,帮助开发者从零避坑实现无人机一键起飞仿真。

k8s6orchestrator的博客 670

解决用加速器以后,电脑无法连接网络的问题

相信很多朋友也遇到过,用加速器以后,电脑网络直接断了,或者访问外网时打不开的情况解决办法是。

qq_46368050的博客 1万+

PHP中的文件处理:如何打开PHP文件?

要打开文件,请使用 fopen() 函数,该函数采用两个参数:文件名(包括路径)和模式(例如“r”用于读取或“w”用于写入)。打开文件后,可以执行各种操作,例如使用 fgets() 或 fread() 读取其内容,或使用 fwrite() 向其写入数据。一个:要打开文件以在 PHP 中编写,您可以使用 fopen() 函数,并将 mode 参数设置为 “w” 或 “a”。“W”覆盖文件(如果文件存在)或创建新文件,而“A”将数据追加到文件(如果文件存在或创建新文件)。这是高效资源管理的推荐做法。

新华编程特战队 1121

R语言下载包报错?可能是IE浏览器在搞鬼!手把手教你修复(附CRAN镜像选择指南)

本文深入解析了R语言下载包时常见的网络报错问题,特别是Windows系统中因Internet Explorer代理设置导致的连接失败。文章提供了从重置IE配置、排查防火墙到优化CRAN镜像选择的完整解决方案,并附有详细的配置指南和自动化诊断脚本,帮助用户彻底解决R包安装难题。

weixin_29056781的博客 742

【PHP】PHP文件操作详解

本文详细介绍了PHP文件操作的三个方面:读取、写入和删除。通过示例代码,我们可以看到PHP提供了丰富的文件操作函数和数组,使得我们可以轻松地处理各种文件操作任务。在实际应用中,我们应该根据具体的需求选择适当的函数和模式来执行文件操作。

qq_22744093的博客 1554

【无标题】IP804A参考资料和管脚作用图

3.3V内置led控制内置EEPROM接口,用于哑应用ip804a,可集成为4X N端口PSE稳压器内置支持外部设备。多个系统和IC总线用于从每个IP804A收集PD电源状态,以支持全局电源管理。多个ip804a可以构建一个具有成本效益的PHY级PSE系统以支持PD分类和电源管理,而无需主机。基于LLDP(IEEE标准8023AT-2009的一部分),可以实时维护PSE和PD之间的动态电源管理,以提高电源效率。IP804A是一款用于POE(以太网供电)系统的4端口PSE(电源设备)控制器IC。

2301_78055735的博客 1058

C++面向对象编程-继承与派生练习题

2、共同派生类 3、人员类Person的派生(虚基类的使用)

编程小鹏的博客 1191

PHP语言的文件操作

PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发。它具有丰富的内置功能,其中文件操作是其重要的一部分。通过文件操作,开发者可以读取、写入、删除和修改文件,这是实现数据存储和管理的基础篇章。本篇文章将详细探讨PHP语言中各种文件操作的基本方法和实践,主要包括文件的打开、读取、写入、关闭及其它相关操作。

2501_90356399的博客 518

点到面点云配准(Point To Plane)算法知识详解和详细推导,C++代码实现

点到面 ICP (Iterative Closest Point) 是在 3D 点云配准中常见的一种变体,通过最小化点到对应面(由法向量定义的局部平面)的距离来提高收敛速度和精度。

qq_36812406的博客 1809

php 文件操作 实例,PHP文件操作实例总结

本文实例总结了PHP文件操作。分享给大家供大家参考,具体如下:操作文件的常用方法:flie_put_contents(url,str);file_get_contents(url);$str = time();$path = './time.txt';echo '';file_put_contents($path,$str);echo file_get_contents($path);echo '...

weixin_29176179的博客 135

[DDR5] 模式寄存器 Mode Register MRR/MRW

模式寄存器用于定义各种操作模式。在初始化过程中,可以通过重新执行MRS命令来更改模式寄存器的内容。

串起点滴 1637

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

PHP之文件操作

文件操作 1、将字符串写入文件 <?php $str="床前明月光,\r\n 疑是地上霜。\r\n 举头望明月,\r\n 低头思故乡。"; file_put_contents('./test.txt',$str);//将字符串写到文本中 小结: 1)所有的"写"操作都是清空重写 2)在文本中换行是\r\n \r:回车 光标移动到当前行的最前面 \n:换行 将光标下移动一行 按键盘的回车键做了两步,第一步将光标移动到当前行的最前面,第二步下移一行 3)\r\n是特殊字符,必须放在双引号内 2、将整个

蛊殇的博客 1093

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

PHP中的文件操作有哪些方法?

在PHP中,文件操作是一个非常重要的功能,它允许开发者对文件进行读取、写入、删除、创建和管理等操作。fopen()fread()fgets()file()fwrite()fclose()unlink()rename()mkdir()rmdir()scandir()chmod()basename()dirname()filesize()filetype()stat()这些方法涵盖了PHP中常见的文件操作需求,开发者可以根据具体需求选择合适的函数进行文件操作。

破损的天堂鸟博客 1007

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

PHP的文件操作

当使用PHP进行文件操作时,你可以执行各种任务,如读取文件内容、写入文件、创建文件、删除文件等。

apixixi的博客 779

php文件操作的总结

PHP中对各类的操作有着支持,对文件的操作也同样有着很丰富的操作方法,很多朋友现在的操作还是基于文件操作可是有的时候在操作文件的时候还存在不少的困惑和疑点,以下是我在日常编写过程中碰到的以及坛上朋友所碰到的关于文件操作的一些问题收藏吧。 问:如何新建一个文件? 答:1、使用fopen,参数可选 w,w+,a,a+ 2、使用exec;这样是使用系统方式建立这个文件,你还

fashion_luo的专栏 581

php文件操作是干嘛的,php文件操作的方法

这篇文章主要介绍了关于php文件操作的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下php文件操作一、在学习php文件操作之前,让我们先来了解一下这几个常用的文件操作函数。1. is_dir()意思是:判断给定文件名是否是一个目录2. is_file()意思是:判断文件是否存在3. mkdir()意思是:创建目录4. rmdir()意思是:删除目录5. unlink(...

weixin_33958871的博客 120

文件操作php,PHP 文件操作

在处理文件内容之前,通常需要创建所谓的句柄。结束该文件的操作之后,应当销毁该句柄。将数据写入一个文件中,一般有一下3步操作:1)打开文件。如果文件不存在,则需要先创建文件。 2)将数据写入文件。3)关闭文件从一个文件中读取数据,也需要三步操作:1)打开文件。如果文件不能打开,就应该正确的退出。2)从文件中读取数据。 3)关闭文件fopen()函数,一般需要传递2~4个参数。通常使用2个参数,第一个...

weixin_42627459的博客 144
下一篇: PHPSTROM Xdebug 安装
codeDig
博客等级 码龄10年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值