Trang chủ » Bảo mật » Kỹ thuật tấn công Cross-site request forgery (CSRF)

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 CSRF có thể xem tại bài Top 10 kỹ thuật tấn công trên web

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ó Winking smile)

Giả sử sản phẩm mình đă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 Smile

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 :”>

Tất nhiên nếu site lỗi XSS thì ta có thể khai thác lỗi XSS tại bài này

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 :

<img src=”http://site.com/active.aspx?id=4” width=”0” hieght=”0”/img>

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 Smile Để ý cái ảnh có chiều cao và rộng bằng 0 rất khó phát hiện Smile

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 Open-mouthed smile 

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 Open-mouthed smile

Cách phòng tránh :

– Sử dụng POST thay cho GET

– Sử dụng một token khó đoán

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

……..

Bình luận

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s