AlpacaHack Round 6 (Pwn) - writeup
Author: 堇姬Naup
最近看到來賽後挑戰一下,除了第三題外都有打出來
簡單記錄一下
inbound
oob 寫 GOT 成 win function
PY
1 | from pwn import * |
catcpy
strcpy 沒有 overflow,但用 strcat 串上去後會 overflow,但是 strcat 不能用 Null byte,另外若不是用上限長度的話,會產生 \x0a,先去修掉原來 return address 上一個 libc address 的高位,之後 strcat 輸入到極限長度,蓋上 win function
PY
1 | from pwn import * |
ideabook
有 oob,可以導致 index 輸入 16 的 chunk size,吃到 index 0 的 pointer,所以可以輸入長度變成超級長,所以導致 heap overflow + UAF
另外通過去修改某塊 chunk 的 size,及補上 prev size,讓我們可以去 free 出一塊 libc 再通過 UAF 就可以 leak libc 了
另外也可以 leak heap 來 bypass pointer protect
最後打 tcache poinsoning 來去任意寫 stderr,打 IO_FILE 來 get shell
這題是用我的 template exploit 的
可以去我 github 上的 MyCTFlib 找到
PY
1 | from pwn import * |
after all
其實 alpacahack 的 pwn 感覺不難,完成這三題大概花了 6~7 小時左右,主要是排 heap 踩了些坑
第三題只有看出一個 Null byte overflow,在 stack 上,大致想法是將 rbp 修小,讓 return address 變到一個可控的位置,就可以打 ROP 了,不過一直沒有 exploit 出來
如果有人想討論題目歡迎私訊