Session会话之文件包含
简介
Session文件包含,实质就是SESSION_UPLOAD_PROGRESS 的利用
Session Upload Progress 即 Session 上传进度,是php>=5.4后开始添加的一个特性。官网对他的描述是当 session.upload_progress.enabled
选项开启时(默认开启),PHP 能够在每一个文件上传时 监测上传进度。这个信息对上传请求自身并没有什么帮助,但在文件上传时应用可以发送一个POST请求到终端(例如通过XHR)来检查这个状态。
- 相关的配置
session.upload_progress.enabled = on #可以控制是否开启session.upload_progress功能
session.upload_progress.cleanup = on #可以控制是否在上传之后删除文件内容
session.upload_progress.prefix = "upload_progress_" #可以设置上传文件内容的前缀
session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" #即为session中的键值
session.auto_start:
如果开启这个选项,则PHP在接收请求的时候会自动初始化Session,不再需要执行session_start()。但默认情况下,也是通常情况下,这个选项都是默认关闭的。
session.upload_progress.cleanup = on:
表示当文件上传结束后,php将会立即清空对应session文件中的内容。该选项默认开启
session.use_strict_mode:默认情况下,该选项的值是0,此时用户可以自己定义Session ID。
session.upload_progress开启之后会有什么效果?
当我们将session.upload_progress.enabled
的值设置为on时,此时我们再往服务器中上传一个文件时,PHP会把该文件的详细信息(如上传时间、上传进度等)存储在session当中。
Session Upload Progress 最初是PHP为上传进度条设计的一个功能,在上传文件较大的情况下,PHP将进行流式上传,并将进度信息放在Session中,此时即使用户没有初始化Session,PHP也会自动初始化Session。而且,默认情况下session.upload_progress.enabled是为On的,也就是说这个特性默认开启。所以,我们可以通过这个特性来在目标主机上初始化Session。
例题--[WMCTF2020]Make PHP Great Again
进入题目,给出源码:
本文来自博客园,作者:kzd的前沿思考,转载请注明原文链接:https://www.cnblogs.com/Fram3/p/15865914.html