본문 바로가기

#CTF 2020

제 2회 TeamH4c CTF Write up

반응형

금요일, 20201009 17:00 UTC - 토요일, 20201010 17:00 UTC

 

[Forensic]

 

 

 

 

[HxD]

png파일이지만 HxD로 열어보면 헤더가 JPG이다.

하지만 FF D9 푸터는 없었다.

 

 

[HxD]

 

제일 마지막을 보면 GNP라고 적혀있다.

HackCTF에서 푼 기억이 있다. 

GNP를 거꾸로 하면 PNG이다.

82 60 42 AE 44 4E 45 49 부터 0A 1A 0A 0D 47 4E 50 89까지만 따로 txt로 저장하여 문자열을 거꾸로 뒤집었다.

 

f=open("GNP.txt")
data=f.read().split(' ')

print(' '.join(reversed(data)))

뒤집은 값을 hex에 넣어 새로 저장해보면 처음과 같은 그림이 나온다.

Stegsolve로 열어보았다.

 

 

[Stegsolve]

 

하단에 플래그같은 형태가 있다. 플래그는 아니다.

 

 

[Affine Cipher]

아핀 암호 복호화 사이트에 문자열을 넣으면 제일 첫번째에 플래그가 나온다.

Flag : h4c{H3llo_43nic}

 


[Forensic]

 

[Hangul.png]

 

압축을 풀어보면 png파일 한 장이 들어있다.

 

 

HxD로 열어보면 헤더가 zip파일이다.

zip으로 바꾸어 압축을 풀어보면 확장자가 없는 Hangul파일이 들어있다.

 

HxD에서 열어보니 플래그가 있다.

Flag : h4c(i_love_hangul)

 


[Crypto]

 

 

( ) 안에 문자열을 base64 디코딩을 해보았다.

첫번째는  WHkxZkxWOHRYMThnWHkwdFgxOHRYeTBnWHkwdFgxOWZYeTBnWHkwdFh5MHRYeTBnWHkxZlh5MWZYMThnWDE4dExWOHRYMThnWHkxZlgxOWZMUzA9 이런 결과가 나왔다.

 

한 번 더 디코딩을 해보면 Xy1fLV8tX18gXy0tX18tXy0gXy0tX19fXy0gXy0tXy0tXy0gXy1fXy1fX18gX18tLV8tX18gXy1fX19fLS0=

 

또 한 번 해보면 

_-_-_-__ _--__-_- _--____- _--_--_- _-__-___ __--_-__ _-____--  가 나온다.

 

세번 디코딩을 했을 때 나온 문자열로 해독이 가능하다.

_를 0, -를 1로 바꾸어 바이너리 형태로 만들어 준다.

01010100  01100101  01100001 01101101  01001000 00110100 01000011를 ASCII로 바꾸면 플래그가 나온다.

 

Flag : h4c(TeamH4C)

 


[Crypto]

view hint에는 외국인들을 위한 한글자판 사이트링크가 있다.

 

 

[ciphertext.txt]

 

txt파일을 열어보면 읽기 힘든 한글들이 적혀있다.

nc 포트에 접속하면 평문이 무엇인지 물어보는 문구가 나온다.

이걸 정상적인 한글로 변환해야 한다.

 

구글에 ᅎᅔᅏᄽᄼ 를 검색해보면 "ᅎ ᅔ ᅏ ᄼ ᄽ자는 치두에 쓰고, ᅐ ᅕ ᅑ ᄾ ᄿ자는 정치에 쓰 ..." 이런 문구가 있다.

'커룔'을 '자는' 이라고 바꾸어 보면 ㅋ->ㅈ, ㅓ->ㅏ, ㄹ->ㄴ, ㅛ->ㅡ 이런식으로 위에 문구를 치환하는 것 같다.

다른 문자들도 비교하여 구글 검색으로 문자들을 치환해보았다.

 

[치환]

 

 

냬겨러거 적녀 컌얭웨 벅거히 멀커눼 히게 껜머켜 젷멀버.

우리나라 말이 중국과 달라서 한자와 서로 통하지 못한다.

 

요기죠게 니겨힝뇰 숭힌뵥녀 적머에 혇뇰 서어 녗니베 저폊루 요 숗뇩 룐며 돠켜 젷머룔 녀어 젊버.

그러므로 어리석은 백성들이 말하고 싶은 바가 있어도 마침내 그 뜻을 능히 펴지 못하는 이가 많다.

 

루어 녀잏뇩 주냬 성머야 놔여니 후게 효쟥놔빇 욕커굑 절뵥니 룿뇨려 허겆저버 햇야 녕뫄 러럭뇌 허뉸냐 돨겨머베겡 멎냐 녗료려거.

