워게임/CTFlearn

[CTFlearn] The Keymaker - 포렌식 / JPEG / HxD

SecurityMan 2023. 7. 10. 11:00

 

오랜만에 포스팅하는

 

CTFlearn의 문제

 

Medium 난이도의 포렌식 문제이다.

 

반응형

 

 

문제에서 주어지는 The-Keymaker.jpg 파일은 이렇게 생겼다.

 

 

HxD를 이용해 열어보면

 

앞부분에 뭔가 수상한 내용들이 보인다.

 

 

보기좋게 편집하면 이렇게 생겼는데,

 

맨 위에 있는건 당연히 가짜 플래그이고

 

두번째줄부터 뭔가 Base64 인코딩된 내용이 보인다.

 

 

CyberChef(https://gchq.github.io/CyberChef) 에서 Base64 디코딩을 해봤다.

 

두번째줄부터 네번째 줄까지는 문제에 대한 힌트였다.

 

내용을 보면

 

AES-256-CBC를 이용해 flag 를 암호화 했고,

 

iv 로는 SOF0을, key 로는 SOS 를 사용했다고 나와있다.

 

mmtaSHhAsK9pLMepyFDl37UTXQT0CMltZk7+4Kaa1svo5vqb6JuczUqQGFJYiycY

 

암호화한 값의 Base64 인코딩한 결과가 위의 값이라는 것이다.

 

 

SOF0, SOS는 JPEG 파일 구조와 관련된 용어이다.

 

https://planetcalc.com/9291/

 

Online calculator: Jpeg file structure

 

planetcalc.com

 

온라인으로 JPEG 파일 구조를 분석해주는 사이트가 있는데

 

여기에 해당 파일을 업로드하면 볼 수 있다.

 

SOF0 에서 마커와 길이를 뺀 나머지 부분을 iv 로,

 

SOS 에서 마커를 뺀 나머지 부분을 Key 로 사용하면 된다.

 

 

먼저 SOF0 이다.

 

SOF 같은경우 마커가 FF C0 이다.

 

그 다음에 오는 2 바이트 ( 00 11 ) 은 길이를 의미한다.

 

마커와 길이를 빼랬으니 그 다음인 08 00 ~ 부터 iv 길이인 16 바이트만큼 복사해둔다.

 

 

SOS 같은 경우 마커는 FF DA 이다.

 

마커를 빼랬으니, 

 

그 다음에 오는 00 0C ~ 부터 AES-256의 Key 길이인 32 바이트만틈 복사해둔다.

 

 

key 와 iv 를 알았으니 바로 풀어주면 된다.

 

CyberChef 에서  key 와 iv 에 올바른 값을 넣고,

 

Mode를 CBC로 설정해주면

 

플래그를 확인할 수 있다.

반응형