君莫笑系列視頻學習(5)(終)

這次視頻講解的是通過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()裏面的指令

 

完結,撒花!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章