WarGame/DigitalForensic with CTF

[DigitalForensic] with CTF 이 그림에는 뭔가 좀 수상한…

자료로 주어진 사진을 다운로드 받자 우선 엄청 큰 문어가 다운로드 된다.

우선 문어를 hxd로 열어보면 특이한 점이 하나가 있다.

JPG 파일의 시그니처가 어마어마하게 많다는거, 물론 FF D8이 하두 짧다보니까 그냥 이산적으로 나오는 헥스값일 수도 있지만, 푸터(FF D9)까지 잘라주는 코드를 작성해서 사진을 추출해보자

if __name__=="__main__" :

    start = b"\xff\xd8"
    end = b"\xff\xd9"

    target_list = list()
    
    with open("PurpleThing.png","rb") as f:
        data = f.read()

    t_start = -1

    for i in range(len(data)) :
        try :
            if(data[i:i+2]==start) :
                t_start = i
            if(data[i-2:i]==end and t_start!=-1) :
                target_list.append((t_start,i))
                t_start = -1
        except Exception as e :
            pass

    cnt = 0
    print(target_list)
    for target in target_list :
        with open(str(cnt)+".jpg","wb") as f:
            f.write(data[target[0]:target[1]])
        cnt+=1

결과는 다음과 같다.

9.jpg에 뭔가가 걸렸다. 

오 나이스