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

PHP反序列化3(属性绕过)

考点3:私有属性绕过+十六进制绕过

<aside> 💡

十六进制绕过

</aside>

大写 S模式下,字符可以用/和十六进制表示。%00即chr(0)就可以用\00表示。

<aside> 💡

部分例题

</aside>

 <?php

highlight_file(__FILE__);

class FileHandler {

    protected $op;
    protected $filename;
    protected $content;
............
............
............
function is_valid($s) {
    for($i = 0; $i < strlen($s); $i++)
        if(!(ord($s[$i]) >= 32 && ord($s[$i]) <= 125))
            return false;
    return true;
}

构造payload:

<?php
class FileHandler {

   protected  $op = 2;
   protected  $filename = "/flag";
   protected  $content = "aaa";
}

function is_valid($s) {
    for($i = 0; $i < strlen($s); $i++)
        if(!(ord($s[$i]) >= 32 && ord($s[$i]) <= 125))
            return false;
    return true;
}

$a = new FileHandler();
$b = serialize($a);
$b=str_replace(chr(0), '\\00', $b);
$b=str_replace('s:5', 'S:5', $b);
$b=str_replace('s:11', 'S:11', $b);
$b=str_replace('s:10', 'S:10', $b);
echo $b;


http://www.kler.cn/news/328544.html

相关文章:

  • 《PMI-PBA认证与商业分析实战精析》 第3章 需要评估
  • Typora使用与Markdown语法详细教程
  • 在Windows上安装Git
  • go+redis基于tcp实现聊天室
  • 8--苍穹外卖-SpringBoot项目中套餐管理 详解(二)
  • XR图和XS图中X-bar图的最大不同
  • uniapp 常用高度状态栏,导航栏,tab栏,底部安全高度
  • C++ 游戏开发
  • Docker 安装 Citus 单节点集群:全面指南与详细操作
  • Linux 文件目录结构(详细)
  • 【PostgreSQL】入门篇——如何创建、删除和管理数据库及其用户,包括权限设置和角色管理
  • OSPF路由计算
  • 滑动窗口->dd爱框框
  • Elasticsearch学习笔记(3)
  • Service Mesh
  • Java | Leetcode Java题解之第450题删除二叉搜索树中的节点
  • Arduino UNO R3自学笔记7 之 Arduino使用PWM电机调速
  • 服务器数据恢复—存储映射到服务器上的卷无法挂载的数据恢复案例
  • DC00025【含论文】基于协同过滤推荐算法springboot视频推荐管理系统
  • 使用Yasboot安装YashanDB的疑惑和建议
  • 进阶数据库系列(十三):PostgreSQL 分区分表
  • SolidWorks机器转ROS2 URDF
  • Linux下send函数和recv函数
  • AWS Redshift把老用户权限赋予新用户
  • 201 Created
  • 如何在Windows、Mac和Linux系统上安装和更新Stable Diffusion WebUI
  • Spark SQL分析层优化
  • 中国电信解锁万亿参数大模型:TeleAI的创新与突破
  • Docker镜像命令和容器命令
  • 《征服数据结构》哈夫曼树(Huffman Tree)