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

电子商务网站建设与原理泰兴网页定制

电子商务网站建设与原理,泰兴网页定制,建筑培训网排行榜,手机网站开发注意的问题Web渗透—PHP反序列化 课程学习分享#xff08;课程非本人制作#xff0c;仅提供学习分享#xff09; 靶场下载地址#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程#xff0c;基于课程制作的靶场 课程地址#xff1a;PHP反序列化漏洞学习_哔哩…Web渗透—PHP反序列化        课程学习分享课程非本人制作仅提供学习分享 靶场下载地址GitHub - mcc0624/php_ser_Class: php反序列化靶场课程基于课程制作的靶场 课程地址PHP反序列化漏洞学习_哔哩哔_bilibili 七、wakeup和sleep 1.__sleep() 序列化serialize()函数会检查类中是否存在一个魔术方法__sleep()。 如果存在该方法会先被调用然后才执行序列化操作。 此功能可以用于清理对象并返回一个包含对象中所有应被序列化的变量名称的数组。 如果该方法未返回任何内容则NULL被序列化并产生一个E_NOTICE级别的错误。 ?php class User {const SITE  uusama;public $username;public $nickname;private $password;public function __construct($username, $nickname, $password){$this-username  $username;$this-nickname  $nickname;$this-password  $password;}public function __sleep(){return array(username, nickname); //__sleep()执行返回需要序列化的变量名过滤掉password变量} } $user  new User(a, b, c); echo serialize($user); //serialize()只序列化sleep返回的变量 ? 触发时机序列化serialize()之前 功能对象被序列化之前触发返回需要被序列化存储的成员变量删除不必要的属性 参数成员属性return array 返回值需要被序列化存储的成员属性username,nickname 2.__sleep()例题 通过审计代码发现通过benben参数传入的值会赋值传给$cmd而当执行序列化前会先执行__sleep()只返回username成员属性通过system()函数包含所以可以直接传入命令进行执行。 3.__wakeup() unserialize()会检查是否存在一个__wakeup()方法。 如果存在则会先调用__wakeup()方法预先准备对象需要的资源。 预先准备对象资源返回void常用于反序列化操作中重新建立数据库连接或执行其他初始化操作。 __wakeup()在反序列化unserialize()之前__destruct()在反序列化unserialize()之后。 ?php class User {const SITE  uusama;public $username;public $nickname;private $password;private $order;public function __wakeup(){$this-password  $this-username; //反序列化之前触发wakeup给password赋值} } $user_ser  O:4:User:2:{s:8:username;s:1:a;s:8:nickname;s:1:b;}; //字符串中没有定义password var_dump(unserialize($user_ser)); //userialize()结果包含password的值 ? 触发时机反序列化unserialize()之前 功能无 参数无 返回值无包含password的赋值 4.__wakeup() 解题代码 ?php class User {public $username whoami; } $user_ser new User(); echo serialize($user_ser); ?输出结果 O:4:User:1:{s:8:username;s:6:whoami;} 通过审计代码发现通过benben参数传入值会直接赋值给$user_ser并反序列化$user_ser所以我们需要向benben参数内传入序列化值。而反序列化被调用前会先执行__wakeup()调用username成员属性通过system()函数包含所以我们要通过序列化给username成员变量赋值传入系统命令。 八、toString和invoke 1.__toString() 表达方式错误导致魔术方法触发把对象当成字符串调用时触发 常用于构造POP链接 ?php class User {var $benben  this is test!!;public function __toString(){return 格式不对输出不了!;} } $test  new User() ; //把类User实例化宁赋值给$test此时$test是个对象 print_r($test); //调用对象可以使用print_r或者var_dump echo $test; ? 触发时机把对象当成字符串调用 功能无 参数无 返回值无 如果使用echo或者print只能调用字符串的方式去调用对象即把对象当成字符串使用此时自动触发toString() 2.__invoke() 格式表达错误导致魔术方法触发把对象当成函数调用时触发 ?php class User {var $benben  this is test!!;public function __invoke(){echo  它不是个函数!;} } $test  new User() ; //把类User实例化并赋值给$test为对象 echo $test -benben; //正常输出对象里的值benben echo $test() -benben; //加()是把test当成函数test()来调用此时触发invoke() ? 触发时机把对象当成函数调用 功能无 参数无 返回值无
http://www.dnsts.com.cn/news/268680.html

相关文章:

  • 辽宁网站建设多少钱哪些网站可以做免费广告推广
  • 网站模板参考开发网站服务
  • 郑州网站开发工程师中国八大设计院排名
  • 网站分站代理房地产网
  • 信誉好的河南网站建设东营考试信息网官网
  • 网站建设实践试卷广告制作包括哪些项目
  • 五十一团 黑龙江生产建设兵团知青网站有哪些类型的网站
  • 有没有免费网站制作wordpress 主题 后门
  • 手机端网站开发价格一家做公司评估的网站
  • 360兼容模式网站错位电商美工工资一般多少
  • 企业网站建设移动h5免费制作平台八图
  • 互联网站管理工作细则郑州网站建设公司电话多少
  • 天津建设银行网站首页成都网站建设方案服务
  • 河北工程建设信息网宁波谷歌seo
  • 网站建设初步规划方案深圳龙华区地图
  • 成都定制网站建设服设计网站账号
  • 如何使用阿里云建站福安网站设计
  • 永兴城乡住房建设部网站重庆网站设计制作网站
  • 网站建设建设公司资质要求做网站的问题
  • 武义网站建设富阳做兼职的网站
  • 国外建设网站河南网站排名优化哪家好
  • 申办网站流程呼市网站开发
  • 二手车网站开发背景计算机网络服务
  • 建立网站数据库实验报告杭州网站建设咨询蓝韵网络
  • 网站建设与管理教程山东住房和建设庭官网站官
  • 山东省住房和城乡建设厅网站首页域名和网址是什么关系
  • 沈阳网站制作流程软件开发者是什么意思
  • 那个网站卖做防水的烤枪一二三四影视在线观看免费视频
  • 网站设计制作 一年价格wordpress获取登录权限
  • 湖北响应式网站建设企业成立公司需要哪些手续