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

精品手机网站案例徐州人才网

精品手机网站案例,徐州人才网,网站开发需要投入多少时间,网站开发与设计的参考文献文章目录 基础知识魔术方法#xff1a;在序列化和反序列化过程中自动调用的方法什么是 __destruct() 方法#xff1f;何时触发 __destruct() 方法#xff1f;用途#xff1a;语法示例#xff1a; 反序列化漏洞利用前提条件一些绕过策略绕过__wakeup函数绕过正则匹配绕过相… 文章目录 基础知识魔术方法在序列化和反序列化过程中自动调用的方法什么是 __destruct() 方法何时触发 __destruct() 方法用途语法示例 反序列化漏洞利用前提条件一些绕过策略绕过__wakeup函数绕过正则匹配绕过相等逻辑判断利用大S的ascll码绕过反序列化字符逃逸 高级反序列化phar反序列化什么是 PHAR 文件特点 session反序列化 基础知识 序列化将对象转化为一个可传输的字符串serialize() 反序列化将字符串重新转化为对象 只有类的属性可以序列化方法不可以 如果属性权限为private那么序列化后存储的属性名字为%00类名%00属性名 如果属性权限为protected那么序列化后存储的属性名字为%00*%00属性名 ?php 类的属性可以是类 class ctf{public $name; } class user{public $typevip; } $cnew ctf(); $c-namenew user(); echo $c-name-type; 魔术方法在序列化和反序列化过程中自动调用的方法 1. _sleep()方法在序列化时自动调用 2. _wakeup()方法在反序列化时自动调用 3. 反序列化时自动调用_destruct析构方法方法内恶意代码也会被执行 4. 执行类不存在的方法时自动调用_call方法执行不存在的static方法时会调用_callstatic()方法 5. _get方法在访问不存在属性时自动调用_set方法在写入不存在属性时自动调用 6. _isset()方法和_unset()方法 7. _tostring()方法把对象和字符串拼接或者当字符串用时自动调用 8. _invoke()方法当类的实例被当作函数调用 9. __set_state 方法文档中说执行 var_export时自动调用 10. __debugInfo 方法的属性修饰符执行var_dump时自动调用 11. __clone方法当使用clone关键字 clone一个对象时会自动调用什么是 __destruct() 方法 __destruct() 是 PHP 中的一个魔术方法magic method它用于在对象销毁时自动执行一些清理操作比如释放资源或关闭数据库连接。这个方法会在对象生命周期结束时自动调用无需手动触发。 何时触发 __destruct() 方法 __destruct() 方法在以下情况下被自动调用 对象被销毁时当对象不再被使用时PHP 会自动调用 __destruct()。脚本结束时当脚本执行结束时所有未销毁的对象都会调用 __destruct()。手动销毁对象当调用 unset() 或者赋值 null 给对象时__destruct() 会被触发。 用途 释放资源比如关闭数据库连接、关闭文件句柄、释放内存等。清理工作可以用于日志记录、清理临时文件等。 语法示例 class MyClass {public function __construct() {echo 对象创建了\n;}public function __destruct() {echo 对象销毁了\n;} }$obj new MyClass(); // 输出对象创建了 unset($obj); // 输出对象销毁了反序列化漏洞利用 前提条件 存在反序列化提交的入口有被反序列化的类的魔术方法 一些绕过策略 绕过__wakeup函数 条件 php5至php5.6.25 之间的版本可以绕过php7到php7.0.10 直接的版本可以绕过 绕过方法 反序列化字符串中表示属性数量的值大于大括号内实际属性的数量时 wakeup方法会被绕过 绕过正则匹配 参数有过滤不让输入O:数字的形式试图防止反序列化某个对象 O:数字 改为 O:数字 就可以绕过上面的O:数字 过滤 绕过相等逻辑判断 eg $a-name$b 采用符号使得a的值与b的值恒相等 利用大S的ascll码绕过 大写S可以支持ascll值的字符可以借助这个特性绕过一些被过滤的字符 O:8:backdoor:1:{s:4:name;s:10:phpinfo();;}O:8:backdoor:1:{S:4:n\97me;s:10:phpinfo();;}反序列化字符逃逸 在一些关键词被替换后描述中的字符数量是按照未替换之前的字符来计算当替换后字符数量大于描述数量时就可以逃逸出一些字符 高级反序列化 phar反序列化 什么是 PHAR 文件 PHARPHP Archive文件是一种将多个 PHP 文件、资源和其他数据打包成一个单一的归档文件的格式。它类似于 .tar 或 .zip 文件允许将整个 PHP 应用或库打包为一个文件方便分发和部署。 特点 自包含PHAR 文件可以包含 PHP 脚本和其他资源如图片、配置文件等可以作为一个独立的文件运行。可执行PHAR 文件可以像普通的 PHP 脚本一样执行通过 php archive.phar 来运行。压缩支持PHAR 文件支持压缩可以通过 .tar, .gzip 或 .bzip2 等格式进行压缩。 $phar-setmetadata($h);metadata可以放一个类实例生成phar后会将这个类实例序列化字符串放到phar文件内当使用phar协议加载phar文件时会自动反序列化这个类的序列化字符串 include file_get_contents file_put_contents .use.ini 等与文件相关的函数都可以包含phar协议从而自动调用其魔术方法 phar协议哪里使用的多 存在文件上传点能找到file_exists()等文件读取函数通过控制phar://头就能解析phar包来自动进行反序列化 session反序列化 php的session是存放在文件中的 默认位置是/tmp/sess_PHPSESSID session 是可以放字符串数字也可以放对象 session里面存放对象时会自动进行序列化存放序列化后的字符串session里面拿取对象时会自动进行反序列化执行对象的魔术方法 u|O:4:“user”:2:{s:8:“username”;N;s:8:“password”;N;} 属于php处理器 以数组类型来存属于php_serialize处理器 如果用php_serialize处理器来存就可以在username中注入|但是如果用php处理器来取时就会把|右边的内容进行反序列化反序列化之后就会调用恶意类的实例在销毁时就会调用析构方法
http://www.hkea.cn/news/14511730/

