這次視頻講解的是通過jmp esp佈置跳到shellcode執行
pwn_by_example_7_b0verfl0w (jmp esp):https://www.bilibili.com/video/av35112734
與這個視頻的第一集講解的內容一致:https://www.bilibili.com/video/av51256118
這道題是X-CTF Quals 2016 的 b0verflow
s大小爲0x20,這道題與前幾到題相比,限制輸入50個字節
nx沒有開,所以考慮傳入shellcode,然後跳過去執行,這裏很明顯只有個fgets函數接受輸入,所以我們可以把shellcode放在衝區s的開頭, 然後控制eip指向到shellcode開頭
如圖爲函數返回過程最後時,會pop eip,esp會剛好指向返回地址的下一個地址,所以考慮將esp移動到shellcode,那麼接下來就會讓eip指向shellcode。
這個太大,所以考慮
內存中尋找jmp esp指令:ROPgadget --binary . /b0verflow | grep esp
就是先將shellcode佈置到棧上,返回地址爲jmp esp的地址,sub esp,0x28和jmp esp作爲參數首先執行然後執行p32()裏面的指令
完結,撒花!