티스토리 뷰

728x90
반응형

[level7@ftz level7]$ cat hint

/bin/level7 명령을 실행하면, 패스워드 입력을 요청한다.

1. 패스워드는 가까운곳에..
2. 상상력을 총동원하라.
3. 2진수를 10진수를 바꿀 수 있는가?
4. 계산기 설정을 공학용으로 바꾸어라.

우선 지문대로 /bin/level7 프로그램을 실행시켜보았습니다.

어떤 Password를 입력해보아도 동일한 결과를 출력했는데요. 힌트를 보아 위 모스부호처럼 생긴 문자열을 풀면 Password가 나오는 형식인가 봅니다.

 

우선 지문대로 추출가능한 패턴대로 2진수로 변환해보았고, 2진수를 토대로 다시 10진수로 변환해보았고, 이를 다시 ASCII 코드로 변환해보았습니다.

 

그리고 이를 PoC 코드로 작성해보았고 아래와 같습니다.

# python3
import sys
cipher = sys.argv[1]
bin_data = cipher.replace('-', '1').replace('_', '0')
bin_array = [chr(int(data, 2)) for data in bin_data.split(' ')]
print("".join(bin_array))

 

실행 결과는 아래와 같습니다.

그리고 이제 이 결과를 토대로 아까 /bin/level7 프로그램에서 password로 입력하면 아래와 같이 level8의 비밀번호를 획득할 수 있게 됩니다.

 

- 끝 -

728x90
반응형
댓글