最近有点忙,有空学习一下 感觉似懂非懂,今晚来刷个题,验证一下我的一些想法

入口:http://web.jarvisoj.com:32784/index.php?

是一个反序列化的题,源码中

只是判断是否set了phpinfo 如果有就输出phpinfo,所以说这是关于session的题

session反序列化漏洞的原理网上有,总结一下就是两次处理会话的session引擎不同,一个是php 一个是php serialize,而session_start()函数的定义如下:

就是如果存在现有会话,就重用,而重用的方式是从默认的session存储文件里将数据反序列化得出,如果存储使用php serialize 而反序列化取回数据用的是php 那这就导致了问题

接着题目讲,题目中没有给出写入session 的方法,这就很尴尬了。。看了前辈的wp ,原来有个叫session 上传进度的东西

当PHP检测到同名post请求 就会再$_SESSION中添加一条数据 看来就是用这个来写session的

那就搞一个文件上传的同时再post一个请求:

将filename 改成 poc

poc 得到

,得到当前目录信息

这里为什么改filename的值,不改其他的值,开始我也不太懂 后来查了PHP手册,

例子中上传的是两个文件,如果一个文件的化,就能看出了,filename的键值对被写进入了 所以这里修改的是filename的值

再说下这个poc ,查看phpinfo得知

前面是local 后面是master

一开始上传session那个地方是使用php_serialize的,后来执行php的脚本,就变成了php的引擎 ,再重用上传的会话,用php引擎反序列化后,就会导致了问题 ,这是我的理解

讲下poc ,就是php_serialize引擎在处理session时会识别 | 这个字符,但是php引擎则会把 |

当成键值对的分隔符,所以用phpserialize处理过的session来给php反序列,就会得到问题,具体在这里体现就是实例化了一个类,完了又自动调用__destruct,,具体原理可以百度,很多前辈都写了

|O:5:"OowoO":1:{s:4:"mdzz";s:36:"print_r(scandir(dirname(__FILE__)));";} (为了防止"被转义 加了)

这个 | 后面,用php引擎解释实际上就是new OowoO() ,print_r(scandir(dirname(__FILE__)))就是mdzz 玛德智障吗 哈哈 为什么不用system ,因为disable了

后面还有,没截到

查到了当前目录的flag文件,接下来就是换命令了,当前目录在哪

当前目录

整个流程补完

在如何写入session 和调用session 那地方感觉还是一知半解,总结就是抠脚

http路径转file会变成反斜杠_PHP session反序列化漏洞相关推荐

  1. Unity Android 路径下的斜杆和反斜杠

    当在Unity Editor 中使用斜杆和反斜杆来表示路径时,这两者似乎没有什么区别. 但当使用C#的IO类如Path.GetFileNameWithoutExtension()在android上会使 ...

  2. java文件路径中的两个反斜杠“\\“是什么意思

    java的文件路径怎么写-Java基础-PHP中文网

  3. C++中相对路径与绝对路径以及斜杠与反斜杠的区别 及 处理代码

    转载自:http://blog.csdn.net/sszgg2006/article/details/8447176 文件路径正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/":反斜 ...

  4. 【C++】相对路径与绝对路径以及斜杠与反斜杠的区别

    本文来自:链接 正斜杠,又称左斜杠,符号是"/":反斜杠,也称右斜杠,符号是"\".文件路径的表示可以分为绝对路径和相对路径: 1.绝对路径表示相对容易,例如 ...

  5. C++中相对路径与绝对路径以及斜杠与反斜杠的区别

    文件路径正斜杠和反斜杠 原文http://blog.csdn.net/sszgg2006/article/details/8447176 正斜杠,又称左斜杠,符号是"/":反斜杠, ...

  6. 路径中斜杠和反斜杠的用法

    路径中斜杠和反斜杠的用法 Unix使用斜杆/ 作为路径分隔符,而web应用最新使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符. Windows由于使用 斜杆/ 作为DOS命令 ...

  7. 文件路径 正斜杠和反斜杠

    文件路径 正斜杠和反斜杠 正斜杠,又称左斜杠,符号是"/":反斜杠,也称右斜杠,符号是"\".文件路径的表示可以分为绝对路径和相对路径: 1.绝对路径表示相对容 ...

  8. Qt处理路径里的斜杠和反斜杠

    最早的unix操作系统,文件路径都是用斜杠,也就是"/",linux参考unix开发,路径也是用斜杠分割.后来windows源于DOS,DOS里斜杠已经用于命令行参数标识了,于是用 ...

  9. [Asp.net]c#中的斜杠和反斜杠

    引言 在外地出差,给客户部署项目,三家做的项目要在一起集成,这就造成数据格式不同,路径中的斜杠和反斜杠造成了很大的问题. 查了一下这方面的资料,这里做一些记录,算是一个小结吧. 正斜杠(/)与反斜杠( ...

最新文章

  1. 数据结构与算法:13 字符串与整数集合
  2. Java动态代理与Cglib代理
  3. 财务用计算机可以一次摊销,购入的电脑可以一次性计提折旧吗
  4. 【控制】《多无人机协同控制技术》周伟老师-第2章-多无人机协同控制体系结构
  5. 租房还是买房结婚?大数据告诉你年轻人的真实想法
  6. Tesseract图形识别软件的安装
  7. nginx和apache的伪静态区别
  8. 求职产品经理【十六】笔试真题串讲之百度地图与大数据结合的产品
  9. 二分法:两个有序数组长度为N,找到第N、N+1大的数
  10. 数据库杂谈(二)——数据模型
  11. git 拉取远端仓库_git命令-远程仓库拉取、本地仓库更新、工作空间提交等等
  12. [18/11/23]面向对象和面向过程
  13. 什么才是一份好的AI求职简历?
  14. 【CCCC】L3-010 是否完全二叉搜索树 (30分),完全二叉树判断+层次遍历(奇怪的方法)
  15. 论模式在领域驱动设计中的重要性
  16. Unity3D面试题汇总
  17. 如何查询淘宝天猫的宝贝类目
  18. Android6.0 camera个数探测
  19. ubuntu报错 E:无法定位软件包
  20. POJO类中属性必须使用包装数据类型

热门文章

  1. redhat搭建NIS服务器
  2. DataGrid Web Control 连载之九
  3. SDN控制器是这样工作的
  4. 模拟信号与数字信号之间的差异与比较—Vecloud微云
  5. IPv4如何向IPv6过渡?—Vecloud微云
  6. 手把手教你安装Flutter(Flutter起步之安装)
  7. python读取word文档
  8. P1133 教主的花园
  9. 【BZOJ-2668】交换棋子 最小费用最大流
  10. 利用velocity.js将svg动起来