ssoL2 TISTORY

[CTF-D/Disk] fore1-hit-the-core 본문

challenge/forensic

[CTF-D/Disk] fore1-hit-the-core

ssoL2 2021. 5. 21. 09:32

문제 : hit the core.........?? 코어를 쳐라..?

정확히 찾아야 하는 것을 명시하지 않았다.. 일단 분석하자.

 

 

core 확장자를 처음 보았기에 무엇인지 찾아보았다.

core 파일이란, 비정상적으로 종료되었을 때 현재 프로그램의 상태를 기록하는 파일이다.

 

 

기본적으로 segmentation fault 발생 시 생성되는 core dump file인 것 같다.

fore1.core 파일인 ELF 파일을 어떻게 분석해야 할까?

 

 

먼저 strings로 flag가 출력되는지 확인해보았지만 출력되는 것을 없었다.

 

 

전반적인 fore1.core의 string을 살펴보기 위해서 string file을 생성한다.

 

 

sublime으로 fore1.txt을 살펴보자.

 

 

상당히 긴 text data이기 때문에 일일이 살펴볼 수가 없다.

flag 형식인 ALEXCTF를 검색할 때는 존재하지 않았지만,

결국 key값을 찾기 위해서는 flag임을 보여주기 위해 {key} 형식으로 숨겨져 있을 것이다.

따라서 중괄호 '{'를 검색한다. 총 12개가 나온다. (개꿀!)

 

 

검색 결과에서 유일하게 유의미한 결과는 다음과 같다.

심지어 중괄호로 열리고 닫히는 과정까지 존재하기 때문에 순간 flag인 줄 알고 입력해보았지만 틀렸다..

 

 

계속 관찰하다보니 규칙성을 찾을 수 있다.

앞에서부터 대문자만 골라보니 "ALEXCTF"였고, 이 사이의 간격은 4칸만큼 차이가 존재한다.

 

 

위의 규칙성을 바탕으로 일일이 찾기가 귀찮아서... Python으로 간단하게 돌려보면 flag가 출력하게 된다.

string = 'AeqacLtqazEigwiXobxrCrtuiTzahfFreqc{bnjrKwgk83kgd43j85ePgb_e_rwqr7fvbmHjklo3tews_hmkogooyf0vbnk0ii87Drfgh_n kiwutfb0ghk9ro987k5tfb_hjiouo087ptfcv}'
count=0
while True :
  print(string[count], end='')
  count+=5
  if count >= len(string) :
    break

 

 

끝!

 

 

🚫 flag는 🚫

더보기

ALEXCTF{K33P_7H3_g00D_w0rk_up}

Comments