๐จ๐ผ Unquestioned and Unrestrained Write Up
1. ๋ฌธ์ ์์ง ํ ์ํธ๋ฌธ ํ์ธ
+ ์ํธํ ๋ฐฉ์๊ณผ ํ๋ฌธ์ ์๋ ค์ฃผ์ง ์์ ์ํ์์ ์ํธ๋ฌธ๋ง์ ๋ณด๊ณ ํ๋ฌธ์ ์ ์ถํ๋ ๋ฌธ์
++ ์ ์ผํ ํํธ๋ ๋ณดํธ์ ์ธ ์ํธํ ๋ฐฉ์์ด๋ผ๋ ๊ฒ!
2. ๊ฐ ์ํธํ ๋ฐฉ์์ ๋ฐ๋ผ ๋ณตํธํํ๊ธฐ ์ํ Python ์คํฌ๋ฆฝํธ ์์ฑ
# Base64
import base64
def base64_decode(encoded_text):
ใ
คใ
คdecoded_bytes = base64.b64decode(encoded_text)
ใ
คใ
คdecoded_text = decoded_bytes.decode('utf-8')
ใ
คใ
คreturn decoded_text
# ์ฃผ์ด์ง ์ํธ๋ฌธ์ ๋ํด Base64 ๋์ฝ๋ฉ ์๋
ciphertext = "cG9jdGZ7dXdzcF80MTFfeTB1Ml84NDUzXzQyM184MzEwbjlfNzBfdTV9"
decoded_text_base64 = base64_decode(ciphertext)
print("Decoded Text (Base64):", decoded_text_base64)
# ์ํํธ ์ํธ
def decrypt_all_shifts(ciphertext):
ใ
คใ
คfor shift in range(1, 26):
ใ
คใ
คใ
คใ
คplaintext = decrypt_caesar_cipher(ciphertext, shift)
ใ
คใ
คใ
คใ
คprint(f"์ํํธ ๊ฐ {shift:2d}: {plaintext}")
def decrypt_caesar_cipher(ciphertext, shift):
ใ
คใ
คplaintext = ""
ใ
คใ
คfor char in ciphertext:
ใ
คใ
คใ
คใ
คif char.isalpha():
ใ
คใ
คใ
คใ
คใ
คใ
คascii_offset = ord('A') if char.isupper() else ord('a')
ใ
คใ
คใ
คใ
คใ
คใ
คdecrypted_char = chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset)
ใ
คใ
คใ
คใ
คใ
คใ
คplaintext += decrypted_char
ใ
คใ
คใ
คใ
คelse:
ใ
คใ
คใ
คใ
คใ
คใ
คplaintext += char
ใ
คใ
คreturn plaintext
# ์ฃผ์ด์ง ์ํธ๋ฌธ์ ๋ํด ๋ชจ๋ ์ํํธ ๊ฐ์ผ๋ก ๋ณตํธํ ์๋
ciphertext = "cG9jdGZ7dXdzcF80MTFfeTB1Ml84NDUzXzQyM184MzEwbjlfNzBfdTV9"
decrypt_all_shifts(ciphertext)
# XOR ์ํธํ
def decrypt_xor_cipher(ciphertext, key):
ใ
คใ
คdecrypted_text = ""
ใ
คใ
คfor char in ciphertext:
ใ
คใ
คใ
คใ
คdecrypted_char = chr(ord(char) ^ key)
ใ
คใ
คใ
คใ
คdecrypted_text += decrypted_char
ใ
คใ
คreturn decrypted_text
def decrypt_all_keys(ciphertext):
ใ
คใ
คfor key in range(256): # ๋ชจ๋ ๋จ์ผ ๋ฐ์ดํธ ํค์ ๋ํด ์๋
ใ
คใ
คใ
คใ
คplaintext = decrypt_xor_cipher(ciphertext, key)
ใ
คใ
คใ
คใ
คprint(f"ํค ๊ฐ {key:02X}: {plaintext}")
# ์ฃผ์ด์ง ์ํธ๋ฌธ์ ๋ํด ๋ชจ๋ ํค ๊ฐ์ผ๋ก ๋ณตํธํ ์๋
ciphertext = "cG9jdGZ7dXdzcF80MTFfeTB1Ml84NDUzXzQyM184MzEwbjlfNzBfdTV9"
decrypt_all_keys(ciphertext)
3. ์ฝ๋ ์คํ ๊ฒฐ๊ณผ, Base64 ๋ก ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ด์์ ํ์ธ
# ๋ฐ๊ฒฌํ FLAG
poctf{uwsp_411_y0u2_8453_423_8310n9_70_u5}
4. ๋ค์ ๋ฌธ์ ํ๋ฉด์ผ๋ก ๋์์ ๋ฐ๊ฒฌํ FLAG ์ ๋ ฅ
--> ๋ฌธ์ ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ํด๊ฒฐ๋์์์ ํ์ธ
'โ๏ธ Capture The Flag (CTF)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Dreamhack CTF Season 3] ROT128 Write Up (1) | 2023.11.26 |
---|---|
[Cake CTF 2023] Country DB - 92 Write Up (0) | 2023.11.11 |
[CSAW CTF 2023] Baby's First Write Up (0) | 2023.09.16 |
[Patriot CTF 2023] Python XOR Write Up (0) | 2023.09.09 |
[DownUnder CTF 2023] ๐ Write Up (0) | 2023.09.04 |