###### tags: `NCTU` `CS` `Course` `SecureProgramming` HW 0x00 Write Up == yysung ## Buffer Overflow flag: FLAG{B0fs_4re_th3_Bas1cs} 使用 ``` objdump -D bof-485e09d5c2b2d4841afd4302c74e5c09 ``` 可以得知程式的行為是用 gets 讀取 stdin 並放入 16 bytes 的空間中, 因為讀取沒有檢查輸入長度,所以可以輸入超過長度的字串修改 return address 讓程式執行到 hidden 函式。 輸入值為 16 * 'A' (填滿 16 bytes char array 的空間) + 8 * 'A' (填滿 stack 的 rbp) + 0x0000000000400566 (hidden 的位址,覆蓋在 return address) 成功執行 hidden 函式後可以拿到 shell ``` cd ../ cat flag ``` 就可以拿到 flag ## Pusheeeeen flag: FLAG{GGININDERLA} 原連結是:http://kaibro.tw/hw0/hw0.php 點進去後會跳轉到:http://kaibro.tw/hw0/hw0-0.php 觀察瀏覽器行為後發現: http://kaibro.tw/hw0/hw0.php 跳轉到 http://kaibro.tw/hw0/kaibro_big_gg.php 跳轉到 http://kaibro.tw/hw0/hw0-0.php 中間的 kaibro_big_gg.php 的 Content-Length 特別大, 因為瀏覽器不會顯示跳轉頁面的內容, 所以使用 curl 顯示 ``` curl http://kaibro.tw/hw0/kaibro_big_gg.php ``` ## MdRsRcXt flag: flag{how2decrypt} 輸入的字串會經過 個別字元 md5 -> rsa 加密 -> rc4 加密 -> xtea 加密 得到 A 所以只要倒過來順序解密和查看 md5 就可以得到 flag ## babystego flag: flag{talkative_image} 使用 stegsolve 打開圖片後,發現 Blue plane 0 的資料不太像是原本圖片的資料, 將該層資料取出後用 file 指令查看後發現是 MPEG 格式,使用音樂播放器可以打開檔案 聽起來像是人聲倒播,將音訊倒播後可以聽到數字和英文 兩個兩個一組看就會發現是 ASCII code,也就是 flag stegsolve: https://github.com/zardus/ctf-tools/tree/master/stegsolve ## notbabyjava flag: flag{baby_java_anti_rev} 使用 jad 對題目檔案進行解碼就能得知原始碼, 照著原本 xor 的值,再做一次 xor 就可以得到 flag jad: http://www.javadecompilers.com/jad
×
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