Kỹ thuật và công cụ phát hiện lỗ hổng web

71 1K 16
Kỹ thuật và công cụ phát hiện lỗ hổng web

Đ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

Mục lục LỜI MỞ ĐẦU Lý thực đề tài Như biết Internet đời thực cách mạng công nghệ vĩ loại Internet không kết nối hàng tỷ người giới lại với nhau, mà bách khoa toàn thư khổng lồ… Nói đến ứng dụng Internet không đề cập đến World Wide Web (www) Ra đời vào 13/03/1989 trở thành ứng dụng phát triển nhiều người dùng WWW không sử dụng để quảng bá thông tin, đăng tin tức mà nơi công ty, doanh nghiệp giới thiệu quảng bá sản phẩm mình, đồng thời thực giao dịch với khách hàng nhanh chóng thuận tiện… Vấn đề đáng quan ngại ứng dụng Web phát triển, phổ biến khả xuất lỗi, lỗ hổng cao… đường mà cá nhân, tổ chức tin tặc(hacker) đột nhập công vào với mục đích khác Thực trạng cho thấy số lượng công vào ứng dụng web Internet ngày cao, tăng theo cấp số nhân, lỗ hỗng phát ngày nhiều, thiệt hại ứng dụng web bị công không nhỏ chút Hacker xâm nhập vào hệ thống để lấy làm sai lệch thông tin nhạy cảm cá nhân, tổ chức, quan…Việc không thiệt hại mặt kinh tế mà ảnh hưởng đến uy tín cá nhân, công ty, doanh nghiệp… Do “Kỹ thuật công cụ phát lỗ hổng ứng dụng Web” đề tài gắn liền với thực tế Qua đề tài chúng em vận dụng kiến thức mà chúng em học, vận dụng vào 2 Muc tiêu - Tìm hiểu số lỗ hổng bảo mật phổ biến ứng dụng web - Tìm hiểu nguyên nhân ứng dụng web tính an toàn - Tìm hiểu số cách phát công lỗ hổng úng dụng web - Làm vài Demo thực nghiệm Lời cảm ơn Để hoàn thành đề tài này, chúng em chân thành cảm ơn giảng viên khoa Công nghệ thông tin – Học viện kỷ thuật Mật Mã đặc biệt thầy Phạm Văn Hưởng người trực tiếp hướng dẫn nhóm, tận tình hướng dẫn giúp đỡ cho chúng em Do kiến thức thời gian có hạn nên đề tài chúng em tránh sai sót Kính mong quý thầy cô góp ý bổ sung cho chúng em, để chúng em hoàn thiện tốt đề tài sau có thêm kỹ làm việc tốt cho công việc sau Chúng em chân thành cảm ơn! Hà Nội, ngày tháng năm 2016 Nhóm sinh viên thực hiện: Lê Thị Hải Phạm Thị Hoài Hà Văn Triệu DANH MỤC VIẾT TẮT Từ viết tắt Viết đầy đủ HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn HTTP Hypertext Tranfer Protocol Giao thức truyền tải siêu văn Ý nghĩa Ngôn ngữ sử dụng để tìm định dạng lại phần tử tạo ngôn ngữ đánh dấu CSS Cascading Style Sheets URL Uniform Resource Locator XML eXtensible Markup Language SQL Structured Query Language XSS Cross Site Scripting Là kiểu công cho phép hacker chèn đoạn script độc hại vào website thực thi phía người dùng CSRF Cross Site Request Forgery Là kỹ thuật công cách sử dụng quyền chứng thực người sử dụng website khác SSL Secure Sockets Layer Là tiêu chuẩn công nghệ bảo mật, truyền thông mã hoá máy chủ Web server trình duyệt (browser) TLS Transport Layer Security OWASP Open Web Application Security Project OSSTMM Open Source Security Testing Methodology Manual WAF Web Application Firewall Địa tài nguyên chứa thư mục tập tin Ngôn ngữ đánh dấu Mở rộng Ngôn ngữ truy vấn mang tính cấu trúc Bảo mật tầng truyền tải Dự án bảo mật ứng dụng web mở Bảo mật mã nguồn mở thử nghiệm phương pháp hướng dẫn sử dụng Tường lửa ứng dụng Web DANH MỤC HÌNH VẼ Hình 1.1 Mô hình thể quan hệ lớp ứng dụng web………………12 Hình 1.2 Mô hình dịch vụ ứng dụng web……………………………… 13 Hình 1.3 Mô hình hoạt động ứng dụng web………………………………….13 Hình 2.1 nguyên lí hoạt động XSS……………………………… ………….21 Hình 2.2: Tấn công XSS ứng dụng WEB blog ………………………….22 Hình 2.3: Tấn công XSS thông qua email………… ………… ………… …….23 Hình 2.4: Các bước thự XSS đánh cắp Cookie người dùng ……………….24 Hình 3.1: Giao diện website bì đổi giao diện …………………………………….31 Hình 3.2 Website bạn bị chèn đường dẫn tới website khác………….32 Hình 3.3 Trang web bị chèn đường dẫn giả mạo website khác ………….33 Hình 3.4 Các website bị công thời điểm trang mạng Zone-h.org 34 Hình 3.5 Kết thu đuợc từ Paros………… ………… ………… ………… 49 Hình 3.6 Giao diện tool Acunetix Web Security Scanner………… ………51 Hình Mô hình hệ thống Tường lửa ứng dụng Web (WAF) ……….53 Hình 3.8 Một ví dụ triển khai WAF máy chủ web Windows………………54 GIẢI THÍCH THUẬT NGỮ Hacker Hacker thuật ngữ dùng để chuyên kẻ phá hoại hệ thống mạng… Hacker thường chuyên gia máy tính Hacker không tạo kẽ hở cho hệ thống, hacker lại người am hiểu hệ điều hành, hệ quản trị liệu, ngôn ngữ lập trình… Họ sử dụng kiến thức việc tìm tòi khai thác lỗ hổng hệ thống mạng Một số hacker dừng lại việc phát thông báo lỗi tìm cho nhà bảo mật hay người phát triển chương trình, họ xem WhiteHat (Hacker mũ trắng) Một số hacker dựa vào lỗ hổng thực việc khai thác trái phép nhằm mục đích phá hoại hay mưu lợi riêng, người bị xem BlackHat (Hacker mũ đen) Lỗ hổng (Vulnerability) Lỗ hổng điểm yếu hay thiếu xót ứng dụng, hệ thống hay qui trình Cho phép kẻ công khai thác để truy cập trái phép vào tài nguyên hệ thống, làm tổn hại tới bên tham gia hệ thống Lỗ hổng nằm khâu thiết kế hay việc thực thi, cài đặt, triển khai ứng dụng, hệ thống Cookie Cookie đoạn văn ghi thông tin tạo lưu trình duyệt máy người dùng Cookie thường tạo người dùng truy cập website, cookie ghi nhớ thông tin tên đăng nhâp, mật khẩu, lựa chọn người dùng lựa chọn kèm Các thông tin lưu máy tính thường dùng để nhận người dùng viếng thăm trang web Nó tập tin mà trang web gửi đến máy tính người dùng Khi người dùng truy cập đến trang web có sử dụng cookie, trang web tự động gửi cookie đến máy tính người dùng Những cookie tự động tổ chức hệ thống máy tính Khi truy cập đến trang web sử dụng cookie lưu, cookie tự động gửi thông tin người dùng cho chủ (người tạo cookie) Tuy nhiên thông tin cookie ghi nhận không tiết lộ rộng rãi, có website chứa cookie xem thông tin Cookie xem thành phần thiếu với website có khối lượng liệu lớn, có số lượng người dùng đông, có chức kèm với thành viên đăng kí Phần lớn website website thương mại điện tử Cookie thường xóa hủy bỏ sau thời gian định Tường lửa Tường lửa thiết bị phần cứngvà/hoặc phần mềm hoạt động môi trường máy tính nối mạng để ngăn chặn số liên lạc bị cấm sách an ninh cá nhân hay tổ chức, việc tương tự với hoạt động tường ngăn lửa tòa nhà Nhiệm vụ tường lửa kiểm soát giao thông liệu hai vùng có độ tin cậy khác Các vùng tin cậy điển hình bao gồm: mạng Internet (vùng không đáng tin cậy) mạng nội (một vùng có độ tin cậy cao) Mục đích cuối cung cấp kết nối có kiểm soát vùng với độ tin cậy khác thông qua việc áp dụng sách an ninh mô hình kết nối dựa nguyên tắc quyền tối thiểu Proxy Proxy cung cấp cho ngƣời sử dụng truy xuất Internet nghi thức đặt biệt tập nghi thức thực thi dual_homed host basion host Những chương trình client ngƣời sử dụng qua trung gian proxy server thay cho server thật mà người sử dụng cần giao tiếp Proxy server xác định yêu cầu từ client định đáp ứng hay không đáp ứng, yêu cầu đáp ứng, proxy server kết nối với server thật thay cho client tiếp tục chuyển tiếp yêu cầu từ client đến server, trả lời server đến client Vì proxy server giống cầu nối trung gian server client Chương Tổng quan ứng dụng web 1.1 Khái niệm ứng dụng web Mang tính kỹ thuật nhiều giải thích ứng dụng Web truy vấn máy chủ chứa nội dung (chủ yếu sở liệu lưu trữ nội dung) tạo tài liệu Web động đẻ phục vụ yêu cầu máy khách ( người sử dụng website).Tài liệu tạo kiểu định dạng tiêu chuẩn hỗ trợ tất cae trình duyệt HTML , XHTML,…javasript dạng script client- side cho phép yếu tố động có trang(như thay đổi ảnh lần người dùng di chuột tới) Trình duyệt Web chìa khóa.Noa dịch chạy tất script, lệnh hiển thị trang web nội dung yêu cầu Dưới góc độ chức năng, ứng dụng web chương trình máy tính cho phép người dùng website đăng nhập, truy vấn vào liệu qua mạng Internet trình duyệt Web yêu thích họ Dữ liệu gửi tới người dùng trong trình duyệt theo kiểu thông tin động (trong định dạng cụ thể, với HTML dùng CSS ) từ ứng dụng Web qua Web Server Để hiểu rõ ý nghĩa, khái niệm sâu vào tìm hiểu cấu trúc cách hoạt động ứng dụng Web 1.2 Cấu trúc cách hoạt động ứng dụng web 1.2.1 Cấu trúc ứng dụng web Mô hình ứng dụng Web đơn giản mô hình MVC(modelview-controller) - Tầng Model : chứa code connect tới database , truy vấn thêm cóa sữa liệu - Tầng View : chứa code tạo giao diện tương tác với người dùng , liệu vẽ - Tầng Controller : chứa code điều khiển dòng liệu (flow control) , gắn kết tầng Model tầng View lại với Ứng dụng chia thành layer làm tăng tính reuse dễ dàng mở rộng Nên muốn ứng dụng truy xuất di động , cần tạo tầng view riêng cho di động , tầng model controller không thay đổi.Hay muốn thay đổi database , việc dễ dàng , cần ta tạo tầng model , phần view controller không bị ảnh hưởng - Mô hình thể quan hệ lớp ứng dụng web : Hình 1.1 mô hình thể quan hệ lớp ứng dụng web - Mô hình dịch vụ ứng dụng web: 10 57 Vậy lỗi cột 25 => số cột 24 Tiếp theo dung lệnh UNION SELECT để khai thác 58 Nếu thấy cột xuất => cột bị lỗi => khai thác 59 hình cột tiến hành inject câu lệnh sql sau : daotaonlyt.edu.vn/index.php?id=320 UNION SELECT 1,group_concet(table_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22, 23,24 from information_schema.tables where table_schema=database() - Ta show bảng database 60 daotaonlyt.edu.vn/index.php?id=320 UNION SELECT 1,group_concet(column_name),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24 from information_schema.columns where table_name=0x7461696b686f616e() 0x thể hệ hexa 7461696b686f616e mã hóa từ “thanhvien” (tên cột chứa thông tin tài khoản admin) câu lệnh dung để show cột bảng thanhvien 61 Tiếp theo dung tài khoản mật lấy đăng nhập kết 4.2 Tấn công XSS 4.2.1 Chuẩn bị Chuẩn bị file : 62 + cc.php (Chứa code lấy cookie admin) + log.txt (file trống dùng để chứa cookie lấy được) Nội dung file cc.php : 4.2.2 Tiến hành Upload lên site cá nhân để lấy link chèn vào code : 63 Đăng nhập vào tài khoản khách dùng để công : 64 Sau đăng nhập xác định website có lỗi xss (nội dung có alert hiển thị - tức có lưu vào database) => khai thác + Nhập link dẫn đến file cc php vừa tạo đồng thời lấy cookie người bị công : 65 Chuyển sang tài khoản Admin : Khi Admin vào kiểm duyệt tin bị chuyển tiếp đến trang chứa code lấy cookie : Lúc file log.txt ghi cookie admin : 66 Ta dùng tools Cookie manager + firefox để đăng nhập mà k cần password : + Nhập thông tin cookie admin Cuối vào website với quyền cao : 67 68 KẾT LUẬN Qua đề tài nắm mánh khóe hay lỗ hổng bảo mật giúp Hacker dễ dàng xâm nhập vào hệ thống máy chủ ứng dụng WEB Trước hết bảo vệ khỏi cạm bẫy hay lời dụ dỗ từ Hacker để lấy thông tin cần thiết từ người dùng Đối với cộng đồng người dùng Internet người dễ bị Hacker lợi dụng với kiến thực hạn hẹp công nghệ thông tin Khi đọc đề tài nhiều thấy lợi hại Hacker không nhiều có chút kiến thức để tự xử lý tình công XSS thông qua spam mail Còn người quản trị mạng với đề tài giúp ich cho biết lỗ hổng nhỏ mà Hacker tận dụng để xâm nhập vào hệ thống Tuy nhiên, hạn chế lớn đề tài không demo đầy đủ hình thức công mà chỉnh demo phần nhỏ số hình thức công Hacker Tiếp theo nói để Hacker ứng dụng WEB đòi hỏi phải biết rõ ngôn ngữ lập trình WEB phân tích đoạn code thấy lỗ hổng việc xây dụng hệ thống ứng dụng WEB vấn đề lớn Vì hạn chế mà đề tài nói rõ phần lý thuyết demo có phần nhỏ để hiểu thêm phần lý thuyết HƯỚNG PHÁT TRIỂN Trong phạm vi đề tài báo cáo cuối môn “thực tập sở chuyên ngành” , báo cáo đạt yêu cầu đặt Tuy nhiên, kết khiêm tốt 69 hạn chế thời gian kiến thực hạn hẹp ứng dụng WEB ngôn ngữ WEB Nếu có điều kiện cố gắng phát triển thêm nội dung sau: - Tìm hiểu ngôn ngữ lập trình WEB để hiểu code ứng dụng WEB - Tìm hiểu cố gắng demo kỹ thuật công ứng dụng WEB mức độ cao 70 TÀI LIỆU THAM KHẢO Internet - https://vi.wikipedia.org http://quantrimang.com/tim-hieu-ve-cac-ung-dung-web-35586 http://securitydaily.net/web-security-tuong-lua-ung-dung-web-waf/ http://vnist.vn/vnist-huong-dan-cach-phat-hien-website-bi-tan-cong/ http://securitydaily.net/lam-gi-khi-phat-hien-website-bi-tan-cong-bi-chen-ma-doc/ http://securitydaily.net/cac-quy-trinh-chuan-kiem-tra-mot-ung-dung-website/ http://securitydaily.net/huong-dan-10-bien-phap-chong-hack-website/ http://antoanthongtin.vn/Detail.aspx?CatID=e1999c9a-5eeb-418c-9ea8- - ae4c5e850d0c&NewsID=9283e8ae-b61e-4a16-a9ee-7237b13c016e http://laodong.com.vn/cong-nghe/hang-nghin-website-viet-nam-bi-tan-cong-vi-lohong-cu-337086.bld 71 [...]... 3 Kỹ thuật và công cụ phát hiện lỗ hổng trong ứng dụng web 3.1 Thực trạng an toàn ứng dụng web hiện nay Thực trạng an toàn web là vấn đề không chỉ riêng mỗi quốc gia nào Mỗi ngày, mỗi giờ luôn có những website bị tấn công trên khắp thế giới Theo thống kê của BKAV, trung bình mỗi tháng ở Việt Nam có 300 website của các tổ chức, doanh nghiệp bị hacker tấn công và tới 40% trang web trong nước tồn tại lỗ. .. dụng WEB và mối de dọa của chúng đối với người sử dụng ngày càng lớn 2.2.2 Các dạng tấn công Hacker tấn công thông máy chủ ứng dụng WEB Hacker dùng các công cụ quét lỗ hổng XSS cho các máy chủ ứng dụng WEB Vào một ngày đẹp trời, Hacker cũng đã tìm thấy một máy chủ ứng dụng WEB bị lỗi XSS và thế là Hacker tải các Scrip (kịch bản) lên máy chủ WEB và thông qua máy chủ WEB các máy khách lên trang web của... thác, tấn công website bạn cần vá lại các lỗ hổng mà hacker đã khai thác, cập nhật các bản vá mới cho phần mềm, cấu hình phần quyền cho website 3.1.3 Một số biến pháp chống tấn công website Tấn công website thường được tin tặc thực hiện bằng cách tạo ra các đoạn mã tự động dò quét lỗ hổng của các website trên Internet nhằm cố gắng khai thác các lỗ hổng phổ biến tồn tại trong các ứng dụng web Một số... bị tấn công 28 3.2.1 Dấu hiệu nhận biết website của bạn bị tấn công Làm thế nào để biết website của mình đang bị tấn công? Dưới đây là những dấu hiệu giúp bạn phát hiện tình trạng website của mình đã hoặc đang bị tấn công 3.2.1.1 Dao diện Website bị thay đổi Trang chủ hoặc một đường dẫn tới một trang con của website bị tin tặc thay đổi giao diện Xuất hiện nhiều dòng chữ được hacker chèn vào website,... sử dụng công cụ Website malware scanner của Sucuri để phát hiện các mã độc mà hacker đã chèn vào wesite của, tại đây (https://sitecheck.sucuri.net/) 3.1.2.2 Tìm và loại bỏ các mã độc, backup, webshell đang tồn tại trên hệ thống Hacker thường để lại mã độc trên website của bạn theo 3 hình thức sau   Chèn code mã độc vào các tệp tin trên website của bạn Tải các tệp tin webshell, backdoor lên website... để có thể kiểm soát website của bạn  thông qua backdoor này Cài đặt chương trình độc hại chạy ngầm, mở cổng để hacker truy cập vào trong lần sau Để phát hiện các webshell, backdoor bạn cần tìm và quét toàn bộ thư mục web của mình để phát hiện Bạn có thể sử dụng một số công cụ tìm kiếm: FileSeek, Everything, Webshell Detector… bạn có thể theo dõi thêm bài viết: Kinh nghiệm tìm kiếm WebShell trong mã... các website khác, tồn tại nhiều đường dẫn tới các website chứa nội dung đồi trụy, khiêu dâm… Hình 3.2 Website của bạn bị chèn các đường dẫn tới các website khác Nên thường xuyên và định kỳ kiểm tra các backlink (đường dẫn tới website khác) trên website của mình hoặc thực hiện viewsource của website (Ấn chuột phải trên trang web / chọn viewpage source / Rà soát nội dung nguồn HTML của website để phát hiện. ..  website Các hệ thống hay các module giám sát thông báo rằng nhiều tệp tin trên website đã  bị thay đổi nội dung Phát hiện website của mình thường xuyên gửi các yêu cầu HTTP đến các website  khác… Phát hiện các tệp tin, đoạn mã độc hại trên website, các tệp tin có chữ nhiều đoạn mã đã được mã hóa 31  Bạn nhận được thông báo từ các đơn vị bảo mật về việc website của bạn bị tấn công, bị hack hay website... cách thực hiện công việc này 33 Để phát hiện các mã độc hại được nhúng và mã nguồn website, bận cần tìm và kiểm tra tất cả các tệp tin có ngày thay đổi (date modified) xung quanh thời điểm tấn công Rất có thể hacker đã chèn các mã độc vào các tệp tin “sạch” của bạn Ngoài ra bạn có thể đọc trong Log access để biết các backdoor mà hacker đã truy cập vào trước thời gian mà website của bạn bị tấn công Với... tấn công với câu lệnh như SELECT, HAVING, INSERT, 2.1.3 Cách phòng chống và bảo mật Việc tấn công SQL Injection dựa vào những câu thông báo lỗi do đó việc phòng chống hữu hiệu nhất là không cho hiển thị những thông điệp lỗi hệ thống cho người dùng thay vào đó bằng một thông báo lỗi do người lập trình hay quản trị viên phát triển thiết kế mỗi khi lỗi xảy ra trên ứng dụng Kiểm tra kỹ giá trị nhập vào

Ngày đăng: 14/10/2016, 16:23

Từ khóa liên quan

Mục lục

  • Mục lục

  • LỜI MỞ ĐẦU

  • DANH MỤC VIẾT TẮT

  • DANH MỤC HÌNH VẼ

  • GIẢI THÍCH THUẬT NGỮ

  • Chương 1. Tổng quan về ứng dụng web.

    • 1.1 Khái niệm về ứng dụng web

    • 1.2 Cấu trúc và cách hoạt động của ứng dụng web

      • 1.2.1 Cấu trúc của ứng dụng web

      • 1.2.2 Cách hoạt động của ứng dụng web

      • 1.2.3 Nguyên nhân phổ biến cho ứng dụng web mất tính an toàn

      • 1.3 Nguy hiểm và mối đe dọa của các lỗ hổng

        • 1.3.1 Lỗi SQL Injection

        • 1.3.2 Lỗi Cross Site Scripting (XSS)

        • 1.3.3 Lỗi Cross-Site Request Forgery(CSRF)

        • Chương 2. Một số lỗ hổng bảo mật ứng dụng web.

          • 2.1 Lỗi SQL Injection

            • 2.1.1 Khái niệm

            • 2.1.2 Các dạng tấn công

            • 2.1.3 Cách phòng chống và bảo mật

            • 2.2 Lỗi Cross Site Scripting (XSS)

              • 2.2.1 Khái niệm

              • 2.2.2 Các dạng tấn công

              • 2.2.3 Cách phòng chống và bảo mật

              • 2.3 Lỗi Cross-Site Request Forgery(CSRF)

                • 2.3.1 Khái niệm

                • 2.3.2 Các dạng tấn công

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

Tài liệu liên quan