Hint : Password : Nz3#s)2=1@./AS|\sas;192Sljd!*&^
문제에서 제공된 파일을 압축해제 하려고 하니 이런 오류가 발생했다.
해당 오류가 발생하는 이유를 찾아보니 “잘못 구성된 시스템 파일로 인한 레지스트리 오류 및 손상”라고 한다.
파일 안에 다른 파일이 숨겨져 있거나 인코딩 과정에서 필요없는 부분을 삭제/변경 하면 될 것 같다는 생각이 들었다.
- PK 어쩌구면 zip 파일
왜 zip 헤더는 두 개인데 푸터는 하나지?
zip 파일의 헤더는 두 개인데 푸터는 하나만 있다는게 마음에 걸린다.
따라서, 전체의 파일 디코딩에서 zip 파일의 푸터인 50 4B 05 06 만 추가해 새로운 zip 파일로 만들었더니 안에 들어있는 jpg 파일을 보기 위해서는 또 다른 암호가 필요하다.
위의 힌트로 제공된 암호로 열었더니 여자의 사진과 ke0n9.zip 파일이 나온다. 이 여자 사진은 뭐지 .. 이사람 이름이 keong인가..
53D9 5542
안쪽에 숨어있는 zip 파일만 따로 빼서 새 파일을 만들었더니 암호를 입력하라는 창이 뜬다. 힌트로 제공된 암호를 입력하면 파일 내용을 볼 수 있다.
압축을 풀면 또다른 파일이 들어있는 것을 확인할 수 있다.
이 파일 또한 암호를 요구하기에 찾아내야 한다.
jpg 파일을 HxD 분석으로 살펴보면 텍스트 형식의 글자를 볼 수 있다. 이는 ASCII 값으로 Base 64 인코딩으로 보인다. 따라서 Vm14U1NtVkZNVWRYYkZwUFZsWmFhRlJVUmt0V1ZuQllaRWRHVGxac1NubFdiWEJQVlZaV1ZVMUVhejA9를 계속 복호화 돌려보다보면 flag 값을 찾을 수 있다.
- 맨 끝에 = 가 나오지 않을 때 까지 복호화 하기
zip 파일의 암호는 JkT48-K1n4L
Fl4g ->> D3v1-Kin4L-pUtRI
1. Zip 파일 내부 구조
디코딩 값을 살펴보던 중 50 4B 03 04 말고도 50 4B 01 02 도 눈에 띄어 찾아보니 전자는 zip 파일의 로컬 헤더, 후자는 압축 파일을 생성할 때 필요한 헤더라고 한다.
2. 인코딩과 Base 64
인코딩 : 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식
Base64 인코딩 : Base64란 Binary Data를 Text로 바꾸는 인코딩 방법 중 하나로써 ASCII 영역의 문자로만 이루어진 문자열로 바꾸는 인코딩이다. Base64를 글자 그대로 직역하면 64진법이라는 뜻이다. 64진법은 컴퓨터한테 특별한데 그 이유는 64가 2의 제곱수 64=2^6이며 2의 제곱수에 기반한 진법 중 화면에 표시되는 ASCII 문자들로 표시할 수 있는 가장 큰 진법이기 때문이다. 즉, 컴퓨터의 바이너리 데이터를 텍스트로 변경하는 인코딩이다.
'정보보안 공부 > CTF(해킹)' 카테고리의 다른 글
[withCTF] 저는 당신의 생각을 알고 있습니다. + exif 정보 (0) | 2023.01.15 |
---|---|
[withCTF] Find Key(butterfly) (0) | 2023.01.15 |
[withCTF] 사진 속에서 빨간색이… (0) | 2023.01.15 |
[withCTF] Find Key(moon) (0) | 2023.01.15 |
[with CTF] 이 그림에는 뭔가 좀 수상한... (0) | 2023.01.15 |