Pwnable/FTZ

[FTZ] level 7 풀이 <진법변환, ASCII>

lvolzoo 2024. 1. 18. 00:29
반응형

 

1.

역시 가장 먼저 열어보는 hint 파일.

/bin/level7 명령을 실행하면 패스워드 입력을 요청한다니 /bin/level7 명령을 실행해보자 !

 

 

힌트에 나온대로, /bin/level7을 실행하면 패스워드 입력을 요청한다.

아무말이나 입력했더니 wrong.txt 라는 파일이 없다는 에러메세지가 출력된다.

 

좀 멘붕이 와서 구글링 했더니, 이는 해커스쿨 FTZ 오류란다.

 

원래는 bin 디렉토리에 아래와 같은 내용이 있어야 한다.

올바르지 않은 패스워드 입니다.
패스워드는 가까운곳에...
——- —__- —--__ —__--

 

 

그래서 이 문제를 풀려면 /bin 디렉토리에 wrong.txt 라는 파일을 추가해줘야 한다.

 

 

 

2.

wrong.txt 파일을 포함시키기 위해선, vi 에디터로 내용을 붙여넣으면 되지만 level* 계정에는 쓰기 권한이 없다.

따라서, root 계정으로 로그인하여 텍스트 파일을 생성해야 한다.

 

 

루트 계정은

ID : root

PW : hackerschool

루트 계정으로 로그인 해주고 bin 디렉토리로 이동했다.

 

vi 에디터로 wrong.txt 파일을 만들었다.

——- —__- —--__ —__-- 를 입력해줬다.

 

 

다시 level7로 로그인 해주자

 

 

-와 _, 2가지 문자라고 생각하면 2진수임을 알 수 있다.

-는 1, _는 0으로 생각하고 공학용 계산기를 이용해 이 2진수를 10진수로 변환해보자.

 

1101101 = 109

1100001 = 97

1110100 = 116

1100101 = 101

 

 

숫자들을 보니 떠오르는 것은 ASCII 코드표 !!

MATE

 

 

 

 

추가

hint를 다시 한번 살펴봤다.

 

2진수를 10진수로 바꿀 수 있는가?

- echo "ibase=2; 11011" | bc (ibase 설정)

- 공학용 계산기에서 할 수 있음 ^_^

 

계산기 설정을 공학용으로 바꾸어라.

 

아스키코드

- 컴퓨터가 문자를 인식하는 방법
    : 문자 그대로 인식하는게 아니라, 그 문자와 매치되는 즉 이미 약속되어 있는 어떤 숫자로서 처리를 하게 됨

- 컴퓨터는 단순히 2진수밖에 인식 하지 못하기 때문에 문자를 인식하게 하려면 숫자를 이용해야 함.

- 숫자를 가지고 문자를 표현하기 위해 미리 어떤 문자는 어떤 숫자로 한다는 약속 == 아스키코드

 

 

 

(2019.12에 작성한 글을 가져왔습니다.)

반응형