--- image: https://i.imgur.com/msUlGRr.jpg --- QQ ㄋㄟㄋㄟ好打到咩噗CTF - 中科 write-up === [TOC] ---- # 中科 - Web ---- ## admin 1. 打開頁面會出現 `Forbidden page!`  2. 在添加 `X-Forwarded-For: 127.0.0.1` HTTP 標頭後會來到一個登入頁面  3. 嘗試使用 admin 搭配 [常見密碼](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10-million-password-list-top-100.txt) 暴力破解,能用 `admin:12345678` 成功登入並拿到 flag  ``` HTTP/1.1 200 OK Date: Thu, 14 Jan 2021 11:15:13 GMT Server: Apache/2.4.38 (Debian) X-Powered-By: PHP/7.4.13 Content-Length: 37 Connection: close Content-Type: text/html; charset=UTF-8 <h2>SWCTF{4R3_Y0U_4_R34L_4DM1N?}</h2> ``` ---- # 中科 - Misc ---- ## disseminate 1. 題意是找出文章中不一樣的地方,打開txt後發現文章內有些許錯字  2. 將第一句拿去餵google,可找到原始文章  3. 使用工具比較與原文不同之處,拼湊錯字後即可得到flag  ``` flag: SWCTF{Googlehelpme!} ``` ---- ## матрёшка_1 1. 將題目解壓縮後,可以看到flag0-flag4資料夾,此結構共重複出現六層,而最後一層有txt文件  2. 原則上這題是希望利用script來解題,不過好像出現許多偏方XD,這邊使用python語法來當作範例 ```python #資料夾 dirlist = ['flag0\\','flag1\\','flag2\\','flag3\\','flag4\\'] #檔案名稱 filelist = ['flag0.txt','flag1.txt','flag2.txt','flag3.txt','flag4.txt'] #使用迴圈拼湊路徑 for d1 in dirlist: for d2 in dirlist: for d3 in dirlist: for d4 in dirlist: for d5 in dirlist: for d6 in dirlist: for fname in filelist: s = d1+d2+d3+d4+d5+d6+fname f = open(s) flag = f.read() if(len(flag)>0): print(flag) f.close() ``` 3. 這題沒有做太多混淆,假flag檔案全都是空的,只要每個內容點開找也能解出來  ``` flag: SWCTF{SH4D0W_CL0N3_JUT5U!!!} ``` ---- ## матрёшка_2 1. 題目為層層包裹的壓縮檔,也是利用script進行解題,這邊一樣用python當範例 (要慢慢點開也是能解出來啦 ```python import os import shutil import zipfile filename = "матрёшка.zip" #建立暫存資料夾以利作業 temp_dir = 'temp\\' os.mkdir(temp_dir) while(True): #解壓縮至temp zipf = zipfile.ZipFile(filename, 'r') zipf.extractall(path=temp_dir) zipf.close() #確認是否還有為解開之檔案 並將目標移出temp if(os.path.exists(temp_dir+filename)): shutil.move(temp_dir+filename,filename) else: break ``` 2. 待程式執行結束於temp資料夾中解出flag.jpg  3. 最後使用base64工具解開即可獲得flag  ``` flag: SWCTF{ZIP_FILE_1S_SUCK!!} ``` ---- # 中科 - Crypto ---- ## code 1. 打開txt後會看到一大串binary,拿遠一點看可以發現有QRcode的回字特徵  2. 將1替換成黑色方塊( █ ),0替換成全形空白( ),可以拿到完整的QRcode  3. 掃描後得到字串"FJPGS{DEEDEEDDDDEEEDEEDE}",但還不是真正的flag,使用凱薩密碼可解開 ``` flag: SWCTF{QRRQRRQQQQRRRQRRQR} ``` ---- # 中科 - Reverse ---- ## func 1. 於 x64dbg 中打開,並執行到入口點 (40147A) 後中斷 2. `右鍵 -> 搜尋 -> 目前範圍 -> 字串引用` 可找到一些有趣字串  3. 點兩下 "Nothing!\n" 跳轉到引用該字串的指令處 (40111C) 4. 反白至函數的起始位置 (401110) 5. 按下 G 可繪製邏輯圖,發現有個明顯分支  6. 於邏輯圖中分支前的 je 指令下斷點 (鍵盤 F2) 7. 切換回 CPU 分頁,繼續執行程式 (鍵盤 F9) 8. 直到程式中斷於剛剛的 je 處,x64dbg 會繪製 je 準備跳到哪 (40112B),並提示跳轉未實現  9. 於 40112B 選擇 `右鍵 -> 將此處設為新的執行點` 以強制跳轉  10. 按下執行到返回 (鍵盤 Ctrl + F9) 後程式會解密並顯示 flag  --- ## password 1. 於 x64dbg 中打開,並執行到入口點 (4014EA) 後中斷 2. `右鍵 -> 搜尋 -> 目前範圍 -> 字串引用` 可找到一些有趣字串  3. 點兩下 "Enter the password: " 跳轉到引用該字串的指令處 (401045) 4. 按下 G 可繪製邏輯圖,發現下面有個明顯分支  5. 於邏輯圖中分支前的 je 指令下斷點 (鍵盤 F2) 6. 切換回 CPU 分頁,繼續執行程式 (鍵盤 F9) 並輸入任意密碼 7. 直到程式中斷於剛剛的 je 處,x64dbg 會繪製 je 準備跳到哪 (401089),並提示跳轉未實現  8. 於 401089 選擇 `右鍵 -> 將此處設為新的執行點` 以強制跳轉  9. 按下執行到返回 (鍵盤 Ctrl + F9) 後程式會解密並顯示 flag 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up