Web12: Kỹ thuật hack Session Fixation

Thứ ba - 19/07/2022 21:56
Trong bài viết này, Quản Trị Mạng sẽ cùng các bạn tìm hiểu về cách tấn công Session Fixation.

1. Giới thiệu

Session Fixation là một kỹ thuật cho phép hacker có thể chiếm đoạt session của người dùng. Kỹ thuật này lợi dụng việc server không thay đổi giá trị của session ID mỗi khi người dùng đăng nhập, thay vào đó nó sử dụng session ID sẵn có trước đó. Quá trình tấn công bao gồm việc lấy một session ID hợp lệ (có thể bằng cách truy cập vào website), sau đó tìm cách để nạn nhân đăng nhập vào website với session ID này, cuối cùng, khi nạn nhân đăng nhập thành công, hacker sẽ duyệt website với tài khoản của anh ta. Kịch bản cụ thể như sau:

Mallory tìm một website, chẳng hạn http://unsafe.example.com, chấp nhận bất cứ session ID nào từ request mà không cần xác thực.

Mallory sẽ gửi đến Alice một e-mail, trong đó có chứa đường link http://unsafe.example.com/?SID=1234.

Alice đi đến http://unsafe.example.com/?SID=1234. Sau đó đăng nhập vào website.

Mallory chỉ cần đi đến http://unsafe.example.com/?SID=1234, và sử dụng website với tài khoản của Alice.

Mallory có thể dùng các cách sau để set cookie cho Alice:

Gửi kèm theo một đoạn script để set cookie

Gửi gói tin HTTP Response kèm theo giá trị cookie của MalloryGửi gói tin HTTP Response kèm theo giá trị cookie của Mallory

Sử dụng thẻ meta của HTML:

Web12: Kỹ thuật hack Session Fixation

2. Các ví dụ

Ví dụ 1 – Client-side scripting

Tương tự như kịch bản đã nêu ở phần trên, tuy nhiên, trong trường hợp này, Session ID không được truyền vào URL mà nằm trong cookie. Để sửa giá trị của Session ID trong cookie của nạn nhân, hacker sẽ chèn một đoạn Javascript:

http://website.kom/document.cookie=”sessionid=abcd”;

Ví dụ 2 - tag

Tương tự như client-side scripting, nhưng lần này hacker sẽ chèn thêm thẻ:

http://website.kon/

Ví dụ 3 – HTTP header response

Việc chèn Session ID cũng có thể được thực hiện bằng cách chặn các gói tin trao đổi giữa client và Web application, sau đó chèn thêm trường Set-Cookie vào header.

Web12: Kỹ thuật hack Session Fixation - Ảnh minh hoạ 2

3. Cách phòng chống

Nguyên nhân của lỗi này là do server không tái tạo session ID sau mỗi lần đăng nhập thành công. Vì thế, khắc phục lỗi này cũng không khó, ta chỉ cần thay đổi giá trị của Session ID là xong. Trong PHP, ta dùng hàm session_regenerate_id() để cấp lại session.

Nguồn tin: quantrimang.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây