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

进入题目,给出源码:

image-20211006152930207

posted @ 2022-02-06 17:05  kzd的前沿思考  阅读(172)  评论(0编辑  收藏  举报