緩衝區溢位攻擊實驗 二 (32位)

2021-08-20 15:09:56 字數 2084 閱讀 1789

步驟2 返回到fizz()並準備相應引數

2.1 解題思路

找到fizz()**如下:

08048e60:

8048e60:    55                   push   %ebp

8048e61:    89e5                mov    %esp,%ebp

8048e63:    83ec 08                sub    $0x8,%esp

8048e66:    8b45 08               mov    0x8(%ebp),%eax

8048e69:    3b05 d4 a1 04 08         cmp    0x804a1d4,%eax

//0x804a1d4存放就是使用者的cookie值,即執行命令「./bufbomb-t luoxiaolin」時傳入的。

8048e6f:     741f                  je     8048e90

8048e71:    8944 24 04             mov    %eax,0x4(%esp)

8048e75:    c704 24 8c 98 04 08        movl   $0x804988c,(%esp)

8048e7c:     e827 f9 ff ff       call   80487a8

8048e81:    c704 24 00 00 00 00       movl   $0x0,(%esp)

8048e88:    e85b f9 ff ff       call   80487e8

8048e8d:    8d76 00               lea    0x0(%esi),%esi

8048e90:    8944 24 04             mov    %eax,0x4(%esp)

8048e94:    c704 24 d9 95 04 08       movl   $0x80495d9,(%esp)

8048e9b:    e808 f9 ff ff       call   80487a8

8048ea0:     c704 24 01 00 00 00       movl   $0x1,(%esp)

8048ea7:     e844 fc ff ff       call   8048af0

8048eac:     ebd3                jmp    8048e81

8048eae:     89f6                  mov    %esi,%esi

分析:由8048e66:  8b 45 08 mov 0x8(%ebp),%eax 得知,

fizz的引數位置在%ebp+0x8,在%ebp之前的棧中存的是%ebp的舊值。

2.2 解題過程

光看**還是不能理解的很清楚,所以現在我們把棧幀的結構畫出來:

圖13(圖中位址是根據gdb除錯得出的)

這裡假設呼叫getbuf時,輸入正確的字串後,函式返回到fizz()函式,那麼,test的棧幀結構將變成下圖。

圖14由圖可以看出,deadbeff下面到ebp舊值上面的區域,還有%ebp舊值以下的部分都是fizz函式的棧幀結構。那麼這道題的答案也就知道了,這次需要輸入40個位元組的字串。倒數第8至倒數第16個位元組代表fizz的位址,倒數8個位元組是傳入的引數,fizz()函式的位址為「08048e60」,引數根據題目要求需要傳入乙個黑客cookie值,我的cookie值為「0x33102f15」。

2.3 最終結果截圖

圖15

緩衝區溢位實驗

具體過程嚴格按照上面所描述。首先配置好環境。存漏洞程式stack.c,如圖,需對其許可權做更改,更改前後的許可權變化如圖,同樣是按照文件中的 存乙個exploit.c,先存著。使用gdb,在這裡我遇到了問題,因為在設定斷點時輸錯了位址,所以在輸入r時執行失敗,顯示無法插入斷點。解決方法 使用help...

緩衝區溢位漏洞實驗

根據實驗指導輸入命令安裝一些用於編譯 32 位 c 程式的軟體包 關閉位址空間隨機化功能 設定 zsh 程式 輸入命令 linux32 進入32位linux環境 在 tmp 目錄下新建乙個 stack.c 檔案,編輯 編譯該程式,並設定 set uid 在 tmp 目錄下新建乙個 exploit.c...

緩衝區溢位攻擊試驗(bufbomb c)

本文的 來自 於 computer systems a programmer s perspective 深入理解計算機系統 一書中的bufbomb.c作業題。實驗環境xp vc6.0。另 linux2.6 gcc4.x下目前碰到棧保護等措施,暫時還沒研究出結果。問題描述如下 分析下面程式,可以得知...