보안을 그리다, 훈이

[Forensics] HackCTF 나는 해귀다(150p) Write Up 본문

Security/Wargame

[Forensics] HackCTF 나는 해귀다(150p) Write Up

HooNeee 2021. 12. 13. 22:01

 

HackCTF Forensics 분야 나는 해귀다(150p) 문제 풀이입니다.

 

[HackCTF] Challenge 나는 해귀다

 

'waytogo.zip' 파일을 다운로드하고 압축을 풀어봅시다.

 

waytogo.png

 

민망한 사진이 하나 나오는군요,,,, 뭐 일단.. hex 값을 뒤집어 놓으셨답니다...

 

'waytogo.png' 파일의 hex 값을 확인해봅시다.

 

png 확장자의 푸터 시그니처인 '49 45 4E 44 AE 42 60 82'를 찾아봅니다.

 

Hex - waytogo.png

 

찾아보니, 시그니처 뒤에 딱 봐도 수상한 값들이 있네요.

 

'.'B.DNEI' 부분이 뭔가 낯이 익습니다.

 

'waytogo.png' 이미지에 적혀있던 'hex 값을 뒤집어 놓았다'는 글과 같이 png 파일의 hex 값이 완전히 뒤집혀 있네요.

 

뒤집힌 부분의 hex 값을 'rev_hex.txt'에 따로 저장합니다.

 

그리고 Python으로 코드를 짜봅시다.

 

f = open('/HackCTF/Forensics/나는 해귀다/rev_hex.txt')
s = f.read().replace(' ', '')
s = reversed(list(map(''.join, zip(*[iter(s)]*2))))
l = open("/HackCTF/Forensics/나는 해귀다/fix_hex.txt", 'w')
l.write(''.join(s))
l.close()

 

필자가 사용하는 Hex editor인 'iHex' 툴 특성상 hex 값이 8글자씩 끊어서 출력되기 때문에 공백 제거 후 두 글자씩 끊어주었습니다.

 

이후, reversed() 함수를 사용하여 두 글자 단위로 뒤집어 주고, 최종적으로 출력되는 값을 'fix_hex.txt' 파일에 저장하도록 했습니다.

 

rev_hex.txt(left) / fix_hex.txt(right)

 

'fix_hex.txt' 값에 png 확장자의 파일 시그니처인 '89 50 4E 47 0D 0A 1A 0A'가 있으니 확장자를 png로 지정해 줍시다.

 

Get the Flag!

 

Solve!

 

Comments