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

【php反序列化字符串逃逸】

反序列化字符串逃逸原理

原理

请添加图片描述
就会报错
请添加图片描述

可以反序列化类中不存在的元素

<?php
class user{public $name;public $age;
}
$b='O:4:"user":3:{s:4:"name";s:3:"bob";s:3:"age";s:2:"10";s:6:"gender";s:3:"boy";}';
print_r(unserialize($b));

得到的结果,多了一个boy

user Object
([name] => bob[age] => 10[gender] => boy
)

PHP 在反序列化时,底层代码是以 ; 作为字段的分隔,以 } 作为结尾(字符串除外),并且是根据长度判断内容的

O:4:"user":3:{s:4:"name";s:3:"bob";s:3:"age";s:2:"10";s:6:"gender";s:3:"boy";}s:6:"gender";s:4:"boy";

这是不会报错的,但是也不会进行反序列化。结果依然不变。

}后面的序列化内容不影响

请添加图片描述
我们在结尾加任何字符都是不会报错的,通过这两个原理看到下面的demo:

请添加图片描述
filter就是把序列化后的一个b替换成两个a ,这里会输出原始序列化和替换后的序列化,最后是反序列化,输出如下:

请添加图片描述
经过了filter的处理 因为ydsaa长度为5不为4,所以反序列化的时候报错了,之前我们知道php是通过;}来识别序列化长度的,只需要把username后面添加;} 让它提前闭合
请添加图片描述
再把变量名的数量更改了,因为我们上图的变量名长度只有3,但实际传入了18,得补足变量名长度就能成功把后面的age变量给修改了
请添加图片描述

练习一

发现了www.zip源码,主要的问题出在login.php
请添加图片描述
login.php

<?phpinclude 'function.php';
$config =  include_once 'config.php';$username = $_POST['username'];
$password = $_POST['password'];
$sql = $_POST['sql'];$login = new 
http://www.dtcms.com/a/360770.html

相关文章:

  • word运行时错误‘53’,文件未找到:MathPage.WLL,更改加载项路径完美解决
  • Android原生HttpURLConnection上传图片方案
  • mysql导出csv中字段里有换行符的处理办法及hive导出处理办法
  • 印度数据源 Java 对接文档
  • 【DeepSeek】蓝耘元生代 | 蓝耘MaaS平台与DeepSeek-V3.1重构智能应用开发
  • 打造智能写作工作流:n8n + 蓝耘MaaS平台完整实战指南
  • 20.30 QLoRA微调终极指南:Hugging Face参数优化实战,24GB显存直降50%性能不减
  • linux centos 忘记开机密码,重置root密码的两种方式
  • 【C++】类型转换详解:显式与隐式转换的艺术
  • MySQL 慢查询 debug:索引没生效的三重陷阱
  • 【STM32】状态机(State Machine)
  • 力扣每日一刷Day 19
  • RK3399内核驱动实战:获取设备号控制LED的四种方法(由浅入深、代码注释详尽)
  • 【CMake】Ctest,Cpack
  • 电子电气架构 --- 智能电动车EEA电子电气架构(上)
  • Linux | 走进网络世界:MAC、IP 与通信的那些事
  • 【macOS】垃圾箱中文件无法清理的--特殊方法
  • 深度学习跨领域应用探索:从技术落地到行业变革
  • 华为eNSP防火墙综合网络结构训练.docx
  • npm 打包上传命令,撤销错误版本
  • 山东省信息技术应用创新开展进程(一)
  • 设计模式13-迭代器模式
  • OS+MySQL+(其他)八股小记
  • 【lucene】 中的impactsenum与impactsdisi有啥区别?
  • 开源npm引导guide组件
  • 基于.NET Framework 4.0的FTP文件传输类
  • 基于Hadoop的可视化城市宜居指数分析(代码+数据库+LW)
  • 【macOS】垃圾箱中文件无法清理的常规方法
  • Mac上如何安装mysql
  • MIT 6.5840 (Spring, 2024) 通关指南——Lab 2: Key/Value Server