'2019/11/07'에 해당되는 글 4건

주어진 암호문은 다음과 같다.



이진수를 그냥 문자열로 바꿔보면 의미 없는 값이 나온다. 문제에서 good_luck이라는 값을 주고 있어서 이걸로 xor해보면 base64 값이 나온다. 근데 이걸 또 base64 디코딩해보면 의미 없는 값이 나오는데 base64 인코딩 값을 카이사르로 전수 조사해 base64 디코딩 해보면 플래그가 나온다.


solve.py

enc_data = """00100011 00100010 00000100 00000010 00001000 00101010

00010111 00001011 00000001 01010101 01010110 00001100

00100010 01101100 00011000 00010001 00001111 00101111

01011110 00011111 00000100 00010001 00011011 00000010

00011001 00101100 00011011 00010011 00101001 01011101

00110010 00111000 00000001 00110011 00101001 01011011

00001101 01011110 01010110 00000110 00011000 00101010

00100011 01010011 00100011 00100001 00111101 01010110""".replace("\n"," ").split(" ")


key = "good_luck"

dec_data = ""

result = ""


for i in enc_data:

dec_data += chr(int(i,2))


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

result += chr(ord(dec_data[i])^ord(key[i%len(key)]))


for j in range(26):

caesar_text = ""

for i in result:

if i.isalpha()!=True:

caesar_text += i

else:

if i.isupper():

tmp = ord(i)+j

if tmp>ord('Z'):

tmp -= 26

caesar_text += chr(tmp)

else:

tmp = ord(i) + j

if tmp > ord('z'):

tmp -= 26

caesar_text += chr(tmp)

print caesar_text.decode("base64")


'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
RITSEC CTF 2018 Nobody uses the eggplant emoji  (0) 2019.11.07
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

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




이모티콘과 _ 문자로 이루어진 암호문인데 암호문에서 사용된 이모티콘의 개수를 확인해보면 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

메모 기록용 공간

,

Transposition Cipher

2019. 11. 7. 02:13

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Substitution Cipher

2019. 11. 7. 01:03

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.