문제 제목을 보면 baby_stego인데 포렌식 도구 중에 openstego를 사용하면 될 것 같다는 생각이 먼저 들었다.
근데 일단 문제 파일에 가보면 zip파일에 flag.png파일이 떡하니 있었는데 다운받아보았다.
근데 압축해제가 안됐다. 그래서 다운받은 zip 파일을 HxD로 확인해보니
헤더 시그니처가 올바르지 않았다.
그래서 올바르게 고쳐주고, 저장해주었더니 flag.png 파일이 보였다.
근데 그 이미지 파일을 열어보면 열리지만 이렇게 내용이 보이지 않았다.
뭐지 왜 안보이지 싶어서 HxD로 png 파일을 열어보았다.
헤더 시그니처, 푸터 시그니처도 올바르고 어떤 문제인지 모르겠어서 구글링을 통해 png 파일 구조를 살펴보았다.
https://ryanking13.github.io/2018/03/24/png-structure.html
보니까 png 파일은 반드시 포함되어야 하는 3가지 청크가 있었다.
(IHDR, IDAT, IEND)
그 중에서도 IDAT 청크는 실제로 이미지 데이터가 들어가는 부분으로 하나의 IDAT 청크라도 사라지면 압축된 이미지를 디코딩 할 수 없다고 한다.
그래서 일단 flag.png 파일에 위의 세가지 청크가 모두 있는지 확인해보았다.
보니까 IHDR는 파일 앞 부분에 IEND 뒷 부분에 위치해 있었고, IDAT는 iDAT의 형태로 적혀있었다.
그래서 올바르게 바꿔주고 보니까
flag.png 파일이 열렸다. 근데….
가짜라고 떡하니 .. 그래서 아 이걸 openstego에 넣으면 flag 값을 얻을 수 있겠다 싶어서 넣어보았더니
무슨 문제인지 successfully 했다고 했는데 노트북 어디에도 나타나있지 않았다.
그래서 openstego말고 이미지 스테가노 그래피 사이트를 사용하였다.
https://incoherency.co.uk/image-steganography/#unhide
그랬더니 키 값이 두둥!
성공!
출제: N0Named 해킹팀
'Forensics > CTF Write-Ups' 카테고리의 다른 글
[SWING 내부 CTF] Misunderstanding (0) | 2020.09.14 |
---|---|
[SWING 내부 CTF] OurImportantMemories (0) | 2020.09.13 |
[SWING 내부 CTF] GroupProject_BadEnding (0) | 2020.08.31 |
[SWING 내부 CTF] Who_is_real (0) | 2020.08.22 |
[SWING 내부 CTF] What_did_you_do_yesterday (0) | 2020.08.22 |
댓글