LAZY SAENOZU
  • N0PSctf 2024 Write-Up
    2024년 06월 03일 09시 17분 12초에 업로드 된 글입니다.
    작성자: Saen0zu

    [ MISC ]

    • Morse Me

     

    challenge.txt에 쓰여져있는 모스부호를 모스부호 해석기를 사용해 해석해보면 다음과 같이 16진수로 이루어진 문자열로 추정되는 데이터가 나온다.

     

     

    16진수의 문자열로 추정되는 데이터를 ASCII로 변환하면 Flag가 나온다.

     

     

     

    [ REVERSING ]

    • Just Read

     

    주어진 파일을 기드라로 열어보면 다음과 같은 로직이 나온다.

     

    주어진 문자들을 순서대로 조합하면 Flag가 나온다.

     

    • Reverse Me

     

    첨부된 이미지 파일을 열어보면 정상적인 사진 파일이 아닌 것임을 알 수 있다.

     

     

    파일 구조를 파악하기 위해 HEX값을 확인해 보면 헤더만 JPG 파일의 헤더이고 문자열들이 뒤집혀 있는 것을 확인할 수 있다. 가장 밑의 바이트를 확인하면 ELF 파일의 헤더가 나온다.

     

     

    파이썬으로 뒤집혀 있는 파일의 바이트를 되돌린다.

     

    enc_data = b''
    
    with open("./img.jpg","rb") as f:
    	enc_data = f.read()
    
    enc_data = enc_data[::-1]
    
    with open("decrypt","wb") as f:
    	f.write(enc_data)

     

    바이트를 뒤집은 파일을 기드라로 열면 파일 실행시 4개의 인수가 필요하다는 것을 알 수 있다.

     

     

    함수의 결과 값이 0이 아닐 경우 내부 로직이 실행되기 때문에 함수 안의 내용으로 입력값만 찾으면 Flag를 찾을 수 있다고 추측하여 입력값을 구하는 Z3 모듈을 사용해 구했다.

     

    from z3 import *
    
    s = Solver()
    
    a = Int('a')
    b = Int('b')
    c = Int('c')
    d = Int('d')
    
    s.add(b*9 + a*(-8) + c*6 + d*(-2) == 0x48)
    s.add(b*(-3) + a*(-2) + c*(-8) + d == 0x1d)
    s.add(b*7 + a*5 + c + d*(-6) == 0x58)
    
    if s.check() == sat:
    	m = s.model()
    	print(m)
        
        
    === RESULT ============================================
    
    [a = -3, b = 8, c = -7, d = -9]

     

     

    결과값을 이용해 파일을 실행하면 Flag가 나온다.

     

     

    [ WEB ]

    • Web Cook

     

    해당 페이지에 접속하면 어떤식으로 풀어야하는지 다 알려준다.

    base64로 암호화 되어있는 쿠키값을 디코딩하면 JSON 데이터가 나오는데 isAdmin의 값을 1로 만들면 Flag를 주겠다는 내용이 쓰여져 있다.

     

     

    username에는 아무 텍스트나 입력해서 submit한 후 EditThisCookie를 사용하면 쿠키값으로 %3D%3D(==)의 base64로 암호화 되어 있다는 것을 확인할 수 있어 복호화하면 JSON 데이터가 나온다.

     

     

    Base64로 인코딩된 JSON 데이터를 확인하고 isAdmin의 값을 1로 바꾸어 인코딩한 값으로 쿠키값을 변경한다.

     

     

    isAdmin의 값을 1로 한 데이터를 쿠키값으로 변경한 후 새로고침을 하면 Flag가 나온다.

     

    댓글