Yêu cầu trên nhiều trang web giả mạo (CSRF)
Một cuộc tấn công CSRF buộc người dùng đã xác thực (nạn nhân) gửi một yêu cầu HTTP giả mạo, bao gồm cookie phiên của nạn nhân đến một ứng dụng web dễ bị tấn công, điều này cho phép kẻ tấn công buộc trình duyệt của nạn nhân tạo ra yêu cầu sao cho ứng dụng dễ bị tấn công coi là yêu cầu hợp pháp từ nạn nhân.
Hãy cho chúng tôi hiểu Tác nhân đe dọa, Vectơ tấn công, Điểm yếu về bảo mật, Tác động kỹ thuật và Tác động kinh doanh của lỗ hổng này với sự trợ giúp của sơ đồ đơn giản.
Thí dụ
Đây là một ví dụ cổ điển về CSRF -
Step 1 - Giả sử, ứng dụng dễ bị tấn công sẽ gửi yêu cầu thay đổi trạng thái dưới dạng văn bản thuần túy mà không có bất kỳ mã hóa nào.
http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243
Step 2 - Bây giờ tin tặc xây dựng một yêu cầu chuyển tiền từ tài khoản của nạn nhân sang tài khoản của kẻ tấn công bằng cách nhúng yêu cầu vào một hình ảnh được lưu trữ trên các trang web khác nhau dưới sự kiểm soát của kẻ tấn công -
<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#"
width = "0" height = "0" />
BẬT tay
Step 1- Hãy để chúng tôi thực hiện giả mạo CSRF bằng cách nhúng tập lệnh Java vào một hình ảnh. Ảnh chụp nhanh của vấn đề được liệt kê dưới đây.
Step 2 - Bây giờ chúng ta cần mô phỏng chuyển giao thành một hình ảnh 1x1 và làm cho nạn nhân nhấp vào giống như vậy.
Step 3 - Khi gửi tin nhắn, tin nhắn được hiển thị như được tô sáng bên dưới.
Step 4- Bây giờ nếu nạn nhân nhấp vào URL sau, quá trình chuyển được thực hiện, có thể được tìm thấy đang chặn hành động của người dùng bằng cách sử dụng bộ phần mềm ợ. Chúng tôi có thể thấy việc chuyển giao bằng cách phát hiện nó trong Nhận tin nhắn như hình dưới đây -
Step 5 - Bây giờ khi nhấp vào làm mới, đánh dấu hoàn thành bài học được hiển thị.
Cơ chế phòng ngừa
Có thể tránh CSRF bằng cách tạo một mã thông báo duy nhất trong một trường ẩn sẽ được gửi trong phần nội dung của yêu cầu HTTP chứ không phải trong một URL, điều này dễ bị lộ.
Buộc người dùng xác thực lại hoặc chứng minh rằng họ là người dùng để bảo vệ CSRF. Ví dụ, CAPTCHA.