<div style="height: 100vh; display: flex; justify-content: center; align-items: flex-start;"> <div style="margin-top: 30%; text-align: center;"> <h1 style="font-size: 2.7em;"> TaiwanHolyYoung Training CTF </h1> <div style="margin-top: 20%;"> <p style="font-size: 2.4em;"> 彰化高中<span style="color: rgb(0,0,0,0)">空格</span>kapiso </p> <p style="font-size: 1.5em;"> 解題筆記及心得 </p> </div> </div> </div> # **Web** <br> ## **Find GET Method** 你會使用開發者工具找到神秘的 header 嗎? http://isip-ctf.tyc4d.tw:8007/ **解 :** 在開啟網站的同時開啟開發者模式監聽網路即可找到 FLAG ![image](https://hackmd.io/_uploads/HktnzG8Q0.png) ``` FLAG{Now_u_k0nw_g3t_method_32rfwk} ``` <br> ## **Find POST Method** 你會使用開發者工具找到被藏起來的 request parmater 嗎? Hint: 送出登入表單時所產生的 http://isip-ctf.tyc4d.tw:8007/ **解 :** 在登入的同時開啟開發人員工具監聽網路,在登入後即可在 flag ![image](https://hackmd.io/_uploads/rkmzKzIX0.png) ``` FLAG{i_f0und_ure_s3cret_post_form_wqd2ed} ``` <br> ## **Mystery Header ?** 網路餅乾莫名其妙就跑到我的電腦上了,他是怎麼被新增進來的呢?你能透過觀察開發者工具的網路流量中,找出該伺服器回應的神秘 Header 嗎? 請試著登入看看管理系統,帳號密碼為 guest / guest 瀏覽器是如何記住你登入過的呢?Hint: 提交FLAG的時候,請直接打出 HTTP Header 的名稱例如觀察到登入時多了一個X-Forward-For : 127.0.0.1 這個 Header ,那麼提交 Flag 的時候請輸入 X-Forward-For 答案請輸入 Header 名稱,不是 FLAG 唷 http://isip-ctf.tyc4d.tw:8007/ **解 :** 一樣使用開發者工具監聽網路,並分別比對登入前後的標頭檔 登入前 : ![image](https://hackmd.io/_uploads/S1yH9zU70.png) 登入後 : ![image](https://hackmd.io/_uploads/SkIb5GL7R.png) 可以發現回應標頭多了一個 set-Cookie ,即為答案 ``` Set-Cookie ``` <br> ## **Find Mystery Cookies** 那你知道在哪裡可以修改跟檢視 Cookie 嗎?找找看除了 UserID 有沒有其他神秘的 Cookie ? http://isip-ctf.tyc4d.tw:8007/ **解 :** 在開啟網站時開啟開發人員工具中,應用程式的 Cookie 中查看即可找到 flag ![image](https://hackmd.io/_uploads/SJslrFw7A.png) ``` FLAG{dont_st0r3_C00kie_in_c1i3nt_32dqewe} ``` <br> ## **Modify the Cookie !** 那你知道在哪裡可以修改跟檢視 Cookie 嗎?找找看除了 UserID 有沒有其他神秘的 Cookie ? http://isip-ctf.tyc4d.tw:8007/ **解 :** 使用 Burp Suite 在登入將 userid 更改為 admin 即可找到 flag ![image](https://hackmd.io/_uploads/HJpxhf8QA.png) ![image](https://hackmd.io/_uploads/S1twnGLQ0.png) ``` FLAG{dont_st0r3_C00kie_in_c1i3nt_3ed2qw} ``` <br> ## **May I have the free point** 你能協助宸宸看到購買 Flag Point 的頁面嗎? http://isip-ctf.tyc4d.tw:8100/ **解 :** 在開發人員工具中,可以發現物品是流水號,且 FLAG Point 的編號為 5430 ![image](https://hackmd.io/_uploads/SkTOWQ8mA.png) 直接前往 /item/5430 即可看到 flag ![image](https://hackmd.io/_uploads/rkCTWmIX0.png) ``` FLAG{BrokenAccessControl_STEP1_Parameter_e32dwqd} ``` <br> ## **Free point for me ?** 這…這是可以免費拿的嗎?嘗試用划算的價格買到 Flag Point ? http://isip-ctf.tyc4d.tw:8100/ **解 :** 接續上一題,開啟開發者工具,可以看到有一個被隱藏的 cost ,把他的值改小一點即可買下來 ![image](https://hackmd.io/_uploads/S1nXNmLXC.png) 再去到 My order 即可看到 flag ![image](https://hackmd.io/_uploads/BJ1wNX8X0.png) ``` FLAG{BrokenAccessControl_STEP2_Parameter_e3dwdwd} ``` <br> ## **You can’t see me** 宸宸發現某個神秘的ID按下去之後,莫名其妙就到了奇怪的地方,你能找出中間經過了哪些重要的地方嗎? http://isip-ctf.tyc4d.tw:8005/ **解 :** 將每一個都按過後會發現點擊 simba 時會被重新導向,所以在點擊時開啟節流設定,使用慢速 3G 即可看到 flag ![image](https://hackmd.io/_uploads/SynjFwvQC.png) ``` FLAG{You_saw_me_dwqxx!!!} ``` <br> ## **Where is Edward** 你知道水平越權是什麼嗎?你能幫我找找 Edward 在哪裡嗎?Hint: 我為你攔截好封包ㄌ,可以送到 BurpSuite Inturder 分析唷 http://isip-ctf.tyc4d.tw:8001/ ``` GET /user/§5§ HTTP/1.1Host: ctf-isip.tyc4d.tw:8001 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.199 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Referer: http://ctf-isip.tyc4d.tw:8001/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 Cookie: session=286d8192-f687-4fc2-b45c-a18c8df0a7d1.vMjCIR82uYDbDrjYWiH2zW9GPs4 Connection: close ``` **解 :** 可以看到每個網頁都是流水號,故使用 Burp Site 的 Intruder ![image](https://hackmd.io/_uploads/Bkebhvw7A.png) 並設置 Payload type:Numbers From:1 To:2000 Step:1 ![image](https://hackmd.io/_uploads/HJhYowDXA.png) Start attack 後就會找到 flag ![image](https://hackmd.io/_uploads/By4B3DPQ0.png) ``` FLAG{My_English_N4m3} ``` <br> ## **Fix My Blog …** 我的部落格因為是從家裡轉移到雲端的,雖然我把它開起來了,但是東西都看不到,有啥方法可以幫我修改這些舊的網址 http://wpblog-kikihost.xyz:8022 全部換成目前的網址嗎? http://isip-ctf.tyc4d.tw:8022 **解 :** 先使用 Burp Site 登入 http://isip-ctf.tyc4d.tw:8022 並攔截封包,將 Host 改為 wpblog-kikihost.xyz:8022 即可登入網站 ![image](https://hackmd.io/_uploads/HyAICvvQR.png) 使用開發者工具檢查後發現需更改的網址皆為 http://wpblog-kikihost.xyz:8022 ![image](https://hackmd.io/_uploads/Hk9ORvPQR.png) 故使用 Burp Site 的 Proxy ,打開 Proxy setting 中的 Match and replace rules , Add Type:Response body Match: http://wpblog-kikihost.xyz:8022 Replace: http://isip-ctf.tyc4d.tw:8022 ![image](https://hackmd.io/_uploads/BJE9JuwQR.png) 之後再登入一次 http://wpblog-kikihost.xyz:8022 即可發現所有網址皆被更換了,隨後點擊網站第一篇文章即可看到 flag ![image](https://hackmd.io/_uploads/SJpSxuDXC.png) ``` FLAG{bs_m4tch_and_r391eace} ``` ## **Website Under Development & Leak Cookie** 你學會如何找Cookie 了對吧!那如果 Cookie 被加密了怎麼辦 ? P.S. 小宸在網頁開發部門工作,他在部署測試環境時忘記將開發資料夾上鎖… 解密的Key好像放在某個地方,尤其是搜尋引擎不會去的地方 http://isip-ctf.tyc4d.tw:8002/ **解 :** 搜尋引擎不會去的地方第一個想到 robots.txt ,前往即可發現一個 Disallow: /backup/key.md ![image](https://hackmd.io/_uploads/S1Gx5ODQC.png) 前往後即可發現 JWT SECRETKEY="isipctf_key" ![image](https://hackmd.io/_uploads/SJlGquDXC.png) 得到了一個 JWT key ,由題目可知應該是要更改 Cookie ,使用 Burp Site 攔截登入時 Cookie 中的 JWT 來進行修改 ![image](https://hackmd.io/_uploads/rke7iOvQA.png) 前往 jwt.io 將要修改的 JWT 輸入,更改 username:admin 並輸入key:isipctf_key ,即可得到修改後的 JWT ![image](https://hackmd.io/_uploads/BkKToOwQR.png) 到 Burp Site 內輸入更改後的 JWT 即可前往 admin 的資訊儀板並獲得 flag ![image](https://hackmd.io/_uploads/BkO42OPXR.png) ``` FLAG{g1t_l3ak_and_cooki3_dewcw} ``` <br> # **SQL Injection** <br> ## **Welcome2SQL** 你想知道伺服器怎麼驗證你的身份嗎?可以看看我精心設計的MAGIC喔!預覽一下你輸入的東西,到SQL之後到底長啥樣? http://isip-ctf.tyc4d.tw:8003/ **解 :** SQL 注入攻擊 Username:admin') -- Password:隨意 ,即可破解得到 flag ![image](https://hackmd.io/_uploads/r1fYa_Dm0.png) ``` FLAG{W31c0me_2_SQLi_dqwd2ew} ``` <br> ## **Dump All Data!** 小宸已經學會如何使用 information_schema了,現在他想玩拼拼看,你可以拼出正確的語法,藉由登入網站所回傳的結果,來選出幾千筆客戶資料中,唯一的一筆 FLAG 嗎? Hint: 請使用 SQLMAP http://isip-ctf.tyc4d.tw:8056/ **解 :** 依照題目所說,使用 SQLMAP ,尋找客戶資料即可在 database:customer_database table:user_info 中找到客戶資料,直接輸出即可找到 flag ![image](https://hackmd.io/_uploads/rJZtJtDmR.png) ``` FLAG{n0w_y0u_know_sqlmap} ``` <br> ## **WHERE are you (Shopping Cart)** 小宸是一個SQL小白,他想知道怎麼樣可以只選出他想要的資料,但他只會用WHERE,你可以幫他想想怎麼樣才能讓隱藏的FLAG出現在購物車嗎?HINT: 網站的備份SQL被宸宸找到了,但FLAG是假的… 希望能夠幫助你理解FLAG的相對位置… http://isip-ctf.tyc4d.tw:8056/ **解 :** 在隨便將一個物品加到購物車後即可獲得一個程式碼 ![image](https://hackmd.io/_uploads/HJEIgFDmC.png) ``` SELECT * FROM tblproduct WHERE code='XXXXXXXXXX' ``` 送到 SQLMAP 中發現 column:tblproduct 是在 database:shop_database 之下,直接前往查找即可在 columns:name 中找到 flag ![image](https://hackmd.io/_uploads/rkjmzKPQA.png) ``` FLAG{Th3_secret_0f_wh3r3_5tatement} ``` <br> ## **Infomation_Sc...?** 一般RDBMS (關聯式資料庫管理系統),都會存有一個TABLE(資料表),你知道怎麼利用裡面的資訊,來查詢有甚麼樣子的欄位嗎? 請幫助宸宸尋找資料表 flag_table 中,有幾個欄位的類型是 varchar ? Hint: 答案只需要填寫數字 Hint: 請使用 SQLMAP http://isip-ctf.tyc4d.tw:8056/ **解 :** 根據題目所寫,使用 SQLMAP 查找,即可在 databse:customer_database table:flag_table 中找到有兩個欄位的類型是 varchar ![image](https://hackmd.io/_uploads/BJaK7tD70.png) ``` 2 ``` <br> # **Web額外加分** <br> ## **真實案例挑戰賽Q1** 自己玩玩看囉,觀察一下有沒有一些有用的資訊,運用先前所學,想辦法透過某個神秘的後台拿到 flag 吧! Q1: 第一個 flag 在神秘的 table 裏面...? http://isip-ctf.tyc4d.tw:8300/ **解 :** ``` unknow 未解出 ``` <br><br> # **心得** <span style="color: rgb(0,0,0,0)">空格</span>這次參加活動讓我獲益良多,也覺得非常有趣。不只是學到了許多課堂上接觸不到的內容,像是開啟開發者模式(F12)來監聽網頁行為、查找 cookie 資訊、攔截和分析封包,甚至修改網頁元素的數值,還有像 SQL 注入(SQL Injection)這樣的網站攻擊手法,這些過去只是聽過名詞的技術,現在能親自操作、理解原理,讓我感到非常新鮮,也激起我對資訊安全更濃厚的興趣。 <span style="color: rgb(0,0,0,0)">空格</span>雖然這些技能在日常生活中未必會常常使用,但它們帶給我的不只是技術本身,更多的是觀察細節的能力與邏輯思考的訓練。像是在一堆看似複雜的網頁元素中,如何找到我所需要的那一個,或是為什麼某個按鈕能使用、某些卻沒有反應,這些都需要透過實際操作,慢慢建立起清楚的概念與判斷能力。 <span style="color: rgb(0,0,0,0)">空格</span>透過這次活動,我學到的不只是「怎麼做」,而是「為什麼要這麼做」的思考方式。每個步驟背後都有它的原理,而這正是我最感興趣的部分。從原本只是一位網頁使用者的角色,轉變為能夠理解其背後運作邏輯的人,這樣的轉變讓我覺得非常有成就感。 <span style="color: rgb(0,0,0,0)">空格</span>正如愛因斯坦曾說過的一句話:「我沒有特殊的才能,我只是極度熱衷於探索。」這句話非常貼近我的心情,因為在這次學習過程中,正是那份對未知事物的好奇與探索慾望,推動我一步步深入理解,看見更多原本沒注意到的細節。 <span style="color: rgb(0,0,0,0)">空格</span>總的來說,這次的活動不僅僅拓展了我的視野,也讓我對資訊科技的世界有了更深入的認識。如果未來還有類似的機會,我會非常樂意再次參加,繼續挑戰、繼續學習。 <hr style="width:90%; border: 2px solid #C5C6C7; border-radius: 50%;"> ### **參與證明** ![台灣尚青-證書](https://hackmd.io/_uploads/rJOpeZlJgg.jpg)