首页 > 编程语言 >php反序列化——字符逃逸增加

php反序列化——字符逃逸增加

时间:2024-04-01 17:22:06浏览次数:24  
标签:123456 20 逃逸 个字符 一致 aaaaa 序列化 php

题目

 放到本地环境

 发现是这种情况:a:2:{i:0;s:1:"x";i:1;s:5:"aaaaa";}

分成两部分: a:2:{i:0;s:1:"x                           ";i:1;s:5:"aaaaa";}

现在需要做的就是自己构造第二部分:   ";i:1;s:6:"123456";}   一共20个字符

经过preg_replace函数  x->yy    增加1个字符

所以需要填入20个x,对应上面构造的20个字符 ( ";i:1;s:6:"123456";})

payload:xxxxxxxxxxxxxxxxxxxx";i:1;s:6:"123456";}

本地看看效果

 

 可以发现aaaaa已经变成了123456了

提交

 

 总结:

1、先本地环境打印出用到的变量,看看什么形式

2、从这个形式中分开,也就是找到要构造的那个变量(";i:1;s:5:"aaaaa";}),加上 "; 进行闭合前面的变量 

3、最后加上 ";}  闭合构造的变量,使得后面的内容失效。

失效的原因是:反序列化是以这个;}来作为结束标志的,但也不完全是,前提是前面的成员属性数量一致,成员属性名称长度一致,内容长度一致,只有在这个前提之下,;}才会被当作结束的标志

而我们前面已经满足了成员属性数量一致,成员属性名称长度一致,内容长度一致。

 

标签:123456,20,逃逸,个字符,一致,aaaaa,序列化,php
From: https://www.cnblogs.com/xjrycd/p/18108955

相关文章

  • php采用aes算法,字符编码utf8,填充模式ECB,填充:ZeroPadding,编码:base64,实现加密
    原文:https://blog.csdn.net/yinxinyue0621/article/details/129813334一、php:三种填充模式的区别(PKCS7Padding/PKCS5Padding/ZeroPadding)(一)常见的三种填充方式:我们知道某些加密算法要求明文需要按一定长度对齐,叫做块大小(BlockSize),比如16字节,那么对于一段任意的数据,加密前需要......
  • 如何使用PHP和Redis实现消息队列功能?
    前言今天,我们继续讲消息队列,如何使用Redis实现消息队列的功能。前期准备,需要安装好docker、docker-compose的运行环境。PHP的项目运行环境可以参考下面的文章内容。如何使用docker部署php服务-CSDN博客前面我们也讲了PHP和RabbitMQ实现消息队列的功能,感兴趣的可以查看下面......
  • 为什么需要php.ini?
    首先,我们得知道PHP是一种编程语言,它可以让网页变得更加动态和有趣。比如,你可以用PHP来创建一个显示“欢迎光临!”的网页,或者制作一个能够计算两个数字相加结果的小工具。那么,php.ini文件是什么呢?它其实就像是PHP语言的一个“设置手册”。在这个手册里,你可以告诉PHP应该怎么去工......
  • PhpStorm安装和破解
    PhpStorm安装和破解安装包获取方式:(关注公众号:爬虫探索者)发送phpstorm获取。解压安装包具体安装方法可以参考操作方法类似,如果有需要的软件,可以评论软件名称,我可以分享一下。pycharm安装和破解......
  • PHP代码审计——Day1-Wish List
    前言:发现红日安全代码审计小组写了关于php代码审计demo的系列文章,于是跟着一起学习。参考:[红日安全]代码审计Day1-in_array函数缺陷RIPS-PHP-SECURITY-CALENDAR-2017学习记录漏洞解析classChallenge{constUPLOAD_DIRECTORY='./solutions/';private$file;priv......
  • 设计模式,装修模式,Php代码演示,优缺点,注意事项
    装饰模式(DecoratorPattern)是一种结构型设计模式,它允许动态地向一个现有对象添加新的功能或行为,而不改变其原始结构。在PHP中,可以使用类的继承和组合来实现装饰模式。下面是一个简单的PHP装饰模式示例代码:首先,定义一个基类`Component`,它代表要装饰的对象:```phpabstract......
  • 什么时候使用静态方法,面向对象编程,设计模式,php编程
    静态方法在编程中有多种适用情况,以下是一些常见的使用场景:1.**工具类或辅助函数**:当你需要创建一个类来提供一些与类本身的实例无关的工具方法或辅助函数时,静态方法是很合适的。这些方法可以直接通过类名来调用,而无需创建类的实例。2.**计算或常量**:如果有一些计算或常量与......
  • JDBC反序列化分析
    环境依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.19</version></dependency>原理分析Java序列化对象的标识符找两个序列化后的bin文件,进行对比,可以发现前两个字节是固定的AC, ED,变十进制就是-......
  • 「PHP系列」PHP 常量/字符串、类型比较
    文章目录一、PHP常量1.定义常量使用`define()`函数使用`const`关键字(在类内部)2.访问常量3.常量的特点4.注意事项5.示例二、PHP字符串1.定义字符串使用单引号使用双引号使用heredoc和nowdoc2.字符串操作字符串连接字符串长度字符串替换字符串查找字符串......
  • 织梦地方php分类信息源码带数据库【附下载】
    织梦地方(DedeCMS)是一款基于PHP+MySQL技术的开源内容管理系统(CMS)。它以其强大的功能、灵活的扩展性和友好的用户界面,成为了众多网站建设者的首选。在功能方面,织梦地方CMS提供了丰富的模板标签和灵活的栏目管理,使得用户可以轻松实现各类信息的发布、管理和展示。无论是新闻资讯......