BUUCTF 4.ciscn_2019_n_1

Eanck發表於2024-07-28

拿到題目首先先執行程式

我們發現給了我們一個數字,我們猜測應該是一個條件判斷的程式,然後我們檢查一下保護機制

我們發現只開了NX(不可執行)保護,那我們直接看IDA就行了。

main函式只是設定了無緩衝模式,以及呼叫了一個func函式,然後我們看一下

我們可以看到gets 和我們想要的flag,至此我們有兩種方法:
1.我們可以透過棧溢位的漏洞,將v2的值改為11.28125,可以獲得flag
2.我們可以透過棧溢位的漏洞,將返回地址定位到system函式,也可以獲得flag

從圖片中我們可以知道v1到v2的距離是(0x30-0x04),v1到返回值地址的距離是(0x30+0x08)
所以
1.exp為:

flag:

2.exp為:

flag: