1. 程式人生 > >GEEK-2018之隱藏在混亂之中的絕密情報 writeup

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