GUETSEC

fdddddd發表於2024-11-30

1. GUETSEC棧溢位

可以看到它看起來好像有四個棧溢位,我們逐個點進去




__isoc99_scanf("%20s", v1):限制了讀取20個字串(但其實無法完全杜絕緩衝區溢位風險)
0x50=80,對於second attack是溢位了,final chance卻沒有。
所以其實只有second attack存在棧溢位。
我們再看一下,有個gift函式,裡面有system函式

再搜尋一下,發現有個/bin/sh


那麼一切就好辦了,對second進行棧溢位之後將程式調轉到system,並且要先輸入first attack的值

這裡的system的地址是plt,p32(0)填入的是返回地址,因為不需要了可以隨便輸,p32(binsh)是system的引數

這裡的system是call system的地址,再給一個引數binsh即可。