𝐊𝐂𝐒𝐂 𝐂𝐇𝐑𝐈𝐒𝐓𝐌𝐀𝐒 𝐎𝐒𝐈𝐍𝐓 𝐆𝐀𝐌𝐄

2025. 12. 24. 02:39·

Đề bài

Mình nhận được thông điệp để lại như sau: "ChristmasKid-2025"


Part 1

Với nội dung được để lại như này, mình sẽ đoán đây là nickname của account nào đó, nên mình sử dụng BlackBird để tìm kiếm

Thấy có một accout YouTube có id là @ChristmasKid-2025

Truy cập vào thử

Vào phần Playlist sẽ thấy có 2 video

Nhưng 1 video đã bị ẩn

Sau đó mình thử kiểm tra xem trên Web Archive có lưu thông tin của playlist này không

Nhận thấy trong phần Description của video có flag phần 1

Part 1: KCSC{cHuC_C4c_b4n
Backup video: aHR0cHM6Ly9jeWJlcnNoYXJpbmcubmV0L3MvZDIyZmRiZWNhOTQwYzk0ZA== 

Phần 1: KCSC{cHuC_C4c_b4n


Part 2

Từ mã base64 nhận được trong Part 1, mình giải mã ra được một trang web

Mình lưu video về để tìm kiếm, mình nhận thấy đây là video quay ở KMA, nên mình sẽ lên Google Map để xem thử

Xem phần Reviews

Thấy flag phần 2: _614n6_51nh_Vu1


Part 3

Tiếp tục từ Part 2, mình sẽ tìm xem user "Kchristmas8386" còn xuất hiện ở nền tảng nào không

Thấy có một account GitHub, vào check xem sao

Thấy có một repo study, xem thử repo đấy

Đây là một repo bình thường, nhưng lại có 4 commits, mình sẽ check lịch sử commit

Thấy có sửa đổi ở file encrypt.py và encrypted.txt, file encrypt.py chứa flag phần 3: _v3_l3u_l3U_m4y_b4n


Part 4

Từ Part 3, mình sẽ tạo 1 script để decrypt file encrypted.txt

import binascii

def xor_bytes(data: bytes, key: bytes) -> bytes:
    return bytes(b ^ key[i % len(key)] for i, b in enumerate(data))

KEY = b"Part 3: _v3_l3u_l3U_m4y_b4n"

with open("encrypted.txt", "r", encoding="utf-8") as f:
    hex_str = f.read().strip()

cipher = bytes.fromhex(hex_str)
plain = xor_bytes(cipher, KEY)

out_name = "decrypted.bin"
if plain.startswith(b"PK\x03\x04"):
    out_name = "decrypted.zip"
elif plain.startswith(b"\x89PNG\r\n\x1a\n"):
    out_name = "decrypted.png"
elif plain.startswith(b"ID3") or plain[:2] == b"\xff\xfb":
    out_name = "decrypted.mp3"
elif plain.startswith(b"%PDF"):
    out_name = "decrypted.pdf"

with open(out_name, "wb") as f:
    f.write(plain)

print("[+] Wrote:", out_name)
print("[+] First 16 bytes:", plain[:16])

Vậy là mình đã có file decrypt.zip, giải nén ra mình thu được file txt có nội dung như sau

Tôi có thói quen sử dụng tên <name>@gmail.com cho tài khoản MXH!!!!!!!!!!!!!

Sau đó mình quay lại GitHub và kiểm tra patch của commit và thấy email của người dùng

From: KChristmas8386 <lotusspeed2025@gmail.com>

Từ hint ở trên, mình xác nhận được nickname sẽ là: lotusspeed2025

Sau đó mình sẽ sử dụng BlackBird để tra cứu tiếp

Thấy có một account TikTok có id là @lotusspeed2025

Part 4: _kh0n6_c0_ny


Part 5

Mình sẽ xem video của người dùng này

Mình sẽ sử dụng Google Lens để tìm kiếm vị trí

Ra được VTC Building ở Tân Bình

Mình sẽ vào Google Map để tìm kiếm vị trí

Mình sẽ thả thử người xuống để xem

Sau đó mình sẽ quay lại để xác định điểm chụp

Mình sẽ thấy trường KMA trong Nam

Mình tiếp tục vào xem Reviews

Trong phần Reviews sẽ lại thấy một thông điệp như sau

Love the KMA Cyber Security Club

Myxqbkd! drsc gsvv lo dro vkcd zkbd yp dro pvkq: XL2RS4NDRSHC6JNCXP3QUVDRX5HGY3NPPJBG63TZWBJQC5DPP5DQ63NOWFJRQVJBX5PFE3DAXPNOIGMMTLQG64V2ZLMPUXUWRLWGA6VWYBGOYD2WYJND65VDYK6GS4DTYJCF63NTXJFA====

Mình sẽ giải mã thông điệp này

Ra được một đường dẫn là Google Drive chứa 2 file ảnh

Sau đó mình tải về và xem thử 2 file ảnh này

B.png
FB.png

Cả 2 file đều bị hỏng, mình đoán là phải XOR 2 file này vào với nhau

from PIL import Image
import numpy as np

def solve_visual_crypto(image_path_1, image_path_2, output_path):
    try:
        # 1. Mở hai ảnh
        img1 = Image.open(image_path_1).convert('RGB')
        img2 = Image.open(image_path_2).convert('RGB')

        # 2. Kiểm tra kích thước (chúng phải bằng nhau)
        if img1.size != img2.size:
            print(f"Cảnh báo: Kích thước không khớp! {img1.size} vs {img2.size}")
            # Resize img2 theo img1 nếu cần thiết (tùy bài toán)
            img2 = img2.resize(img1.size)

        # 3. Chuyển đổi sang mảng Numpy để tính toán nhanh
        arr1 = np.array(img1)
        arr2 = np.array(img2)

        # 4. Thực hiện phép XOR (Bitwise XOR)
        # Tại mỗi pixel: Pixel_Mới = Pixel_1 ^ Pixel_2
        result_arr = np.bitwise_xor(arr1, arr2)

        # 5. Chuyển lại thành ảnh và lưu
        result_img = Image.fromarray(result_arr)
        result_img.save(output_path)
        print(f"Đã xử lý xong! Kết quả lưu tại: {output_path}")

        # Hiển thị ảnh (nếu chạy trên Jupyter/Local)
        result_img.show()

    except Exception as e:
        print(f"Có lỗi xảy ra: {e}")

# Chạy hàm với tên file của bạn
if __name__ == "__main__":
    solve_visual_crypto('decrypted_2/FB.png', 'decrypted_2/B.png', 'flag_result.png')

Sau đó ra được ảnh sau

Phần 5 sẽ là: d1_ch01_n031_:3}


Flag

Flag: KCSC{cHuC_C4c_b4n_614n6_51nh_Vu1_v3_l3u_l3U_m4y_b4n_kh0n6_c0_nyd1_ch01_n031_:3}

'WriteUp > OSINT' 카테고리의 다른 글

Snowflake  (0) 2025.11.01
Dusk Till Duck  (0) 2025.11.01
The Forgotten Inventory  (0) 2025.11.01
Duck Company  (0) 2025.10.31
Among USniversity  (0) 2025.10.31
'WriteUp/OSINT' Other posts in category
  • Snowflake
  • Dusk Till Duck
  • The Forgotten Inventory
  • Duck Company
longhd
longhd
Longhd's Blog
  • longhd
    Ha Duy Long - InfosecPTIT
    longhd
  • Total
    Today
    Yesterday
  • About me

    • Hello I'm Duy Long 👋🏻
    • View all categories (117) N
      • Certificates (4)
      • CTF (3)
      • WriteUp (94) N
        • Forensics (44) N
        • Steganography (5)
        • RE (9) N
        • OSINT (8)
        • Web (17)
        • MISC (6)
        • Crypto (3)
        • Pwn (2)
      • Love Story (0)
      • Labs (15)
        • Information Gathering (10)
        • Vulnerability Scanning (2)
        • Introduction to Web Applica.. (1)
        • Common Web Application Atta.. (1)
        • SQL Injection Attacks (1)
  • Blog Menu

    • Home
    • Tag
    • GuestBook
  • Popular Posts

  • Tags

    Steganography
    PTITCTF2025
    Web
    Dreamhack
    BuckeyeCTF2025
    SunshineCTF2025
    htb
    OSINT
    misc
    CHH
    picoCTF
    THM
    Forensics
    writeup
    CSCV2025
    CTF
    EnigmaXplore3.0
    V1tCTF2025
    POCCTF2025
    Re
  • Recent Comments

  • Recent Posts

  • hELLO· Designed ByLong.v4.10.4
longhd
𝐊𝐂𝐒𝐂 𝐂𝐇𝐑𝐈𝐒𝐓𝐌𝐀𝐒 𝐎𝐒𝐈𝐍𝐓 𝐆𝐀𝐌𝐄
Go to Top

티스토리툴바