CTF/H4CKING GAME

[H4CKING GAME] LineFeed

Ron Weasley 2021. 11. 9. 19:14

이번 시간에는 다음 문제인 LineFeed를 풀어보겠습니다.

문제에는 Something is broken이라고 적혀있습니다.  해석하면 뭔가 문제가 있는? 이라고 해석 할 수 있습니다.

주어진 파일을 다운받고 실행시켜 보겠습니다.

그냥 색상이 다른 점선으로만 칠해져있네요..? 사진이 png인것을 보아 왠지 png파일을 이루는 chunk 부분에서 이상한 값으로 덮어 씌워져 있을 거라 생각을 해서 png파일을 분석해주는 툴을 써서 열어보겠습니다.

아니나 다를까 IHDR chunk 부분에서 에러가 있다고 뜨네요!!

그전에 PNG구조에 대해 간략하게 설명을 하자면 png의 파일 구조에는 중요 청크와 보조 청크로 나뉩니다.

그 중 중요 청크만 보자면 IHDR, IDAT, PLET, IEND가 있습니다.

png파일을 구성하는데 IHDR, IDAT, IEND는 필수로 들어있고, PLET은 있을수도 없을수도 있습니다.

 

우리가 분석해야 할 IHDR은 Image Header의 약자입니다. 이 청크 파일은 PNG파일의 기본 구성을 담고있습니다.

그럼 IHDR에는 가로, 세로, 비트 깊이, 색 타입, 압축 메소드, 필터링 메소드, 인터레이스 메소드에 대한 정보가 담겨있고, 우리가 봐야 할 부분은 가로 세로 부분입니다. 바로 hxd에디터로 열어보겠습니다.

IHDR로 보이는 시그니처 0x49484452가 보이실텐데 그 뒤에 이어져 있는 00 00 01 F0, 00 00 01 A0이 가로 세로를 뜻합니다. 이 부분을 조정해봅시다.

가로 세로의 크기를 똑같이 맞춰봤습니다.

조정을 해주니까 뭔가 플래그값 같이 생긴 문자열이 나오기 시작하네요!!!

구글링을 해보니까 CRC값으로 가로 세로를 구할 수 있는데, 아까 PNG분석 시 오류가 떴던 부분이 IHDR 청크 파일중 CRC부분이 에러가 있다고 떴습니다. 

 

CRC 부분을 수정 해주고 https://github.com/W3rni0/RACTF_2020#dimensionless-loading 를 참고하면 풀 수 있습니다.

 

사실상 코드를 안짜고 브룻포스로 대입을 해보는것도...풀수있는 방법중 하나 입니다.

'CTF > H4CKING GAME' 카테고리의 다른 글

[H4CKING GAME] art  (0) 2021.11.10
[H4CKING GAME] CODE  (0) 2021.11.09
[H4CKING GAME] cat  (0) 2021.11.09
[H4CKING GAME] Easy  (0) 2021.11.09
[H4CKING GAME] Paint  (0) 2021.11.09