# Web LLM Lab2 題目敘述:刪除 Carlos 的主目錄中的 morale.txt 檔案。 :::warning 這個實驗室含有一個可以透過 API 利用的作業系統指令注入(OS command injection) 漏洞。你可以透過 LLM 呼叫這些 API 來進行操作。 ::: ## Step 1 一樣先進入網站找聊天機器人。 ![image](https://hackmd.io/_uploads/H1m4lwwJge.png) ## Step 2 詢問你有權限存取哪些 API? ![image](https://hackmd.io/_uploads/HyRJZwPyxx.png) LLM 回覆: 你擁有以下 API 的存取權限 - 密碼重設(Password reset) - 此 API 可用來向使用者發送密碼重設的電子郵件。 - 訂閱電子報(Subscribe to newsletter) - 此 API 可讓你訂閱使用者到我們的電子報名單中。 - 產品資訊(Product information) - 此 API 提供我們販售產品的相關資訊。 :::info 在這裡需要注意的是,我們可能需要遠端程式碼執行來刪除目標檔案,因為發送電子郵件的 API 有時會使用提供 RCE 途徑的作業系統命令。 ::: ## Step 3 從 LLM 的回答中,可以發現有很多功能跟電子郵件有關,像是訂閱通知及密碼重設,所以我先測試我們是否可以收到電子郵件通知。 ![image](https://hackmd.io/_uploads/Skz4HPDJgg.png) ![image](https://hackmd.io/_uploads/Byv5AwPyex.png) 這裡我要求訂閱電子報後,不僅成功了也收到訂閱通知。 ![image](https://hackmd.io/_uploads/HkMGqouJgg.png) ![image](https://hackmd.io/_uploads/H16z5o_1xg.png) ## Step 4 由於在 Step 2 中,我們考量到**發送電子郵件的 API 有時會使用提供 RCE 途徑的作業系統命令**,所以我嘗試在電子郵件的最後加一些指令。 ![image](https://hackmd.io/_uploads/ry0Hijdkgl.png) ![image](https://hackmd.io/_uploads/ryYwjo_1gg.png) 但我們並沒有收到訊息。 ## Step 5 雖然沒有訊息,但電子郵件的使用者名稱是可以更改的,所以我把指令移到使用者名字後面嘗試。 ![image](https://hackmd.io/_uploads/SJQ7hjuJlg.png) 顯然直接加是不行的,所以嘗試用個東西包起來。 ![image](https://hackmd.io/_uploads/H1WPhsOJlg.png) 訂閱成功,且出現了目標檔案的名稱。 ![image](https://hackmd.io/_uploads/HJns2iukxl.png) ## Step 6 既然知道指令可以執行成功,所以我試著將目標檔案刪除。 ![image](https://hackmd.io/_uploads/Sk-I6o_1lx.png) ![image](https://hackmd.io/_uploads/HkB1Ci_kgx.png) 本題拿下。 ### Web LLM Lab3 -> [write up](https://hackmd.io/@mio0813/r1jSgKwJee) ---