当前位置: 首页 > article >正文

文件包含之session.upload_progress的使用

目录

原理

环境搭建

渗透

结果


一次项目经历复现

原理

session.auto_start顾名思义,如果开启这个选项,则PHP在接收请求的时候会自动初始化Session,不再需要执行session_start()。但默认情况下,也是通常情况下,这个选项都是关闭的。

session.upload_progress最初是PHP为上传进度条设计的一个功能,在上传文件较大的情况下,PHP将进行流式上传,并将进度信息放在Session中(包含用户可控的值),即使此时用户没有初始化Session,PHP也会自动初始化Session。

默认情况session.upload_progress.enabled是开启的

然后我们上传在这个字段PHP_SESSION_UPLOAD_PRORESS下面,然后一旦有这个字段php会认为你是要做一个 进度条的上传这样就会自动生成一个session文件,session文件的内容是你的上传内容和PHP_SESSION_UPLOAD_PRORESS字段对应的值,然后我们就可以包含了。然后由于session.upload_progress.cleanup是1默认开启的,你上传完成以后文件会马上删掉。

环境搭建

文件上传

<html>
<body>

<form action="2024_8_28_1.php" method="post"
      enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file" />
    <br />
    <input type="submit" name="upload" value="upload" />
</form>

</body>
</html>

文件包含

<?php
include $_REQUEST['file'];

渗透

如下抓包,添加字段cookie,然后在上传文件的时候整一个PHP_SESSION_UPLOAD_PRORESS字段,这样在session文件中就会你刚刚设置的cookie的session名字的session文件

session文件,这个文件是空的原因就是session.upload_progress.cleanup是开启的,所以上传以后里面的内容被删除掉了

如何继续包含,我们在没有删除的时候进行竞争,可以使用bp爆破抓包,两个线程一起竞争,一边上传session,一边包含

结果

包含成功 


http://www.kler.cn/a/281967.html

相关文章:

  • Docker: ubuntu系统下Docker的安装
  • 【大语言模型】ACL2024论文-16 基于地图制图的罗马尼亚自然语言推理语料库的新型课程学习方法
  • 性能超越Spark 13.3 倍,比某MPP整体快数十秒 | 多项性能指标数倍于主流开源引擎 | 云器科技发布性能测试报告
  • 基于Java和Vue实现的上门做饭系统上门做饭软件厨师上门app
  • <项目代码>YOLOv8 番茄识别<目标检测>
  • dns服务器
  • IO进程day05(线程、同步、互斥、条件变量、进程间通信IPC)
  • pypcap、libpcap和pcap-ct的区别是什么
  • ShenNiusModularity项目源码学习(2:登录页面验证码)
  • 前端面试手撕题收集(自用)
  • 推荐2024年新手友好的4款音乐剪辑软件!
  • nginx实验
  • C语言文件相关函数
  • 分库分表学习笔记(二)
  • RabbitMQ实战-JavaDemo
  • 盘古信息IMS MCM制造协同管理系统:为中小企业数字化转型量身打造的数字化方案
  • mysql-day02
  • 【C++ | 设计模式】抽象工厂模式的详解与实现
  • minio 大视频观看,下载
  • 【Datawhale AI夏令营】从零上手CV竞赛Task2
  • 025.指纹浏览器-WebGPU指纹+出售成品
  • git-命名规范
  • GPT应用-如何用GPT4.0写一份专业的ppt
  • vue全局参数
  • upload-labs(Pass-18 ~ Pass-21)
  • 0x03 ShowDoc 文件上传漏洞(CNVD-2020-26585)复现