문제에서 제공해주는 암호문은 다음과 같다.




이모티콘과 _ 문자로 이루어진 암호문인데 암호문에서 사용된 이모티콘의 개수를 확인해보면 26개이고 이는 알파벳 개수임을 알 수 있다.


이를 토대로 다음 코드를 통해 이모티콘을 우선 알파벳으로 치환해줬다.


# -*- encoding: utf-8 -*-


enc_data = "🤞👿🤓🥇🐼💩🤓🚫💪🤞🗣🙄🤓🥇🐼💩🤓😀✅😟🤓🍞🐼✅🚫💪🥇🤓🐼👿🤓🚫💪😟🤓👿😾😀😯🤓👿🤞✅🔥🚫🤓🥇🐼💩🤓👻💩🔥🚫🤓😀🗣🔥🍞😟✅🤓🚫💪😟🔥😟🤓🚫💪✅😟😟🤓💔💩😟🔥🚫🤞🐼🗣🔥😭🤓🍞💪😀🚫🤓🤞🔥🤓🥇🐼💩🤓🗣😀👻😟🤢🤓🍞💪😀🚫🤓🤞🔥🤓🥇🐼💩✅🤓💔💩😟🔥🚫🤢🤓🍞💪😀🚫🤓🤞🔥🤓🚫💪😟🤓😀🤞✅🤓🔥🐙😟😟😎🤓👀😟😾🐼🤬🤞🚫🥇🤓🐼👿🤓😀🗣🤓💩🗣😾😀😎😟🗣🤓🔥🍞😀😾😾🐼🍞😭🤓🥇🐼💩✅🤓👿😾😀😯🤓🤞🔥🤡🤓😀👿✅🤞🤬😀🗣_🐼✅_😟💩✅🐼🐙😟😀🗣_🔥🍞😀😾😾🐼🍞_🍞🐼🍞_🚫💪😟✅😟🔥_😀_😎🤞👿👿😟✅😟🗣🤬😟🤓"

result = []

for i in enc_data:

if "_"!=i:

result.append(i)


result = list(set(result))


for i in range(0,len(result)):

enc_data = enc_data.replace(result[i],chr(97+i))


print(enc_data)


result = nvlfuilwmnzalfuilsetlquewmfluvlwmtlvcsxlvneowlfuilpiowlszoqtelwmtotlwmettlkitownuzorlqmswlnolfuilzsptblqmswlnolfuielkitowblqmswlnolwmtlsnelodtthlytcujnwfluvlszlizcshtzloqsccuqrlfuielvcsxlnoglsvenjsz_ue_tieudtsz_oqsccuq_quq_wmteto_s_hnvvtetzjtl


출력 된 결과를 보면 단순 치환 암호 아니면, 비즈네르일 것 같아서 아래 사이트에 돌려보니 다음과 같은 결과가 나왔다.


https://www.guballa.de/substitution-solver


ifsyousthingsyousaresworthysofsthesflamsfirdtsyousjudtsandwersthedesthreesquedtiondpswhatsidsyousnajevswhatsidsyoursquedtvswhatsidsthesairsdbeekszelocitysofsansunlakensdwallowpsyoursflamsidxsafrican_or_eurobean_dwallow_wow_thered_a_kifferences


복호화가 어느 정도 되긴 했는데, 일부 문자들이 제대로 나오지 않았다. 그래서 조금 더 효율 좋은 사이트를 찾아보다 위 사이트 이상으로 복호화가 깔끔하게 나오는 곳을 못 찾았다. 그래서 그냥 어차피 복호화 된 문자열에서 정상적인 단어들이 많으니까 아래 사이트에서 수동으로 짜 맞췄다.


https://www.dcode.fr/monoalphabetic-substitution



Flag = RITSEC{african_or_european_swallow_wow_theres_a_difference} 






'Crypto & Network & Etc > Crypto Practice' 카테고리의 다른 글

Plaid CTF 2015 Strength  (0) 2019.11.11
TokyoWesterns CTF 2019 baby_rsa  (0) 2019.11.11
KCTF Operation 1  (0) 2019.11.08
HackZone VII 2019 CTF Legacy  (0) 2019.11.08
TG:Hack 2019 CTF Josefssons Final Exam  (0) 2019.11.07
블로그 이미지

JeonYoungSin

메모 기록용 공간

,