admin 管理员组

文章数量: 1184232

使用情况

if(isset($_GET['file'])){
    $file = $_GET['file'];
    $file = str_replace("php", "???", $file);
    $file = str_replace("data", "???", $file);
    $file = str_replace(":", "???", $file);
    $file = str_replace(".", "???", $file);
    include($file);
}else{
    highlight_file(__FILE__);
}

比如这题,禁用了php和data,显然打不了伪协议,

点也被禁了,正常的包含文件基本不可能了

那么这里就用到了session临时文件包含了

什么是session临时文件

PHP_SESSION_UPLOAD_PROGRESS 开启时,我们可以通过这个PHP_SESSION_UPLOAD_PROGRESS查看我们文件上传的进度,并且,他的值我们是可控的,在我们上传文件的过程中,PHP_SESSION_UPLOAD_PROGRESS的内容会以一个临时文件的方式保存,而这个临时文件的名称我们也是可控的,他存放在tmp目录下,路径为

/tmp/sess_???

其中???是我们的设置的PHPSESSID的值,因为cookie的值我们是可以自定义的,所以该临时文件的文件名也是我们可控的

该文件的内容的形式为

upload_progress_xxxxxx;|a:5{s:10:"start_time";i:1743699018;s:14:"content_length";i:406;s:15:"bytes_processed";i:406;s:4:"done";b:0;s:5:"files";a:1:{i:0;a:

本文标签: 的核心作 时文件的 编程