Dành cho Quản trị web

Kỹ thuật tấn công Cross-site request forgery (CSRF)

Cross-site Request Forgery (CSRF) là kỹ thuật tấn công bằng cách sử dụng quyền chứng thực của người dùng đối với một website. CSRF là kỹ thuật tấn công vào người dùng, dựa vào đó hacker có thể thực thi những thao tác phải yêu cầu sự chứng thực.


Tấn công sử dụng kỹ thuật này dành cho người am hiểu về hệ thống, có thể là người từng phát triển ứng dụng đó, hoặc một mã nguồn mở, hoặc một mã nguồn nào đó đã được công khai code.

Để đơn giản chúng ta lấy vị dụ đơn giản sau :

Giả sử có hệ thống bán hàng, khách hàng được đăng sản phẩm của mình lên để bán, tuy nhiên phải qua kiểm duyệt của admin (ở đây chúng ta biết admin là ai rồi, nói chung là biết info của nó)

Giả sử sản phẩm đăng lên có id=4

Thường thì khi active sản phẩm Lập trình viên thường làm thế này :

1. Tạo 1 request ajax dạng http://site.com/active.aspx?id=4

2. Kiểm tra xác thực user

3. Kiểm tra roles của user

4. Thực hiện cập nhật trạng thái của sản phẩm thành true

5. Trả về 1 respone dạng json hay html

Vậy chúng ta sẽ tấn công và tự active sản phẩm của mình như thế nào?

Nếu site không có lỗi Xss hay sql Injection,...

Chúng ta có thể làm như sau :

Gửi tin nhắn đến Admin (Tất nhiên tin nhắn trong site hỗ trợ html) nội dung như sau :

Nội dung chém gió ở đây Winking smile


Giải thích : khi admin đọc tin nhắn này trình duyệt sẽ request đến link đó và lấy cookie của trình duyệt và tiến hành active Để ý cái ảnh có chiều cao và rộng bằng 0 rất khó phát hiện

Trường hợp không gửi tin nhắn được các bạn có thể gửi mail, giả sử ta biết rằng admin đang login chúng ta có thể send 1 cái web mà chúng ta lập ra, trong đó có đoạn code trên rồi send qua yahoo hay gì gì đó, khi đó admin viếng thăm vào và thực hiện thao tác trên

Như vậy ta thực hiện một truy vấn trái phép dựa vào chính người dùng

Cách phòng tránh :

- Sử dụng POST thay cho GET

- Sử dụng một token khó đoán và gửi kèm theo url

- Xác thực các thao tác nhạy cảm thông qua mật khẩu hoặc captcha

Copyright © 2011 VietCloud Team