Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Phá khóa XOR một byte chưa biết

    Trong nhiều bài CTF, kẻ tấn công không biết trước khóa mã hóa nhưng biết một phần định dạng của bản rõ (gọi là "crib" — đoạn văn bản đã biết trước). Đây chính là kỹ thuật tấn công "known-plaintext" đơn giản nhất.

    Cho một đoạn bản mã được tạo ra bằng cách XOR từng byte của flag với một khóa 1 byte key∈[0,255]\text{key} \in [0, 255]key∈[0,255] (chưa biết). Biết rằng flag luôn có dạng CTF{...} — bắt đầu bằng chuỗi CTF{ và kết thúc bằng ký tự }, đồng thời toàn bộ flag chỉ gồm các ký tự ASCII in được (mã từ 32 đến 126). Hãy thử toàn bộ 256 khóa có thể để tìm ra khóa đúng và khôi phục flag.

    Gợi ý thuật toán: với mỗi giá trị key từ 000 đến 255255255, giải mã toàn bộ bản mã, kiểm tra xem kết quả có phải là chuỗi ASCII in được, bắt đầu bằng CTF{ và kết thúc bằng } hay không; khóa đầu tiên thỏa mãn chính là khóa đúng.

    Ví dụ: bản mã hex 5245576a706c ứng với khóa 171717 giải mã ra flag CTF{a}.

    • Định dạng đầu vào:

      Một dòng duy nhất: chuỗi hex của bản mã (chữ thường, độ dài luôn là số chẵn).

    • Định dạng đầu ra:

      In ra một dòng duy nhất là flag đã giải mã được (dạng CTF{...}).

    Ví dụ:

    Đầu vào:

    2037251801111617063c050c1100063c0e061e

    Đầu ra:

    CTF{brute_force_me}
    

    Đầu vào:

    4255477a72686f666d645e637875645e796e735e676d60667c

    Đầu ra:

    CTF{single_byte_xor_flag}
    

    Đang tải editor...