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

无锡建站模板系统德宏北京网站建设

无锡建站模板系统,德宏北京网站建设,东莞做网站哪个公司好,青岛君哲网站建设公司怎么样文章目录 1、序列化与反序列化1.1、引入1.2、序列化实例1.2.1、定义一个类1.2.2、创建 对象1.2.3、反序列化1.2.4、对象注入 2、漏洞何在2.1、漏洞触发2.1.2、定义一个类2.1.3、定义一个对象2.1.3、反序列化执行代码 2.2 为什么会这样 3、反序列化漏洞攻防3.1、PHP反序列化实例… 文章目录 1、序列化与反序列化1.1、引入1.2、序列化实例1.2.1、定义一个类1.2.2、创建 对象1.2.3、反序列化1.2.4、对象注入 2、漏洞何在2.1、漏洞触发2.1.2、定义一个类2.1.3、定义一个对象2.1.3、反序列化执行代码 2.2 为什么会这样 3、反序列化漏洞攻防3.1、PHP反序列化实例3.2、Java反序列化实例3.3、反序列化漏洞防御 为什么要序列化 序列化“将对象的状态信息转换为可以存储或传输的形式的过程”这种形式⼤多为字节流、字符串、json 串。在序列化期间内将对象当前状态写⼊到临时或永久性的存储区。以后就可以通过从存储区中读取或还原反序列化对象的状态重新创建该对象。简单的说序列化就是把⼀个对象变成可以传输的字符串可以以特定的格式在进程之间跨平台安全的进⾏通信。 1、序列化与反序列化 以PHP 语⾔为例 1.1、引入 JSON 数据是数据的⼀种表达形式与Python ⾥的字典类似 ?php // json.php $stu array(name JayChou,age 18,sex true,score 89.9 ); // echo $stu; // var_dump($stu); $stu_json json_encode($stu); echo $stu_json; echo hr /; $stu_json isset($_GET[stu])?$_GET[stu]:$stu_json; $stu json_decode($stu_json); var_dump($stu); ?验证 ?stu{name:jaychou,age:19,sex:true,score:89.9}1.2、序列化实例 1.2.1、定义一个类 ?php// stu.class.phpclass Stu{public $name;public $age;public $sex;public $score;} ?1.2.2、创建 对象 创建⼀个对象并对该对象进⾏序列化操作将对象转化为可以存储、传输的字符串 ?php //serialize.php include ./stu.class.php;$stu1 new Stu();$stu1-name JayChou; #$stu1.name $stu1-age 18; $stu1-sex true; $stu1-score 68.99;//echo $stu1; 报错 // var_dump($stu1)$_stu1 serialize($stu1); echo $_stu1; ?序列化后的字符串 O:3:Stu:4:{s:4:name;s:7:JayChou;s:3:age;i:18;s:3:sex;b:1;s:5:score;d:68.989999999999995;} 1.2.3、反序列化 将字符串转化为对象 ?php// unserialize.phpinclude ./stu.class.php;$stu1_ser O:3:Stu:4:{s:4:name;s:7:JayChou;s:3:age;i:18;s:3:sex;b:1;s:5:score;d:68.989999999999995;} ;$stu1_obj unserialize($stu1_ser);var_dump($stu1_obj); ? 1.2.4、对象注入 如果反序列化字符串Web ⽤⼾可以控制则造成对象注⼊。 ?php// unserialize.phpinclude ./stu.class.php;// $stu1_ser O:3:Stu:4:{s:4:name;s:7:JayChou;s:3:age;i:18;s:3:sex;b:1;s:5:score;d:68.989999999999995;} ;$stu1_ser $_GET[obj]; #动态传参$stu1_obj unserialize($stu1_ser);var_dump($stu1_obj); ?PHP 的反序列化漏洞也叫PHP 对象注⼊是⼀个⾮常常⻅的漏洞这种漏洞在某些场景下虽然有些难以利⽤但是⼀旦利⽤成功就会造成⾮常危险的后果 2、漏洞何在 2.1、漏洞触发 2.1.2、定义一个类 ?php // vul.class.phpclass Vul{public $str JayChou;function __destruct(){eval($this - str);} } ?2.1.3、定义一个对象 ?php // test.php include ./vul.class.php;$s new Vul(); echo serialize($s); echo hr /;$_s isset($_GET[s_ser])?$_GET[s_ser]:O:3:Vul:1:{s:3:str;s:7:JayChou;};$s unserialize($_s); var_dump($s); ?序列化后 O:3:Vul:1:{s:3:str;s:7:JayChou;}反序列化后 object(Vul)#2 (1) { [str] string(7) JayChou } 2.1.3、反序列化执行代码 ?s_serO:3:Vul:1:{s:3:str;s:10:phpinfo();;}2.2 为什么会这样 __destruct()会被对象⾃动调⽤。 以__开头的函数是PHP 中的魔术⽅法。类中的魔术⽅法在特定情况下会⾃动调⽤。即使魔术⽅法在类中没有被定义也是真实存在的 魔术方法触发条件__construct()在创建对象时⾃动调⽤构造函数__destruct()在销毁对象时⾃动调⽤析构函数 __call(); __callStatic(); __get(); __set(); __isset(); __unset(); __sleep(); __wakeup(); 创建对象之前触发。 __toString(); __invoke(); __set_state(); __clone(); __debuginfo();漏洞形成的根本原因就是程序没有对⽤⼾输⼊的反序列化字符串进⾏检测导致反序列化过程可以被恶意控制进而造成代码执⾏、GetShell 等⼀系列不可控的后果。反序列化漏洞并不是PHP 特有的也存在于Java、Python 语⾔中其原理基本相同 3、反序列化漏洞攻防 3.1、PHP反序列化实例 博客跳转 3.2、Java反序列化实例 Weblogic 10.3.6 ‘wls-wsat’ XMLDecoder 反序列化漏洞CVE-2017-10271S2-045 Remote Code Execution VulnerablityCVE-2017-5638JBoss 5.x/6.x 反序列化漏洞CVE-2017-12149fastjson 1.2.24 反序列化导致任意命令执行漏洞Fastjson 1.2.47 远程命令执行漏洞Apache Shiro 1.2.4反序列化漏洞CVE-2016-4437 3.3、反序列化漏洞防御 升级组件到最新版本⿊⽩名单过滤敏感字符禁⽤反序列化功能部署安全设备
http://www.dnsts.com.cn/news/50304.html

