這題目是一題典型 Pwn。
Thats still kindergarten stuff. Flag in /opt.
nc kindergarten.uni.hctf.fun 13373
48800cb1ffbd78f067d68425baa25d88.tar.xz
連 flag 位置都給你了,溫馨。所以我們這題目標應該就是 RCE。
Arch: amd64-64-little
RELRO: Partial RELRO
Stack: Canary found
NX: NX enabled
PIE: PIE enabled
不過這個有開 NX/PIE/Canary。東西的位置不是固定的,然後 Stack 不能執行。
執行這程式會看到這種奇怪輸出:
[es@es-l importantservice]$ ./importantservice
Please enter width and height e.g.: 5 8
5 8
Please provide some data e.g.: 12345
11111
88888
77777
66666
55555
44444
33333
22222
11111
[es@es-l importantservice]$ ./importantservice
Please enter width and height e.g.: 5 8
9 9
Please provide some data e.g.: 12345
999999999999999
AAAAAAAAA
@@@@@@@@@
?????????
>>>>>>>>>
=========
<<<<<<<<<
;;;;;;;;;
:::::::::
999999999
這程式看起來會先要求一個寬和高,然後讀另一個數值,然後用它去呼叫 dologic()
。dologic
似乎也有規則。例如說輸入寬 5,高 8,則產出的數字會是 8 行 5 寬。main
中是有檢查長度是否會使輸出大於 0x400byte,但我們可以輸入 0。
但我們無法 leak 地址,也沒辦法執行 stack。這是比較麻煩的。我們下集會研究看看怎麼處理。