Tấn công CSRF

1.Mô tả chung CSRF

CSRF là một cuộc tấn công mà thủ đoạn của nó là dụ nạn nhân vào tải một trang có chứa một request độc hại. Độc hại là sao :v nghĩa là từ đó kẻ tấn công được thừa hưởng quyền hạn của nạn nhân để thực hiện một chức năng không mong muốn thay mặt cho nạn nhân đó, như thay đổi địa chỉ e -mail của nạn nhân, địa chỉ nhà, mật khẩu , hoặc mua một cái gì đó vv. Các cuộc tấn công CSRF thường nhắm mục tiêu chức năng gây ra một sự thay đổi trạng thái trên máy chủ nhưng cũng có thể được sử dụng để truy cập dữ liệu nhạy cảm.

Capture

Đối với hầu hết các trang web, trình duyệt sẽ tự động thêm vào các thông tin xác thực cho các request, chẳng hạn như cookie hay phiên , thông tin xác thực cơ bản , địa chỉ IP, thông tin chứng thực Windows, vv Vì vậy , nếu người dùng hiện đang được xác thực cho một trang web, trang web đó sẽ không có cách nào để phân biệt được một request là từ người sử dụng đó hay không :v

Bằng cách này , kẻ tấn công có thể làm cho nạn nhân thực hiện hành động mà họ không có ý định , chẳng hạn như đăng xuất, mua hàng , thông tin tài khoản thay đổi, lấy thông tin tài khoản , hoặc bất kỳ chức năng khác được cung cấp bởi các trang web đó.

Đôi khi CSRF có thể được lưu trữ trên site bị lỗi, ta gọi là Stored CSRF. Điều này có thể được thực hiện bằng cách lưu trữ một request trong một thẻ IMG hoặc IFRAME trong một vùng mà chấp nhận HTML, hoặc bằng một cuộc tấn XXS phức tạp hơn.

CSRF còn có nhiều tên gọi khác như là XSRF, “Sea Surf”, Session Riding, Cross-Site Reference Forgery, Hostile Linking.

2.Tấn công CSRF thế nào ?

Có rất nhiều cách để một người dùng bị lừa tải thông tin hoặc gửi thông tin đến một ứng dụng web phục vụ tấn công CSRF. Để thực hiện tấn công, đầu tiên chúng ta phải hiểu làm thế nào để tạo ra một yêu cầu “độc hại” để cho nạn nhân thực hiện nó. Chúng ta hãy xem xét ví dụ sau: Alice muốn chuyển 300 củ đến cho Bob và sử dụng truongbank.com. Yêu cầu được tạo ra bởi Alice và nó như sau:

 
POST http://truongbank.com/chuyen.php HTTP/1.1
...
...
...
Content-Length: 19;

acct=BOB&amount=300000000

Tuy nhiên, Thiệu thông báo rằng các ứng dụng web tương tự sẽ thực hiện việc chuyển giao cùng sử dụng các thông số URL như sau:

GET http://truongbank.com/chuyen.php?acct=BOB&amount=300000000 HTTP/1.1

Thiệu bây giờ quyết định khai thác lỗ hổng ứng dụng web này biến Alice thành nạn nhân. Hắn ta đầu tiên xây dựng các URL như sau để sau đó sẽ chuyển 100 triệu từ tài khoản của Alice vào tài khoản của mình:

http://truongbank.com/chuyen.php?acct=thieumao&amount=100000000

Bây giờ request độc hại đã được tạo ra, Thiệu phải lừa Alice vào trình yêu cầu. Phương pháp cơ bản nhất là gửi cho Alice một email HTML có nội dung sau:

<a href="http://truongbank.com/chuyen.php?acct=thieumao&amount=100000000">Click vào đây hay lắm :v!</a>

Giả sử Alice đã được chứng thực với các ứng dụng web, khi nhấp chuột vào liên kết, lập tức 100 triệu của Alice sẽ chuyển vào tài khoản của Thiệu. Tuy nhiên, Thiệu nhận ra rằng nếu Alice nhấp vào liên kết, sau đó Alice sẽ nhận thấy việc chuyển giao đã xảy ra. Vì vậy, Thiệu quyết định để ẩn cuộc tấn công trong một hình ảnh Null-byte:

<img src="http://truongbank.com/chuyen.php?acct=thieumao&amount=100000000" width="1" height="1" border="0">

Và rồi Alice sẽ chẳng thấy gì cả và giao dịch vẫn được thực hiện => ok done hehe.

Published by Nhat Truong

Hi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: