那么又是我来水文章了
首先看到这个附件啊,直接就一手下载过来,扔kali里跑跑看看有什么玩意保护
OK,这是一个64位的啥保护都没有的程序,接下来就可以扔ida里看看伪C了,我们直接点进main按F5看伪C(不要忘记main下面还有一个get_shell函数嗷)
看一下get_shell函数
很明显,我们要执行的是get_shell函数而不是main函数,重新回main函数看一下read那边是存在有栈溢出漏洞的
(关于栈溢出漏洞详情可百度,这边简化一下说就是去执行get_shell函数)
##看read里的&s的起止(双击就行)
可以看到,我们需要计算的偏移量是+0x08-(0x30)=0x38,那么我们要把这个量转移到get_shell函数的那个地址去
得到get_shell函数地址是0x400751,接下来就是利用py写脚本了
from pwn import *
r=remote('ip',端口)
payload = 'a'*0x38+p64(0x400751)
r.sendline(payload)
r.interactive()
注意payload这个地方两个不能写反了,不然是不行的(我就这么踩雷的!!!好蠢!!!)
扔kali里跑
!!!!!!!!
本人大菜鸡,所提之处有问题请见谅!有改进建议请告诉我!也是参考大佬原文学习的!
可参考大佬原文原文