방학 동안 하는게 없는 것 같아서 HackCon CTF를 참가하기로 했다.
온라인으로 진행되는 HackCon은 8월 22~23일 하루동안 진행되었다.
(HackCon.online)
오랜만에 해 보는 CTF라 한 문제도 풀어보지 못할 것 같았고, CTF가 열리는 시간을 혼동하여 롤까지 하고 있었다. 놀듯이 해 봤던 것 같다.
결국 풀기를 성공한 문제는 스테가노그래피 100점이 부여된 첫 번째 문제뿐이었다. 이것도 예전에 비슷한 흐름을 본 적이 있어서 그 감으로 풀었던 것 같다.
사진을 열어보면 THIS_IS_NOT_A_FLAG라고 나온다. 플래그가 아니라고 하거니와 실제로 입력했을 때 플래그가 아니다.
스테가노그래피는 사진 등의 파일에 글자(암호)나 사진 등의 데이터를 숨기는 기법이라고 하며, 저 jpg파일에서 숨겨진 글자나 파일을 찾아야 한다.
openstego를 사용해 보았으나 png를 취급하며, openstego로는 나오는 데이터가 없었다.
HXD로 열어보았다.
우선, 각 파일의 확장자는 그 파일이 무엇인지 알려주기도 하지만, 각 확장자를 사용했을 때 파일이 가지는 시그니처 데이터들이 있다.
온라인으로 진행되는 HackCon은 8월 22~23일 하루동안 진행되었다.
(HackCon.online)
오랜만에 해 보는 CTF라 한 문제도 풀어보지 못할 것 같았고, CTF가 열리는 시간을 혼동하여 롤까지 하고 있었다. 놀듯이 해 봤던 것 같다.
결국 풀기를 성공한 문제는 스테가노그래피 100점이 부여된 첫 번째 문제뿐이었다. 이것도 예전에 비슷한 흐름을 본 적이 있어서 그 감으로 풀었던 것 같다.
사진을 열어보면 THIS_IS_NOT_A_FLAG라고 나온다. 플래그가 아니라고 하거니와 실제로 입력했을 때 플래그가 아니다.
스테가노그래피는 사진 등의 파일에 글자(암호)나 사진 등의 데이터를 숨기는 기법이라고 하며, 저 jpg파일에서 숨겨진 글자나 파일을 찾아야 한다.
openstego를 사용해 보았으나 png를 취급하며, openstego로는 나오는 데이터가 없었다.
HXD로 열어보았다.
우선, 각 파일의 확장자는 그 파일이 무엇인지 알려주기도 하지만, 각 확장자를 사용했을 때 파일이 가지는 시그니처 데이터들이 있다.
(참조 : 파일 시그니처 모음)
jpg파일을 Hex Viewer 등으로 hex data를 읽어볼 때 맨 앞에 이런 종류의 hex data가 나와야 이 파일이 jpg 파일임을 입증하는 것이다.
위의 블로그에서 나온 대로, FF D8 FF E0으로 시작하며 옆에 아스키 문자로도 JFIF를 바로 볼 수 있는 것을 알 수 있다.
파일을 자세히 보면, 시그니처 뒤에 각 헤더 구조체 데이터처럼 보이는 데이터들이 있다. PE 파일처럼 파일을 구조적으로 만들어 놓았다.
그런데 이 파일을 자세히 보면, 파일 시그니처가 한 번 더 나오게 된다.
파일 시그니처와 구조체들로 이루어진 것으로 예상되는 데이터가 다 나온 후에, 시그니처가 한 번 더 나오게 된다.
파일 속에 jpg 헤더를 중복되게 넣었는것 같다. 둘 중에 하나는 잘못된 위치 정보를 가지게 하는 헤더 데이터들일 것이라고 생각했다.
위의 헤더 데이터를 삭제하여 저장해 보았다.
위의 헤더 데이터를 지워 두 번째 시그니처가 오는 부분부터 파일이 이루어지게 수정하고 저장했다.
파일을 열게 되면 이전과 다른 사진이 나오고, QR코드를 읽어보면
이렇게 플래그가 나오게 된다.
//
stego.jpg 문제의 후기는 난이도 0/10 이었던 것 같다. 나머지 문제를 한 개도 못풀었기 때문에,,
수고비읍~
'개발, 연습' 카테고리의 다른 글
[프로그래밍] 프로그램 다운로드 툴 (0) | 2020.07.01 |
---|---|
[C/WINAPI] 인터넷 파일 다운로드 (0) | 2020.07.01 |
파일 릴리즈 배포와 디지털 서명 cert (0) | 2020.07.01 |
인스톨러 제작 프로젝트 (0) | 2020.07.01 |
리버싱용 프로그램 개발 - ProcessMem Tape (0) | 2020.07.01 |