5. Kiểm tra cơ chế quản lý phiên
5.3. Kiểm tra khả năng dự đoán token
Tạo và xác định token liên tiếp, sử dụng request khiến máy chủ trả về token mới (ví dụ: request đăng nhập thành công).
Cố gắng xác định phần trong token nhận được. Trong mọi trường hợp, bạn nên sử dụng Burp Sequencer, như được mô tả trong Chương 7, để thực hiện thống kê chi tiết các thuộc tính ngẫu nhiên trong token của ứng dụng. Tùy thuộc vào kết quả, nó cũng có ích cho việc thực hiện phân tích thủ công sau:
- Kiểm tra các token và chuỗi trong token giúp xác định người dùng. Bỏ qua dữ liệu khác, kể cả dữ liệu khác nhau giữa các token.
- Nếu không thể xác định loại dữ liệu bên trong token hoặc các thành phần của token, thử các cách giải mã khác nhau (ví dụ: Base64) để xem có xuất hiện dữ liệu có nghĩa hay không.
- Cố gắng xác định bất kỳ phần nào của chuỗi giá trị có trong token hoặc phần giải mã. tính sự khác biệt gữa các giá trị liên tiếp. kể cả các giá trị này có vẻ hỗn loạn thì vẫn có thể xác định được một tập hợp khác biệt cố định giúp thu hẹp phạm vi tấn công vét cạn.
- Lấy một token sau khi đợi vài phút và lặp lại phân tích tương tự. Xác định xem trong các thành phần của token có thành phần phụ thuộc vào thời gian hay không.
Nếu xác định được bất kỳ thành phần nào, thực hiện phân tích với token thứ hai bằng địa chỉ IP khác và tên người dùng khác. Điều này giúp xác định xem có phát hiện tương tự hay không và liệu các token nhận được trong lần kiểm tra đầu tiên có thể giúp đoán token nhận được trong lần thứ hai hay không.
Nếu xác định được quy luật cho phép khai thác hoặc phụ thuộc thời gian nào, xem xét liệu điều này có đủ để thực hiện một cuộc tấn công đoán token gần đây hay không. Sử dụng các kỹ thuật được mô tả trong Chương 14 để tự động hóa tấn công. Ngoại trừ các trường hợp đơn giản, cuộc tấn công sẽ phải sử dụng các đoạn mã.
Nếu người dùng có thể chỉnh sửa ID phiên, sử dụng nguồn payload “bit flipper” trong Burp Intruder để lần lượt sửa đổi từng bit trong session token. Kết quả của hoạt động này cho biết liệu việc sửa đổi mã thông báo có dẫn đến phiên không hợp lệ hay không và phiên có thuộc về một người dùng khác hay không.