相关文章:

  • 个人做网站时不要做什么样的网站百度平台我的订单
  • 开一个素材设计网站怎么做舆情报告案例2022
  • 湘潭做网站价格咨询磐石网络世界排行榜前十名
  • 通过输入域名访问自己做的网站菏泽网站开发
  • 海南省澄迈住房和城乡建设厅网站怎样给一个公司做网站
  • 专业的网站设计制作公司建站系统软件有哪些
  • 网站自己建设集团网站建设详细策划
  • 网站建设的开发方式计算机包含哪些专业
  • 电商网站建设报价百度网页版浏览器入口
  • 做选择的网站首页中山网站建设哪家便宜
  • 苏州建设交通招聘信息网站网页设计图片轮播
  • 南京酒店网站制作百度指数1000搜索量有多少
  • 微信网站开放微网站ui多少钱
  • pc蛋蛋游戏体验网站建设贺州招聘网站建设
  • 兴化 网站开发用cdr做网站设计尺寸要多少
  • 网站平台建设工作汇报wordpress 七牛上传插件
  • 咋样查看网站用什么编程语言做的营销100个引流方案
  • 电子商务网站的建设流程是怎样的wordpress修改文章链接地址
  • 水利建设工程网站做彩票网站被捉将受到什么惩罚
  • 公司网站建立费用wordpress自定义打不开
  • 网站建设及优化wordpress二开
  • 网站设计论文经济可行性分析淘宝官方网站主页
  • 免费企业网站建立网易企业邮箱怎么认证
  • 工厂弄个网站做外贸如何处理万网网站制作
  • 国外做的比较的ppt网站有哪些方面wordpress升级失败
  • 网站结构有哪几种微信公众号与网站绑定
  • 建设机械官方网站网站建设兼职在哪找
  • asp装修公司网站wordpress客户端定制
  • 网页开发公司网站做网站具体流程
  • seo网站推广案例广告宣传方式有哪些