ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Website: itf.ud.edu.vn, E-mail:
BÁO CÁO TIỂU LUẬN MÔN HỌC
AN TOÀN VÀ BẢO MẬT THÔNG TIN MẠNG
NGÀNH KHOA HỌC MÁY TÍNH
ĐỀ TÀI :
KĨ THUẬT TẤN CÔNG CROSS-SITE SCRIPTING (XSS)
GVHD
: TS. NGUYỄN TẤN KHÔI
Nhóm HV : 1. LÊ ĐỨC THỌ
2. VÕ XUÂN LỢI
Lớp Cao học KHMT Khóa 28 (2013 2015)
ĐÀ NẴNG, 01/2015
MỤC LỤC
1. GIỚI THIỆU CHUNG ................................................................................................ 1
2. GIỚI THIỆU VỀ XSS ................................................................................................. 1
2.1.
Tìm hiểu XSS.......................................................................................................... 1
2.1.1.
XSS là gì? ......................................................................................................... 1
2.1.2.
Làm thế nào chèn những đoạn mã JavaScript độc hại ..................................... 1
2.1.3.
JavaScript độc hại là gì? ................................................................................... 2
2.1.4.
Hậu quả của JavaScript độc hại ....................................................................... 2
2.1.5.
Các tác nhân trong một cuộc tấn công XSS ..................................................... 3
2.1.6.
Một ví dụ về kịch bản tấn công ........................................................................ 3
2.1.7.
Thực hiện kịch bản tấn công như thế nào? ...................................................... 4
2.2.
Các loại XSS ........................................................................................................... 4
2.2.1.
Stored XSS ....................................................................................................... 4
2.2.2.
Reflected XSS .................................................................................................. 5
2.2.3.
DOM-based XSS .............................................................................................. 6
2.3.
Mức độ nguy hiểm của XSS .................................................................................. 7
2.4.
Mục tiêu mà XSS hướng tới. ................................................................................. 7
3. HOẠT ĐỘNG CỦA XSS ............................................................................................. 8
4. CẢNH GIÁC VỚI XSS ............................................................................................. 11
5. KIỂM TRA LỖI XSS ................................................................................................ 12
5.1.
Sử dụng Tool ........................................................................................................ 12
5.2.
Thử bằng Code ..................................................................................................... 12
6. KHAI THÁC LỖI XSS.............................................................................................. 14
6.1.
Tóm tắt các bước thực hiện ................................................................................. 14
6.2.
Các cách thực hiện............................................................................................... 15
6.2.1.
Nghiên cứu cách lấy cookies .......................................................................... 15
6.2.2.
Nghiên cứu cách lấy account.......................................................................... 15
6.2.3.
Tấn Công XSS Bằng Flash............................................................................. 16
6.3.
Attacker dùng XSS để lừa đảo ............................................................................. 18
6.4.
Cách vượt qua cơ chế lọc ký tự ........................................................................... 18
7. PHÒNG CHỐNG XSS .............................................................................................. 19
7.1.
Với những dữ liệu người thiết kế và phát triển ứng dụng Web ......................... 19
7.2.
Đối với người dùng. ............................................................................................. 21
8. PHẠM VI VÀ TÍNH KHẢ THI CỦA PHƯƠNG PHÁP TẤN CÔNG BẰNG XSS
..................................................................................................................................... 21
9. ĐÁNH GIÁ ................................................................................................................. 22
10. DEMO……………………………………………………………………………….26
1. 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
2. GIỚI THIỆU VỀ XSS
2.1. Tìm hiểu XSS
2.1.1. XSS là gì?
XSS là từ viết tắt của Cross-Site Scripting 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.
Trong đó những đoạn mã nguy hiểm được chèn vào hầu hết được viết bằng ClientSite Script như javascript, Jscript, DHTML và cũng có thể là các thẻ HTML.
XSS là một 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.
2.1.2. Làm thế nào chèn những đoạn mã JavaScript độc hại
Cách duy nhất để những hacker thực thi mã JavaScript độc hại của mình trong trình
duyệt của nạn nhân là chèn nó vào một trong những trang web mà các nạn nhân tải từ
trang web. Điều này sẽ xảy ra nếu người dùng nhập trực tiếp thông tin vào trang web, bởi
1
vì sau đó hacker có thể chèn vào một chuỗi, đó sẽ được coi như mã của trình duyệt của
nạn nhân.
Trong ví dụ dưới đây, một server-side script đơn giản được sử dụng để hiển thị bình
luận mới nhất trên một trang web:
print
print
print
print
"<html>"
"Latest comment:"
database.latestComment
"</html>"
Các kịch bản giả định rằng một lời bình luận chỉ bao gồm các văn bản. Tuy nhiên,
kể từ khi người dùng nhập trực tiếp, hacker có thể gửi bình luận này: "<script> ...
script>". Bất kỳ người dùng truy cập vào trang hiện nay sẽ nhận được các phản ứng sau
đây:
<html> Latest comment:
<script>...</script>