GEEK-2018之隱藏在混亂之中的絕密情報 writeup
阿新 • • 發佈:2018-11-14
題目如上
開啟題目後發現,提示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