내가 이것을 매우 박하게 여기어 새로 스물여덟 글자를 만들어 냈으니 사람마다 쉽게 익혀 나날의 사용에 편리하도록 함이 있느니라.

 

<컌공>

<중략>

 

컌힌(제뇾)뇰 힌겨멍냐히 적머룔 냬컈뇌 여셀 뉴헤 헞쿠굑 여셀뇨게 머놫버.

중성(모음)은 성리학에서 말하는 우주의 기본 요소 삼재를 기록으로 하였다.

 

,,녈뇩 헌뫈멀 '','',''굑 여셀커게 머놫뇨좌 페퍡, 쿠퍡, 멋뉸뇌 늴겨굑 킹뉸머놔 절뵥닟버.

천,지,인을 상형한 ‘ㆍ','ㅡ','ㅣ’를 기본자로 하였으며 초출, 재출, 합용의 원리를 적용하여 만들었다.

 

<컌공>

<중략>

러컌뇌 헤겨(켄힌)뇰 버혀 핗헤겨굑 쵸료려거. ㄴ뇩 녓햭헤겨 너구냐 녀니 쵸좔 녓햭 어솨냴 헤겨어 붜료려거.

나중의 소리(종성)은 다시 첫소리를 쓰느니라. ㅇ을 입술소리 아래에 이어 쓰면 입술 가변운 소리가 되느리라.

 

핗헤겨(페힌)뇩 멋머놔 쵹 잏녀 너려거좔 러걸며 춀버.

첫소리(초성)을 합하여 쓸 것이 아니라면 나란히 쓴다.

 

뚂헤겨(켄힌)베 저펄어켜거.

끝소리(종성)도 마찬가지라.

 

ㆍ눼 ㅛ눼 ㅔ눼 ㅒ눼 ㅠ눼 ㅖ룔 핗헤겨 너구냐 섂놔히 챼에, ㅕ눼 ㅓ눼 ㅣ눼 ㅗ눼 ㅘ룔 네굘텡냐 섂놔 춀버.

ㆍ와 ㅡ와 ㅗ와 ㅜ와 ㅛ와 ㅠ는 첫소리 아래에 붙여서 쓰고, ㅣ와 ㅏ와 ㅓ와 ㅑ와 ㅕ는 오른쪽에 붙여써라.

 

쟤굫 욕커어 제굦켜여 니냭과노 헤겨어 녀걔니켜러려 눨텡냐 멀 킺뇩 비머좔 어컨 렏뇰 헤겨네,

킺녀 뱩녀좔 헌힌녀네, 킺녀 녗켜 너려머좔 돤힌녀버.

무릇 글자가 모름지기 어울려야 소리가 이루어지나니 왼쪽에 한 점을 더하면 가장 높은 소리오,

점이 둘이면 상성이오, 점이 있지 아니하면 평성이오.

 

녓힌뇰 킺뇩 비머룔 잏뇰 저펄어켜녀켜절 써교버. 컌얭 헤겨뇌 녛헤겨룔 펴뱨눼 킨펴굑 섈솩머룔 잏녀 녗뇨려 ᅎᅔᅏᄽᄼ커룔 펴뱨뇌 헤겨냐 쵸에, ᅐᅕᅑᄾᄿ커룔 킨펴뇌 헤겨냐 쵸러려 니욪려눼 뫄뇌 녓햭웨 젱헤겨뇌 욕커룔 컌얭 헤겨냐 꺈뉸머놔 춀버.

입성은 점을 더하는 것은 마찬가지이지만 빠르다. 중국 소리의 잇소리는 치두와 정치를 분별하는 것이 있으니 ᅎᅔᅏᄽᄼ자는 치두의 소리에 쓰고, ᅐᅕᅑᄾᄿ자는 정치의 소리에 쓰나니 어금니와 혀의 입술과 목소리의 글자는 중국 소리에 통용하여 쓴다.

 

<쟬캬>

<문제>

버뇾 컈니켤 돤쟬뇩 캬퍡머혀네.

다음 주어진 평문을 제출하시오.

 

숭힌뇩 어교펴룔 서굘 헤겨

백성을 가르치는 바른 소리

 

 

......파란부분도 평문인 줄 알아 다 치환했더니..... 마지막 줄이 답이였다....;;;

 

 

[nc 112.213.2.13 40007]

 

Flag : h4c(S3j0ng28,0910)

 

 

 

반응형

'#CTF 2020' 카테고리의 다른 글

Syskron Security CTF 2020 Write up  (0) 2020.10.26
Hacktober CTF 2020 writeup  (0) 2020.10.18
CCE 2020 예선 #Crypto - [중]easy rsa  (0) 2020.09.29
CCE 2020 예선 #Web - [하]eatCookie  (0) 2020.09.27
CCE 2020 예선 #Web - [하]easy sqli  (0) 2020.09.27