5. Kiểm tra cơ chế quản lý phiên
5.1. Hiểu cơ chế
Phân tích cơ chế được sử dụng để quản lý các phiên và trạng thái ứng dụng. Xác định xem ứng dụng có sử dụng token hoặc một số phương pháp khác để xử lý request nhận được từ mỗi người dùng hay không. Lưu ý rằng một số công nghệ xác thực (chẳng hạn như xác thực HTTP) có thể không yêu cầu cơ chế phiên đầy đủ để xác định lại người dùng sau xác thực. Ngoài ra, một số ứng dụng không sử dụng phiên, mà tất cả thông tin trạng thái được truyền qua client, thường ở dạng mã hóa hoặc encode.
Nếu ứng dụng sử dụng mã thông báo phiên, xác định chính xác phần dữ liệu được sử dụng để xác định lại người dùng. Các trường có thể được sử dụng để truyền token bao gồm cookie HTTP, tham số chuỗi truy vấn và trường ẩn. Một số phần dữ liệu khác nhau có thể được sử dụng chung để xác định lại người dùng và các các thành phần back-end khác nhau có thể sử dụng các mục dữ liệu khác nhau. Thông thường, các mục trông giống như token có thể không thực sự được ứng dụng sử dụng như cookie, chẳng hạn như cookie mặc định được tạo bởi máy chủ web.
Để xác định phần dữ liệu nào đang thực sự được sử dụng làm session token, hãy tìm một trang hoặc chức năng chắc chắn phụ thuộc vào phiên (chẳng hạn như trang “Thông tin của tôi”). Sau đó, thực hiện một số request, thử xóa trường mà nghi ngờ được sử dụng làm mã thông báo phiên. Nếu việc xóa này khiến ứng dụng không trả lại trang phụ thuộc vào phiên, điều này chứng minh rằng trường vừa xóa là mã thông báo phiên. Sử dụng Burp Repeater để hỗ trợ cho việc kiểm tra này.
Sau khi xác định được trường dữ liệu thực sự được sử dụng để xác định lại người dùng, đối với mỗi mã thông báo, kiểm tra xem nó có đang được xác thực toàn bộ hay không hoặc một số thành phần con của token có bị thừa không. Thay đổi giá trị token mỗi lần 1 byte và kiểm tra xem giá trị đã sửa đổi có còn được chấp nhận hay không. Nếu kết quả trả về cho thấy một số phần nhất định của token không thực sự được sử dụng để duy trì trạng thái phiên, thì có thể loại chúng khỏi các tấn công sâu hơn.