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át hiện double-encoding

    Double-encoding

    Double-encoding mã hóa hai lần để qua mặt bộ lọc giải mã một lần. Ví dụ ' -> %27 -> %2527 (vì % thành %25). Sau khi giải mã lần 1 ta được %27, giải mã lần 2 mới ra '.

    Quy tắc (giải mã %HH mỗi lần):

    1. once = giải mã s một lần; twice = giải mã once một lần.
    2. Nếu once != s và twice != once và twice chứa ký tự nguy hiểm trong ' " < > ; -> in DOUBLE_ENCODED.
    3. Ngược lại, nếu once != s -> in ENCODED.
    4. Ngược lại -> in PLAIN.

    Ví dụ

    • Vào: %2527 -> once=%27, twice=' -> DOUBLE_ENCODED
    • Định dạng đầu vào:

      Một dòng đầu vào.

    • Ràng buộc đầu vào:

      Độ dài <= 2000. HH hợp lệ.

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

      In DOUBLE_ENCODED, ENCODED, hoặc PLAIN.

    Ví dụ:

    Đầu vào:

    %2527
    

    Đầu ra:

    DOUBLE_ENCODED

    Giải thích:

    %2527 -> %27 -> ' (nháy đơn nguy hiểm) nên là double-encoded.

    Đang tải editor...