HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
CƠ SỞ TP.HCM
AN NINH MẠNG
BÁO CÁO ĐỀ TÀI MÔN HỌC AN NINH MẠNG
KỸ THUẬT TẤN CÔNG XSS
Giảng viên hướng dẫn : ThS. LÊ PHÚC
Sinh viên thực hiện : TRẦN ĐÌNH NGỌC
MãSV: 407170045
Lớp : D07THM1
1
AN NINH MẠNG
2
Mục lục
I. GIỚI THIỆU CHUNG ................................................................................................. 4
II. GIỚI THIỆU VỀ XSS ................................................................................................. 5
1. Tìm hiểu XSS ........................................................................................................... 5
2. Hai hình thức tồn tại của XSS .................................................................................. 5
2.1. Stored XSS ......................................................................................................... 5
2.2. Reflected XSS .................................................................................................... 6
3. Mức độ nguy hiểm của XSS..................................................................................... 7
4. Mục tiêu mà XSS hƣớng tới. .................................................................................... 8
III.HOẠT ĐỘNG CỦA XSS ........................................................................................... 9
IV.CẢNH GIÁC VỚI XSS ............................................................................................ 12
V. KIỂM TRA LỖI XSS ............................................................................................... 14
1. Sử dụng Tool .......................................................................................................... 14
2. Thử bằng Code ....................................................................................................... 14
VI. KHAI THÁC LỖI XSS ........................................................................................... 16
1.Tóm tắt các bƣớc thực hiện ..................................................................................... 17
2. Các cách thực hiện.................................................................................................. 18
2.1. Nghiên cứu cách lấy cookies: .......................................................................... 18
2.2.Nghiên cứu cách lấy account. ........................................................................... 18
2.3. Tấn Công XSS Bằng Flash .............................................................................. 19
3. Attacker dùng XSS để lừa đảo ............................................................................... 22
4. Cách vƣợt qua cơ chế lọc ký tự .............................................................................. 22
AN NINH MẠNG
3
VII. PHÒNG CHỐNG XSS........................................................................................... 23
1. Với những dữ liệu ngƣời thiết kế và phát triển ứng dụng Web ........................... 23
2. Đối với ngƣời dùng. ............................................................................................. 26
VIII. PHẠM VI VÀ TÍNH KHẢ THI CỦA PHƢƠNG PHÁP TẤN CÔNG BẰNG XSS
........................................................................................................................................ 27
IX. ĐÁNH GIÁ .............................................................................................................. 27
TÀI LIỆU THAM KHẢO: ............................................................................................ 28
AN NINH MẠNG
4
I. GIỚI THIỆU CHUNG
Website ngày nay rất phức tạp và thƣờng là các web động, nội dung của web
đƣợc cập nhật thông qua các thành viên tham gia ở khắp mọi nơi trên thế giới. Và
hầu hết các website này dùng Cookie để xác thực ngƣời dùng.
Điều này đồng nghĩa với việc Cookie của ai thì ngƣời đó dùng, Nếu lấy đƣợc
Cookie ngƣời dùng nào Hacker sẽ giả mạo đƣợc chính ngƣời dùng đó(điều này là hết
sức nguy hiểm). Vậy làm sao để các hacker có thể lấy cookie của bạn? Có rất nhiều
cách để các hacker làm việc đó, ở đây tôi xin trình bày một trong những cách mà
hacker thƣờng dùng, đó chính là họ nhờ vào lỗi Cross Site Scripting(XSS).
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.
XSS đƣợc thực hiện trên các thẻ JavaScript, và các thẻ JavaScript chúng có thể làm
đƣợc những công việc sau:
1. Thay đổi cấu trúc của toàn bộ trang web.
2. Tạo tùy ý các phần tử HTML.
3. Định tuyến lại các hình thức liên kết
4. Phục hồi dữ liệu, xác thực
5. Gửi và nhận dữ liệu
6. Đọc các tổ hợp phím.
AN NINH MẠNG
5
II. GIỚI THIỆU VỀ XSS
1. Tìm hiểu 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ó 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, usename…. Trong đó, những đoạn mã nguy hiểm đựơc
chèn vào hầu hết đƣợc viết bằng các Client-Site Script nhƣ JavaScript, JScript, DHTML
và cũng có thể là cả các thẻ HTML.
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 trên chính
máy ngƣời sử dụng. Hacker sẽ 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 cũng nhƣ 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 đƣợc viết bằng ngôn ngữ máy khách nhƣ VBScript,
JavaScript…đƣợc thực thi trên chính trình duyệt của nạn nhân
2. Hai hình thức tồn tại của XSS
2.1. Stored XSS
Stored XSS là hình thức tấn công mà ở đó cho phép kẻ tấn công có thể chèn
một đoạn script nguy hiểm (thƣờng là Javascript) vào website của chúng ta thông
qua một chức năng nào đó (vd: viết lời bình, guestbook, gởi bài..), để từ đó khi các
thành viên khác truy cập website sẽ bị dính mã độc từ kẻ tấn công này, các mã độc
này thƣờng đƣợc lƣu lại trong database của website chúng ta nên gọi là Stored.
Stored XSS phát sinh do chúng ta không lọc dữ liệu do thành viên gởi lên một cách
đúng đắn, khiến cho mã độc đƣợc lƣu vào Database của website.
AN NINH MẠNG
6
2.2. Reflected XSS
Trong hình thức này, kẻ tấn công thƣờng gắn thêm đoạn mã độc vào URL của
website chúng ta và gởi đến nạn nhân, nếu nạn nhân truy cập URL đó thì sẽ bị dính
mã độc. Điều này xảy ra do ta không chú ý filter input từ URL của website mình.
AN NINH MẠNG
7
Tấn công XSS là tấn công nguy hiểm, cho phép kẻ tấn công ăn cắp thông tin trên
máy nạn nhân thông qua javascript nhƣ ăn cắp cookie, chèn mã độc để chiến quyền
điều khiển…
XSS là một trong những lỗi phổ biến, có rất nhiều trang web bị mắc phải lỗi
này, chính vì thế ngày càng có nhiều ngƣời quan tâm đến lỗi này.
Gần đây, theo Brian Krebs của tờ Washington Post báo cáo rằng hàng ngàn trang web
không an toàn đã đƣợc xác định vào năm ngoái, và trang Xssed.com đưa ra danh sách
gần 13.000 trang trong đó có nhiều lỗ hổng cross-site scripting (XSS).
Ví dụ 1: Một đoạn url mà hacker chèn Script vào để lấy cookie của ngƣời dùng.
http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe?search_te
xt=%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E
3. Mức độ nguy hiểm của XSS
Theo thống kê về các lỗ hổng bảo mật thƣờng bị tấn công nhất vào năm 2009
AN NINH MẠNG
8
Cross-Site Scripting (XSS) chiếm một tỉ lệ rất cao so với các phƣơng pháp tấn công
khác.
Kĩ thuật XSS đƣợc mô tả lần đầu tiên cách đây 5 năm (từ năm 2007 đến 2011) và hầu
hết các khả năng tiềm ẩn của kĩ thuật này đã đƣợc biết đến. Tuy nhiên chúng ta mới
chỉ khắc phục đƣợc một phần của nó. Không phải vô tình mà Yahoo Mail lại để sót
một lỗi XSS trong bộ lọc của mình. Một phƣơng pháp tối ƣu vẫn còn đang ở phía
trƣớc.
4. Mục tiêu mà XSS hướng tới.
XSS khai thác thƣờng đƣợc sử dụng để đạt đƣợc các kết quả độc hại sau đây:
* Truy cập thông tin nhạy cảm hoặc bị hạn chế
* Ăn cắp tiền (giao dịch ngân hàng, mua hàng online….)
* Theo dõi thói quen lƣớt web của ngƣời dùng
* Thay đổi năng của trình duyệt
* Bôi nhọ danh tiếng của một cá nhân hay công ty
* Hủy hoại ứng dụng Web.
* Tấn công từ chối dịch vụ
...
AN NINH MẠNG
9
III.HOẠT ĐỘNG CỦA XSS
XSS cho phép attacker chèn các đoạn mã vào link của đƣờng dẫn, để thực hiện
trên trình duyệt của ngƣời dùng, dẫn đến việc mất cookies, mật khẩu, session hay
chèn virus…
Thƣờng thì XSS có dạng nhƣ sau:
http://www.xxx.vn//index.php?pg=news&cat=.
Và nội dung xuất hiện trên trình duyệt là một cái popup có thông tin là „Lỗi XSS‟.
Ở trên ví dụ 1 trên chỉ minh họa một cách đơn giản là thêm đoạn mã của mình vào
trang Web thông qua URL. Nhƣng thực sự thì có rất 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ể dễ dàng
lợi dụng Document Object Model (DOM) để thay đổi ngữ cảnh và nội dụng Web
ứng dụng.
Ví dụ 2: Sau đây là danh sách nơi có thể chèn đoạn mã: