오랜만에 포스팅하는
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 파일 구조와 관련된 용어이다.
온라인으로 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로 설정해주면
플래그를 확인할 수 있다.
'워게임 > CTFlearn' 카테고리의 다른 글
[CTFlearn] Old memories - 프로그래밍 / PIL (114) | 2023.08.01 |
---|---|
[CTFlearn] Bobby Toe's iPad - 포렌식 / Stegsolve / HxD (76) | 2023.07.12 |
[CTFlearn] Bite-code - 리버싱 / Python (65) | 2023.05.10 |
[CTFlearn] Riyadh - 리버싱 / IDA / Pwndbg (49) | 2023.04.27 |
[CTFlearn] Brute Force is Fun! - 포렌식 / HxD / Python (62) | 2023.04.23 |