xctf進階-unserialize3反序列化

一道反序列化題:php

打開後給出了一個php類,咱們能夠控制code值:數據庫

 

 

`unserialize()` 會檢查是否存在一個 `__wakeup()` 方法。若是存在,則會先調用 `__wakeup` 方法,預先準備對象須要的資源。code

做用:__wakeup() 常常用在反序列化操做中,例如從新創建數據庫鏈接,或執行其它初始化操做。對象

咱們先給這個類建立一個對象,而後輸出這個對象的序列化值:blog

 

 而後將序列化結果拿給?code參數進行get請求資源

 

發現執行了_wakeup方法,那麼怎麼繞過這個方法呢? 字符串

百度了一下,當序列化字符串表示對象屬性個數的值大於真實個數的屬性時就會跳過__wakeup的執行get

那麼咱們把O:4:"xctf":2:{s:4:"flag";s:3:"111";}傳給code再進行請求:百度

 

 得出flag.序列化

相關文章
相關標籤/搜索