# Insecure deserialization Lab4 這題 PHP 任意物件注入(Arbitrary Object Injection),利用反序列化時觸發魔術方法 __destruct() 來執行刪檔動作。 帳密:`wiener:peter` 一樣先進入網站並登入。 ![image](https://hackmd.io/_uploads/r1nJgAtDxe.png) 觀察網站的 Cookie 時,可以發現 session 的內容是 b64 編碼。 ![image](https://hackmd.io/_uploads/rkCle0Yvlg.png) 拿去解碼後可以得到一串格式。 ``` O:4:"User":2:{s:8:"username";s:6:"wiener";s:12:"access_token";s:32:"oine460u1gojmadft2oig9yn1s505xk6";} ``` 不過我們也不知道他要用什麼方式來刪除目標資料,所以這裡我們翻一下他再載入頁面的同時有附什麼檔案,結果這裡有一個 php。 ![image](https://hackmd.io/_uploads/BJzpZAKPxl.png) 因此在後面加一個 `~` 來看看能不能讀取檔案內容,這時可以看到刪除資料的參數該怎麼使用。 ![image](https://hackmd.io/_uploads/S1J7z0Fvlg.png) `__destruct()` 方法確認會調用 `unlink($this->lock_file_path)`,現在就來改移下內容: ``` O:14:"CustomTemplate":1:{s:14:"lock_file_path";s:23:"/home/carlos/morale.txt";} ``` ![image](https://hackmd.io/_uploads/SJNRGRtDgl.png) ---