相关文章:

  • 东莞网站优化推广方案大连开发区邮编
  • 平台和网站有什么区别苏州十大软件公司招聘
  • 10个免费货源网站免费拓客软件哪个好用
  • 企业网站数据库上海品牌推广公司
  • 广州本地做网站贵州省住房和城乡建设局网站首页
  • 公司注册网站系统免费建站优化
  • 网站建设中要多使用图片兰州最坑人的装修公司
  • 深圳做网站找哪家好为什么不用wordpress
  • drupal7建站教程对网站开发流程的了解
  • 徐州网站建设xzqjw企信网是什么网站
  • 深圳市龙岗区建设局官网网站l兰州网站建设
  • 做别墅花园绿化的网站com域名为什么那么贵
  • 做worksheet的网站wordpress快速收录
  • 怎么做网站源码上海网站建设推
  • 怎么做盗号网站手机PHP网站开发项目式教程
  • 哪些网站是单页面阿里云建站和华为云建站哪个好
  • 镇江网站优化黄浦网站建设推广
  • 德国 网站 后缀wordpress模块咋编辑
  • 网站建设培训龙岗wordpress生成pdf
  • 找别人做网站注意什么做网站的目的与意义
  • 泉州做 php 网站盐山做网站价格
  • 外贸公司网站建站怎么修改网站首页html代码
  • 好大夫网站开发单位网站开发需要什么软件
  • 重庆公司注册服务惠州优化怎么做seo
  • 网站建设1影响力公司龙华做网站怎么样
  • 如何评价网站是否做的好处wordpress外贸企业模板下载
  • 佛山网站建设企业报价绍兴网站建设做网站
  • 黄江镇网站建设公司文化事业建设费在哪个网站申报
  • 中山网站优化js网站变灰色代码
  • 温州做网站 掌熊号请解释网站开发的主要流程.