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

    solution

    Đề bài: [Lập trình Web & Backend] JWT 'alg:none' — phát hiện tấn công

    Phát hiện tấn công alg:none

    Một lỗ hổng JWT nổi tiếng: kẻ tấn công sửa header thành {"alg":"none"} và bỏ chữ ký để bypass xác thực. Middleware an toàn phải từ chối alg không phải HS256.

    Cho một JWT h.p.s ở dòng 1 (s có thể rỗng) và secret ở dòng 2. Quy trình:

    1. Decode header. Nếu alg !== 'HS256' → in REJECTED_ALG.
    2. Ngược lại verify chữ ký HS256; khớp → in VERIFIED, không khớp → BAD_SIGNATURE.

    Ví dụ

    Input:
    <header alg=none>.<payload>.
    secret
    Output: REJECTED_ALG
    
    • Định dạng đầu vào:

      Dòng 1: JWT. Dòng 2: secret.

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

      header là JSON có claim alg.

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

      REJECTED_ALG | VERIFIED | BAD_SIGNATURE.

    Ví dụ:

    Đầu vào:

    eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxIn0.
    secret

    Đầu ra:

    REJECTED_ALG

    Giải thích:

    alg=none → REJECTED_ALG ngay, không verify.

    Đang tải editor...