# **教育部人才培育計畫:<br>7/3-7/7 SecurityFocus Online - 2024年7月場** ![資安宣言](https://hackmd.io/_uploads/rkkXX4fPA.gif) ## **重點整理** 1. 網站資訊有可放置在 robots.txt 或者 網頁註解內,可以找尋這些物品來獲得有用資訊 `註robots.txt是一種文字檔案,它告訴網路搜尋引擎此網站中的哪些內容是不應被搜尋引擎的搜尋到的,哪些是可以被搜尋引擎搜尋到的` 2. 資訊界有許多編碼,例如 [Base664](https://www.base64encode.org/)、[Base32](https://emn178.github.io/online-tools/base32_encode.html)、[ASCll](https://www.dcode.fr/ascii-code)、[Morse Code](https://www.dcode.fr/ascii-code) 等等 [other URL](https://docs.google.com/document/d/1vQN1yRXvd1HpVEAchHeb2oDL9J06NKZLkRK0asb5LqI/edit?usp=sharing),可以利用線上解碼工具來實現編解碼 3. 隱寫術,顧名思義,是一種可以隱藏任何東西的技術,不單單僅限於文字,連圖片都可以隱藏,但是可以透過一些指令的方式讓他顯示出來 4. linux 是基於 unix 的一種作業系統,有許多內建的方便指令,詳細指令請看 [這裡](https://github.com/MyFirstSecurity2020/SecurityFoscusOnline2023/blob/main/A2_Linux%E8%B3%87%E5%AE%89%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80/2_0_.Linux%E5%9F%BA%E6%9C%AC%E6%8C%87%E4%BB%A4.MD) 5. python 可以用來撰寫滲透程式或者自動解決網站問題 <br> # **解題報告** ## Linux 101 ### Linux CTF 1 <hr> 你知道如何安全連線到遠端伺服器嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 提示:請找到flag 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解 :** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,再使用指令 ``` ls -la ``` 即可獲取當前目錄下所有檔案 ![image](https://hackmd.io/_uploads/Hkyi7kSvR.png) 看到 flag 了,使用指令 ``` cat flag ``` 看 flag 內的資訊,即可獲得 flag ``` BreakALLCTF{Sobkjgd14VuIFBUtgVts} ``` <br> ### Linux CTF 2 <hr> 你知道如何在Linux上找到隱藏檔案嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 提示 : 請在/home/lab目錄裡尋找 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` pwd ``` 確認當前目錄為 /home/lab ,使用指令 ``` ls -la ``` 列出當前目錄下所有檔案 ![image](https://hackmd.io/_uploads/S1NYrJSDR.png) 看到 .hidden ,使用指令 ``` cat .hidden ``` 獲取檔案資訊,即可獲得答案 ``` BreakALLCTF{WucLSg4cxPNYuXFF5XxJ} ``` <br> ### Linux CTF 3 <hr> 你知道如何在Linux上做16進位轉字串(hex to string)嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 提示 : 檔案位置 /home/lab/hex.txt 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` pwd ``` 確認當前目錄為 /home/lab ,使用指令 ``` ls -la ``` 列出當前目錄下所有檔案 ![image](https://hackmd.io/_uploads/S1NYrJSDR.png) 看到 hex.txt ,使用指令 ``` cat hex.txt ``` 獲取 hex.txt 內資訊,並使用線上 [解碼器](https://www.rapidtables.org/zh-TW/convert/number/hex-to-ascii.html) 解碼 ![image](https://hackmd.io/_uploads/BJXlP1HPA.png) 即可獲得 flag ``` BreakALLCTF{GIUWO1rpMhJCJpACvVwr} ``` <br> ### Linux CTF 4 <hr> 你知道如何在Linux上做base64 解碼嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 提示 : 檔案位置 /home/lab/base64.txt 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` pwd ``` 確認當前目錄為 /home/lab ,使用指令 ``` ls -la ``` 列出當前目錄下所有檔案 ![image](https://hackmd.io/_uploads/S1NYrJSDR.png) 看到 base64.txt ,使用指令 ``` cat base64.txt ``` 並使用線上 [解碼器](https://www.base64decode.org/) 解碼 ![image](https://hackmd.io/_uploads/ByJyYkrPA.png) 即可獲得 flag ``` BreakALLCTF{XvXeVX5Ae9FwnYmDV2jU} ``` <br> ### Linux CTF 5 <hr> 你知道如何在Linux上找到secret秘密檔案嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` pwd ``` 確認當前目錄,再使用指令 ``` cd .. && cd .. ``` 回到最前面的目錄,使用指令 ``` find -name "secret" ``` 尋找 secret ![image](https://hackmd.io/_uploads/ryM6c1HD0.png) 即可看到 secret 檔案位置,使用指令 ``` cat ./opt/secret ``` 即可獲得 flag ``` BreakALLCTF{TPLGKbWxmutGtecSSpo1} ``` <br> ## Linux 102 ### Linux CTF 6 <hr> 你知道如何找到Linux正在執行的服務嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 提示 : 2111 Port 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` ps -ef ``` 查看服務 ![image](https://hackmd.io/_uploads/SJH70yrwA.png) 看到 2111 port 後面有一串文字,並提到 /bin/flag ``` cat ./bin/flag ``` 在中間即可找到 flag ``` BreakALLCTF{YUA7D5D0k4elbQ1XqH14} ``` <br> ### Linux CTF 7 <hr> 你知道如何找到Linux正在執行的網路服務嗎? SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 提示 : 80 Port 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` netstat -ano ``` 可以看到所有服務 ![image](https://hackmd.io/_uploads/BJWVPZSv0.png) 使用指令 ``` curl 0.0.0.0:80 ``` 連線到 80 port 即可獲得 flag ``` BreakALLCTF{Ef94iSQPRI66Ws4ECqV9} ``` ### Linux CTF 8 <hr> 你知道如何在Linux下載並解壓縮ForYou檔案嗎? 下載連結: http://120.114.62.217/ForYou.tar.gz 如使用以下連線,需在 /tmp 目錄底下建立自己的目錄才能下載檔案 如: /tmp/404040 SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` cd /tmp ``` 到 tmp 目錄,並使用指令 ``` mkdir -p floder_name ``` 新增資料夾,並到資料夾內 ``` cd floder_name/ ``` 使用指令下載檔案 ``` wget http://120.114.62.217/ForYou.tar.gz ``` 使用指令解壓縮檔案 ``` tar zxvf ForYou.tar.gz ``` 再使用指令 ``` cat ForYou ``` 即可看到 flag ``` BreakALLCTF{U6TLCzQsk73HwcW7rqAW} ``` <br> ### Linux CTF 9 <hr> 你知道如何在Linux下載TobeExe檔案嗎? 下載連結: http://120.114.62.217/TobeExe 如使用以下連線,需在 /tmp 目錄底下建立自己的目錄才能下載檔案 如: /tmp/404040 SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` cd /tmp ``` 到 tmp 目錄,並使用指令 ``` mkdir -p floder_name ``` 新增資料夾,並到資料夾內 ``` cd floder_name/ ``` 下載檔案 ``` wget http://120.114.62.217/TobeExe ``` 並使用指令 ``` cat TobeExe ``` 查看檔案內容即可找到 flag ``` BreakALLCTF{UvB3IUqxCCiTVxeOuWrL} ``` <br> ### Linux CTF 10 <hr> 在Linux上只有執行檔你如何顯示重要資訊? 下載連結: http://120.114.62.217/reverse 如使用以下連線,需在 /tmp 目錄底下建立自己的目錄才能下載檔案 如: /tmp/404040 SSH 資訊 IP : 140.110.112.219 Port1: 2200 Port2: 3700 帳號 : lab 密碼 : Ksu@lab 盡量避免使用Putty/KiTTY,防止斷線連不上的問題發生! 推薦:Win10 CMD、MobaXterm <br> **解:** 使用指令 ``` ssh -p 2200 lab@140.110.112.219 ``` 並輸入密碼後即可進入系統,並使用指令 ``` cd /tmp ``` 到 tmp 目錄,並使用指令 ``` mkdir -p floder_name ``` 新增資料夾,並到資料夾內 ``` cd floder_name/ ``` 下載檔案 ``` wget http://120.114.62.217/reverse ``` 使用指令 ``` cat reverse ``` 查看檔案即可獲得 flag ``` BreakALLCTF{VLJekKONoWld7ari6HHJ} ``` <br> ## Crypto101 ### CRY1 <hr> 底下是加密過的密文(ciphertext) : xyzqc{t3_qelrdeq_t3_k33a3a_lk3_lc_qe3p3} 你可以解密她嗎? 本題來自國外ABCTF的題目 凱撒密碼:維基百科 https://en.wikipedia.org/wiki/Caesar_cipher https://zh.wikipedia.org/wiki/凱撒密碼 線上解題需特別注意有那些沒有被處理 你可以試試看看有沒不同 https://planetcalc.com/1434/ http://md5decrypt.net/en/Caesar/ https://www.xarg.org/tools/caesar-cipher/ <br> **解:** 使用 [線上解碼器](https://raw.org/tool/caesar-cipher/) 解碼 ![image](https://hackmd.io/_uploads/HJORObHDA.png) 即可獲得 flag ``` abctf{w3_thought_w3_n33d3d_on3_of_th3s3} ``` <br> ### CRY2_凱撒密碼part2 <hr> Pxevhfx mh tgzlmkhfvmy. Px ahix rhn xgchr hnk vmy. tvmy{utvd_mh_max_ynmnkx}. 線上解題需特別注意有那些沒有被處理 你可以試試看看有沒不同 https://planetcalc.com/1434/ http://md5decrypt.net/en/Caesar/ https://www.xarg.org/tools/caesar-cipher/ <br> **解:** 使用 [線上解碼器](https://raw.org/tool/caesar-cipher/) 解碼 ![image](https://hackmd.io/_uploads/rke2FbrvA.png) 即可獲得 flag ``` actf{back_to_the_future} ``` <br> ### CRY3_ROT13 <hr> ROT13的奧秘 OernxNYYPGS{kg_gvzr_V'yy_gel_2_ebha_ZNMldSDw} <br> **解:** 使用 [線上解碼器](https://raw.org/tool/caesar-cipher/) 解碼 ![image](https://hackmd.io/_uploads/B1G45-SD0.png) 即可獲得 flag ``` BreakALLCTF{xt_time_I'll_try_2_roun_MAZyqFQj} ``` <br> ### CRY4_ SCYTCRYPTO 密碼棒破密 <hr> Decrypt this strange word: ERTKSOOTCMCHYRAFYLIPL 本題目來自國外EKOPARTY CTF的題目 解答也就會有相關文字 <br> **解:** 使用 [線上解碼器](http://www.atoolbox.net/Tool.php?Id=915) 解碼 ![image](https://hackmd.io/_uploads/ryLf3ZHwR.png) 即可獲得 flag ``` EKOMYFIRSTCRYPTOCHALL ``` <br> ### CRY6_頻率分析法 <hr> There's an authorization code for some Thyrin Labs information here, along with someone's favorite song. But it's been encrypted! Find the authorization code. encrypted.txt Hint: You may want to look at what the relative frequencies of letters in english text are. 底下網站有用: http://quipqiup.com/ http://140.110.112.219/files/d51b6694270195e4865e548ce29515e7/encrypted.txt?token=eyJ1c2VyX2lkIjo4MjYsInRlYW1faWQiOm51bGwsImZpbGVfaWQiOjU2fQ.ZoeOGw.L9nGwKD3EJVwNmW4oF71X39utoA <br> **解:** 將檔案下載後放到網站內分析即可獲得 flag ![image](https://hackmd.io/_uploads/SkroAbHvA.png) ``` awholenewworld ``` <br> ### CRY8_ROT47 <hr> 你知道下列文字如何解密嗎? qC62<p{{r%uL(92E0`D0#_%cfnm]kN 上網去GOOGLE ROT47 主動學習:請說明其原理 <br> **解:** 搜尋 Rot47 使用線上[解碼器](https://www.dcode.fr/rot-47-cipher) 解碼 ![image](https://hackmd.io/_uploads/SkLI1zrvC.png) 即可獲得 flag ``` BreakALLCTF{What_1s_R0T47?>.<} ``` <br> ### CRY7_Rail Fence Cipher <hr> 你會Rail Fence Cipher 籬笆式位移密碼嗎? 跟著Wiki學Rail fence cipher https://en.wikipedia.org/wiki/Rail_fence_cipher 解底下題目吧! 密文如下: Ta _7N6DE7hlg:W3D_H3C31N__BD4ef sHR053F38N43D47 i33___NC 使用四層籬笆(rail fence with 4 rails) 答案格式:BreakAllCTF{flag} https://www.dcode.fr/rail-fence-cipher <br> **解:** 使用線上解密工具解密 ![image](https://hackmd.io/_uploads/S17-cMrDR.png) 即可獲得 flag ``` BreakAllCTF{WH3R3_D035_7H3_F3NC3_8361N_4ND_3ND_EB4C7D74} ``` ### CRY5_Vigenère cipher <hr> Crack the cipher: vhixoieemksktorywzvhxzijqni Your clue is: "caesar is everything. But he took it to the next level." Vigenère cipher https://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher 參考看看: https://www.guballa.de/vigenere-solver <br> **解:** google Vigenère cipher ,找尋[解碼器](https://www.dcode.fr/vigenere-cipher) 解碼 ![image](https://hackmd.io/_uploads/SJxdzMHvR.png) 即可獲得 flag ``` theforceisstrongwiththisone ``` <br> ## ****下方為時間不足無法寫完的 write up,大部分僅有程式,無執行過程**** <br> ## Python101 ### 11的51次方 <hr> ``` result = 11 ** 51 print(result) ``` flag : ``` 129129938167664848157333145589394151932880352885953011 ``` <br> ### FOR your summation <hr> ``` import itertools digits = [1, 2, 3, 4, 5, 6] permutations = itertools.permutations(digits, 3) total_sum = 0 for perm in permutations: num = perm[0] * 100 + perm[1] * 10 + perm[2] total_sum += num print(total_sum) ``` flag : ``` 46620 ``` <br> ### IF 潤年 <hr> <br> ### IF幸福企業的獎金制度 <hr> ``` salary = 2245678 present = 0 if(salary-100000 > 0): present = 1000000 if(salary-170000 > 0): present = 2000000 if(salary-270000 > 0): present = 4000000 if(salary-350000 > 0): present = 6000000 if(salary-430000 > 0): present = 10000000 present += (salary-430000)/0.01 else: present += (salary-350000)/0.02 else: present += (salary-270000)/0.04 else: present += (salary-170000)/0.05 else: present += (salary-100000)/0.07 else: present += salary/0.1 print(present) ``` flag : ``` 191567800 ``` <br> ### 16進位制的計算 <hr> ``` decimal_number = 3456093847523457890 hexadecimal_number = hex(decimal_number) print(hexadecimal_number[2:]) # 输出 0xa ``` falg : ``` 2ff6830b0c0c7b62 ``` <br> ### 字串的逆向工程 <hr> ``` c = "esrevEergnirTsroFtsetelpmisAsisihT" print(c[::-1]) ``` flag : ``` ThisisAsimpletestForsTringreEverse ``` <br> ### 黃金比例與費氏數列 <hr> ``` def fibonacci_dynamic(n): fib = [0] * (n + 1) fib[1] = fib[2] = 1 for i in range(3, n + 1): fib[i] = fib[i - 1] + fib[i - 2] return fib[n] print(fibonacci_dynamic(41)) ``` flag : ``` 165580141 ``` <br> ### 8進位的閱讀 <hr> ``` in8 = "111111111011111111111101111111111111111111111111" ans = int(in8 ,8) print(ans) ``` flag : ``` 3185820721878044443185156021536252022264393 ``` <br> ### 函數的虛擬碼實作 <hr> 有一個XXX函數的虛擬碼如下: ``` function XXX(m, n) while m ≠ 0 if n = 0 n := 1 else n := XXX(m, n-1) m := m - 1 return n+1 ``` 請問XXX(2,2)的值是多少? **解:** 解讀題目的程式碼後即可獲得 flag flag: ``` 5 ``` <br> ## PPC101 ### PPC1_hello world. <hr> 直接使用 ssh 連線網站即可取得 flag <br> ### PPC2_3rd <hr> ``` from pwn import * r = remote('140.110.112.219',2400,level='debug') r.recvlines(6) r.recvuntil('numbers : ') num_line = r.recvline().strip() # strip()去除字串前後空白 numbers = [int(x) for x in num_line.split()] # 用列表建構方式將整數列以空白切割並轉成整數 ans = sorted(numbers)[97] r.sendlineafter('answer : ', str(ans)) # remote()連線傳送資料為字串 print (ans) r.interactive() r.close() ``` <br> ### PPC3_beautify <hr> ``` from pwn import * r = remote('140.110.112.219',2401) r.recvlines(7) r.recvuntil('sentence : ') sentence = r.recvline().strip().decode() # decode()將 Byte字串 轉為 ASCII字串 ans = sentence.lower().replace('-', ' ').replace('_', ' ') r.sendlineafter('answer : ', ans) r.interactive() r.close() ``` <br> ### PPC7_calendar <hr> ``` from pwn import * r = remote('140.110.112.219',2402) r.recvlines(9) for i in range(100): r.recvuntil('year : ') year = int(r.recvline().strip()) if ( year%4==0 and year%100!=0 ) or (year%400==0) : ans = b'leap' else: ans = b'ordinary' r.sendlineafter('answer : ', ans) r.interactive() r.close() ``` <br> ### PPC4_count <hr> ``` from pwn import * r = remote('140.110.112.219',2403) r.recvlines(3) for i in range(100): r.recvlines(2) r.sendline(str(i+1)) r.interactive() r.close() ``` <br> ### PPC6_money <hr> ``` from pwn import * r = remote('140.110.112.219',2407,level='debug') r.recvlines(8) for i in range(100): r.recvuntil('money : ') money = int(r.recvline().strip()) r.recvuntil('interest : ') interest = int(r.recvline().strip()[:-1]) ans = money + money*interest//100 r.sendlineafter('answer : ', str(ans)) r.interactive() r.close() ``` <br> ### PPC5_lambda <hr> ``` # if-else 版 from pwn import * r = remote('23.146.248.231',5124) r.recvlines(12) for i in range(100): r.recvuntil('function : ') f = int(r.recvline().strip()) r.recvuntil('x = ') x = int(r.recvline().strip()) if f == 0: ans = 3*(x**2) + x + 3 elif f == 1: ans = 5*(x**2) + 8 elif f == 2: ans = 4*(x**3) + 6*x + 6 elif f == 3: ans = 7*(x**3) + 5*(x**2) elif f == 4: ans = x**2 + 4*x + 3 r.sendline(str(ans)) r.interactive() r.close() ``` <br> ### PPC8_temperature <hr> ``` from pwn import * r = remote('140.110.112.219',5127) r.recvlines(5) for i in range(100): r.recvuntil('Fahrenheit : ') F = int(r.recvline().strip()) C = str((F-32)*5) + '/9' r.sendlineafter('Celsius : ', C) r.interactive() r.close() ``` <br> ## 註: 還有一些題目,但在解完後我沒有足夠的時間保留題目,只有些許圖片作為我有撰寫的證明,其餘的參照下方鏈結 ### **[SecurityFoscusOnline2023's github](https://github.com/MyFirstSecurity2020/SecurityFoscusOnline2023/tree/main)** <hr> <br> **可以分離出 flag 的照片** ![abc](https://hackmd.io/_uploads/H1_Ev_nygl.jpg) **分離出來的照片** ![carter-1](https://hackmd.io/_uploads/rJ9qwO3yel.jpg) <hr> **超長的 zero and one 字串** ![image](https://hackmd.io/_uploads/H1ARjO2kgx.png) **用 python 解碼** ``` text = """ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ZERO ZERO ONE ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ZERO ONE ZERO ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ONE ZERO ONE ZERO ONE ZERO ONE ZERO ZERO ONE ONE ZERO ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ONE ZERO ZERO ONE ONE ZERO ONE ZERO ZERO ZERO ONE ONE ZERO ZERO ONE ONE ONE ZERO ONE ZERO ZERO ONE ONE ONE ONE ZERO ONE""" # 去除換行和空格 text = text.replace("\n", " ").strip() # 取代ZERO為0,ONE為1 binary_string = text.replace("ZERO", "0").replace("ONE", "1").replace(" ", "") # 分每8位轉成字符 decoded = ''.join(chr(int(binary_string[i:i+8], 2)) for i in range(0, len(binary_string), 8)) print(decoded) ``` flag: ``` ctf{c0ngr4tul4t10ns_y0u_h4ve_succ3ssfully_d3c0ded_th3_b1n4ry!} ``` <hr> **忘記做什麼用的封包,應該是要分析還是找甚麼特定的 port** ![image](https://hackmd.io/_uploads/HJ23T_nJgl.png) <hr> **應該又是一個裡面藏了flag的圖片** ![螢幕擷取畫面 2025-04-28 120726](https://hackmd.io/_uploads/S18vJF3yel.png) <hr> **很多可以分析的封包** ![螢幕擷取畫面 2025-04-28 121145](https://hackmd.io/_uploads/SyEEgF21xx.png) <br> # **參加證明** ![SecurityFocus Online 2023](https://hackmd.io/_uploads/Bk40xt21el.jpg) ## **心得** 這是一場以資訊安全實作為核心的線上營隊活動,課程內容涵蓋了 Web 安全、隱碼術、加密技術與 Pwn 等多個資安領域。由於我對資訊安全領域懷抱著濃厚興趣,參與此營隊的初衷是希望能更深入理解網路背後的運作機制,以及實際攻防技術的原理與應用。 在營隊期間,我親自使用了如 kali linux 和 Wireshark 等資安工具,實際進行資料封包的攔截、分析與重組,從中體驗如何從細微的線索中推敲出問題的根源,並練習驗證與逆向推理漏洞利用的過程。這樣的實作經驗,不僅強化了我對網路安全細節的掌握,也培養了縝密觀察與邏輯推理的能力。 其中,我對 Pwn 題目 特別感到著迷。能夠透過自撰程式與遠端主機建立連線,進行互動並最終成功取得 flag,帶給我莫大的成就感與樂趣。這個過程也點燃了我深入研究底層系統運作原理與漏洞利用技術的熱情。透過一次次破解挑戰,我不僅鍛鍊了程式碼解構、邏輯推理與快速應變的能力,也逐漸熟悉 CTF 競賽中的典型思考模式與攻防策略。