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] Đếm đặc tả %n trong lỗ hổng format string

    Đếm đặc tả %n trong lỗ hổng format string

    Khái niệm. Lỗ hổng format string xảy ra khi chuỗi định dạng do người dùng kiểm soát được truyền trực tiếp vào hàm như printf. Đặc tả %n đặc biệt nguy hiểm vì nó ghi số ký tự đã in ra một địa chỉ bộ nhớ (ghi tùy ý). Bài này chỉ phân tích tĩnh chuỗi định dạng để đếm đặc tả, không thực thi.

    Quy tắc:

    • %% là dấu % thoát, không tính là đặc tả.
    • Mỗi %X (X ≠ %) là một đặc tả; nếu X = n thì là đặc tả ghi %n.

    In ra: số %n và tổng số đặc tả.

    Ví dụ. %x%x%n leak → 1 3 (ba đặc tả %x %x %n, trong đó một %n).

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

      Một dòng: chuỗi định dạng.

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

      Độ dài chuỗi ≤ 10^5.

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

      Một dòng: <số %n> <tổng số đặc tả>.

    Ví dụ:

    Đầu vào:

    %x%x%n leak

    Đầu ra:

    1 3

    Giải thích:

    Có 3 đặc tả (%x, %x, %n); trong đó 1 đặc tả %n → '1 3'.

    Đang tải editor...