PHP反序列化漏洞-字符串逃逸

字符串逃逸(闭合)

字符串逃逸(闭合)是一种在反序列化函数可控的情况下,通过修改序列化字符串中的敏感字符来达到字符串逃逸的方法。具体而言,可以通过修改变量名等个数,使得序列化字符串中的字符个数与实际变量值个数不一致。由于反序列化机制要求字符串长度必须满足一定条件,因此可以通过构造增加或减少字符的方式来实现字符串逃逸。这种方法可以分为两种情况:1. 序列化字符串变长增加;2. 序列化字符串变短减少。

原理:是在序列化字符串之后追加任意字符串,这样不会影响反序列化的进行。通过修改序列化字符串中的敏感字符,可以绕过一些安全检查和限制,从而实现字符串逃逸。

正常序列化

<?php
$a[]='ping';
$b = serialize($a);
print_r($b);

// 输出:a:1:{i:0;s:4:"ping";}
?>

反序列化示例

<?php
// 正常序列化
//$a[]='ping';
//$b = serialize($a);
//print_r($b);

// 输出:a:1:{i:0;s:4:"ping";}

//$str ='a:1:{i:0;s:4:"ping";}';           // a[]=ping
//$str ='a:1:{i:0;s:4:"ping";}";}123';      // a[]=ping
//$str

相关推荐

  1. PHP序列漏洞-字符串逃逸

    2024-01-21 17:28:01       49 阅读
  2. PHP 序列字符串逃逸

    2024-01-21 17:28:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-21 17:28:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-21 17:28:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-21 17:28:01       82 阅读
  4. Python语言-面向对象

    2024-01-21 17:28:01       91 阅读

热门阅读

  1. 蜜罐系统(安全产品)

    2024-01-21 17:28:01       58 阅读
  2. LeetCode 2744.最大字符串配对数目:哈希表

    2024-01-21 17:28:01       58 阅读
  3. DT浏览器也有人工智能写作功能

    2024-01-21 17:28:01       50 阅读
  4. clickhouse 代替 es 如何对文档做模糊查询?

    2024-01-21 17:28:01       46 阅读
  5. 随笔记录的一些思路1

    2024-01-21 17:28:01       38 阅读
  6. Golang杀死子进程的三种方式

    2024-01-21 17:28:01       47 阅读
  7. 907. Sum of Subarray Minimums

    2024-01-21 17:28:01       55 阅读
  8. AI绘画认识

    2024-01-21 17:28:01       49 阅读