Yuawn Pwn1 bof Writeup
bof
Overview
附上這題的 source:
1 |
|
經典的 bof,這題目標就是透過沒有限制輸入長度的 gets()
函式來控 $rip 到 try_to_call_me()
來開一個 shell,那廢話不多說,有兩件事要做:
- 算 offset
- 要跳的位址
算 offset
我們直接用 objdump 來看看 buffer 的大小:
1 | objdump -M intel -d ./bof | less |
然後搜尋 main:
可以看到 buffer 的大小是 0x30,加上 saved rbp,我們的 offset 應該會是 0x38,第一階段完成。
要跳的位址
一樣直接在 objdump 裡面找 try_to_call_me()
就行:
那值得注意的是我們這邊不能直接跳到 0x400687,理由是我們必須對齊 0x10 的格式,而原本的 ret 就已經會有一個八個 bytes 的位址在 stack 裡,所以這邊一個比較直觀的解法是直接往後多跳一點到 0x40068b。
exploit 如下,題目是架在自己的機器上:
1 | from pwn import * |
執行結果:
Pwned !!!
- Title: Yuawn Pwn1 bof Writeup
- Author: kazma
- Created at : 2023-12-10 18:53:39
- Updated at : 2023-12-12 23:52:25
- Link: https://kazma.tw/2023/12/10/Yuawn-Pwn1-bof-Writeup/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments