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即可。