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

【php反序列化介绍与常见触发方法】

命令执行函数

请添加图片描述

__call和__wakeup问题

__call

请添加图片描述
看个例题:

<?phpclass Flag{public $file;function __construct() {$this -> file = "hello.php";}public function test() {return file_get_contents($this -> file);}
}class User {public $username = "admin";public $func;public function __call($name, $args) {echo $this -> func -> $name();}
}if (isset($_GET['a'])) {$a = unserialize($_GET['a']);$a->test();
} else {highlight_file(__FILE__);
}

__call方法,__call方法是当调用了对象中的不存在的方法导致的,这里就是调用了test方法导致的,User对象中并没有test方法,这里只需要把User->func设置成为Flag对象就能通过__call方法去调用到它的test方法

先把有的类复制下来,其他用不到的可以省略掉,hello.php改成/flag,因为一般flag都在根目录下:
请添加图片描述
这里的$a -> func = $b;把a的$func属性指向Flag,那么当test函数不存在执行__call时

__call($name, $args)中的name是"test",因为func = b,所以$this->func->test(),执行的是$this->Flag->test()

请添加图片描述
完整 payload

class Flag{public $file;function __construct() {$this -> file = "hello.php";}public function test() {return file_get_contents($this -> file);}
}class User {public $username = "admin";public $func;public function __call($name, $args) {echo $this -> func -> $name();}
}$a = new 
http://www.dtcms.com/a/334011.html

相关文章:

  • Houdini Vop学习笔记
  • 测试工程师的AI转型指南:从工具使用到测试策略重构
  • TDengine IDMP 高级功能(4. 元素引用)
  • OpenAI TTS API + Web 前端 AudioContext 实战方案
  • 【Web后端】Django、flask及其场景——以构建系统原型为例
  • 《深度解构:构建浏览器端Redis控制台的WebSocket协议核心技术》
  • Protues使用说明及Protues与Keil联合仿真实现点亮小灯和流水灯
  • 【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
  • C#WPF实战出真汁08--【消费开单】--餐桌面板展示
  • C语言基础:(十五)深入理解指针(5)
  • 数据清洗:数据处理的基石
  • 【C++】异常详解(万字解读)
  • 【lubancat】鲁班猫4实现开机后自动播放视频
  • MySQL查询性能慢时索引失效的排查与优化实践
  • AI驱动的性能测试:如何用机器学习预测系统瓶颈?
  • 开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载
  • 储能领域大数据平台的设计中如何使用 Hadoop、Spark、Flink 等组件实现数据采集、清洗、存储及实时 / 离线计算,支持储能系统分析与预测
  • 三天速通 Vue+Flask+SQLite 项目+阿里云轻量应用级服务器【宝塔面板】②
  • IO流与单例模式
  • java项目怎么实现用户行为分析、漏斗转化、数据可视化报表。
  • 奈飞工厂 —— 算法优化实战推荐
  • QT基础入门
  • AI热点周报(8.10~8.16):AI界“冰火两重天“,GPT-5陷入热议,DeepSeek R2模型训练受阻?
  • SpringBoot学习日记(九)
  • uv - 基本使用
  • 【LeetCode 热题 100】70. 爬楼梯——(解法二)自底向上
  • [1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络
  • 双指针-leetcode算法题总结+练习
  • Ubuntu2204server系统安装后的初始化配置报错
  • Windows 基于ACL(访问控制列表)的权限管理