当前位置: 首页 > 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.xdnf.cn/news/1308511.html

相关文章:

  • Bash常用操作总结
  • 9.从零开始写LINUX内核——设置中断描述符表
  • RK3568 NPU RKNN(五):RKNN-ToolKit-lite2板端推理
  • linux I2C核心、总线与设备驱动
  • Dify实战应用指南(上传需求稿生成测试用例)
  • 守护品质安全,防伪溯源系统打造全链路信任体系
  • MySQL异步连接池的学习(五)
  • 海康机器人3D相机的应用
  • Docker目录的迁移
  • OpenCV Python——图像拼接(一)(图像拼接原理、基础知识、单应性矩阵 + 图像变换 + 拼接)
  • Python爬虫实战:研究Scrapy Spiders ,构建豆瓣网电影数据分析处理系统
  • CSV 生成 Gantt 甘特图
  • aws(学习笔记第五十一课) ECS集中练习(3)
  • 初识c语言————宏定义和调用
  • Trae中`settings.json`文件的Java配置项功能详解(一)
  • 云原生俱乐部-RH124知识点总结(1)
  • 安卓11 12系统修改定制化_____列举与安卓 9、10 系统在定制化方面的差异与权限不同
  • 【科普向-第一篇】数字钥匙生态全景:手机厂商、车厂与协议之争
  • Flutter Provider 模式实现:基于 InheritedWidget 的状态管理实现
  • 矩阵链相乘的最少乘法次数(动态规划解法)
  • 开源 Arkts 鸿蒙应用 开发(十七)通讯--http多文件下载
  • bilibili视频总结
  • RK3568 NPU RKNN(一):概念理清
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)
  • 10-verilog的EEPROM驱动-单字节读写
  • 罗技MX Anywhere 2S鼠标修复记录
  • 多机编队——(6)解决机器人跟踪过程中mpc控制转圈问题
  • AT89C52单片机介绍
  • CVE-2024-28752漏洞复现
  • mysql一启动就挂的解决