zoukankan      html  css  js  c++  java
  • GEEK-2018之隐藏在混乱之中的绝密情报 writeup

    题目如上

    打开题目后发现,提示robots

    随后提示又需要改一改名字

    修改文件名为humans.txt之后发现

     有个备份文件,直接访问www.zip就可以下载了

    下载打开后如下:

     在其中看到了unserialize和两个魔法函数

    可以联想到是反序列化漏洞

        __construct()当一个对象创建时被调用
    
        __destruct()当一个对象销毁时被调用
    
        __toString()当一个对象被当作一个字符串使用
    
        __sleep() 在对象在被序列化之前运行
    
        __wakeup将在反序列化之后立即被调用

     观察代码,__construct函数里有getflag();

    所以我们就只需要把Daedalus类实例化就行了

    而要想实例化,就得调用Mang0类中的__wakeup

    思路就出来了,我们可以构造一个序列化后的Mang0,当作message参数传入进去

    然后unserialize会将他反序列话,同时调用Mang0中的__wakeup函数

    payload:O:5:"Mang0":1:{s:7:"message";s:14:"hello_new_geek";}

     得到flag

  • 相关阅读:
    Java面向对象编程之异常处理机制
    LinkedList链式集合
    Java之反射机制
    适配器模式
    QuickHit
    Java之单例模式
    Java面向对象之接口
    多线程
    线程同步
    试题分析
  • 原文地址:https://www.cnblogs.com/wh4am1/p/9959910.html
Copyright © 2011-2022 走看看