CTF Cite : https://play.picoctf.org
1. two-sum
Integer Overflow를 이용하여 flag를 찾는 문제이다.
힌트 1) Integer Overflow
힌트 2) Not necessarily a math problem
nc 명령어를 이용하여 해당 사이트에 접속하며 두개의 정수를 입력하라고 한다.
아무 숫자나 입력하며 No Overflow가 출력되며 종료된다.
주어진 코드 중 핵심이 되는 코드를 살펴보았을 떄 flag으로부터 문자열을 입력받아 배열 buf에 59길이만큼 저장하여 printf함수로 문자열이 출력되도록 한 후 fflush 함수로 출력 버퍼를 비우고 있다.
int 데이터 최대값은 아래와 같다.
- 32bit: 2,147,483,647
- 64bit: 9,223,372,036,854,775,807
두수를 합쳤을 때 최대값보다 크면 flag를 획득할 수 있다.
2. hijacking
권한을 상승하여 루트 엑세스 권한을 얻어 flag를 획득하는 문제이다.
힌트 1) Check for Hidden files
힌트 2) No place like Home:)
ssh로 서버의 접속하여 ls -al 명령어를 통해 숨겨져있는 파일/디렉토리를 확인했다.
.server.py 파일을 확인해볼려고 했으나 권한이 picoctf가 아닌 root로 되어 있어 확인할 수 없었다.
sudo -l 명령어를 입력하여 현재 사용자가 실행할 수 있는 sudo 권한이 무엇인지 확인했다.
vi 기능에 sudo 권한을 사용할 수 있다는 것을 확인하여 이를 활용해 쉘에 진입하였다.
1) sudo vi | :shell
or
2) sudo vi -c ":!/bin/sh" /dev/null
1) sudo vi | :shell
whoami 명령어를 통해 root 계정으로 권한상승이 되었음을 알 수 있다.
root 계정에 처음 디렉토리 위치로 이동하여 문서/파일을 확인했고 challeng라는 디렉토리가 존재함으로 확인했다.
해당 디렉토리 안에 metadata.json이라는 파일을 확인하였고 cat 명령어를 사용해 안으로 확인해보았더니, flag를 획득할 수 있었다.
2) sudo vi -c ":!/bin/sh" /dev/null
password는 ssh 서버 접속할 때 작성한 password로 입력해줬다.
whoami 명령어를 통해 root 계정으로 권한 상승이 되었다는 것을 알 수 있다.
힌트 2번이 No place like Home:) 이므로 root 디렉토리로 공간을 이동했다.
그 후 목록을 확인하여 .flag.txt 파일을 확인했고 cat 명령어를 사용하여 해당 파일을 읽어 flag를 획득했다.
'4-2. 2024-1 심화 스터디 > 워게임 도장 깨기' 카테고리의 다른 글
[2024.05.09] - Forensic War Game Write Up (0) | 2024.05.25 |
---|---|
[6주차] 2024.05.10- Reversing War Game Write Up (0) | 2024.05.17 |
[4주차] 2024.04.05 - Web War Game Write Up (0) | 2024.04.05 |
[3주차] 2024.03.29 - Pwnable War Game Write Up (0) | 2024.03.29 |
[2주차] 2024.03.14 - Reversing War Game Write Up (1) | 2024.03.22 |