Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
2,79 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, Mail: cntt@edu.ud.vn LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI : TÌM HIỂU MỘT SỐ LỖI BẢO MẬT VÀ PHƯƠNG PHÁP KHẮC PHỤC LỖI BẢO MẬT CỦA CÁC ỨNG DỤNG TRÊN PHP Mã số : 06T1-039 Ngày bảo vệ : 15-16/06/2011 SINH VIÊN : TRẦN QUỐC THẮNG LỚP : 06T1 CBHD : PGS.TS VÕ TRUNG HÙNG ĐÀ NẴNG, 06/2011 LỜI CẢM ƠN Với tình cảm chân thành nhất, cho phép em bày tỏ lòng biết ơn sâu sắc đến tất cá nhân, đơn vị tạo điều kiện thuận lợi, giúp đỡ em suốt trình học tập thực đồ án đồ án tốt nghiệp Đầu tiên em xin bày tỏ lòng biết ơn sâu sắc đến q thầy, giáo trường Đại Học Bách Khoa Đà Nẵng tận tình giảng dạy, truyền đạt kiến thức cho em suốt năm năm học vừa qua.Em xin chân thành cảm ơn thầy cô khoa Công nghệ thông tin-Trường Đại học Bách Khoa Đà Nẵng trang bị cho em kiến thức cần thiết để em thực tốt đồ án đủ tự tin để làm việc sau Đặc biệt em xin gửi lời cám ơn đến thầy giáo PGS.TS.Võ Trung Hùng trực tiếp hướng dẫn giúp đỡ em suốt thời gian em thực đồ án tốt nghiệp Cuối em xin gửi lời cám ơn tới gia đình, người thân tất bạn bè ln động viên, khích lệ em suốt trình học tập thời gian thực để hoàn thành đồ án tốt nghiệp Mặc dù có nhiều cố gắng, song kiến thức, lực kinh nghiệm thân hạn chế nên khơng thể tránh khỏi sai sót nội dung lẫn hình thức Kính mong nhận giúp đỡ đóng góp ý kiến thầy cô giáo bạn bè để đồ án tốt nghiệp hoàn thiện Xin chân thành cám ơn! Huế, tháng năm 2011 Sinh viên thực Trần Quốc Thắng LỜI CAM ĐOAN Tôi xin cam đoan : Những nội dung luận văn thực hướng dẫn trực tiếp thầy PGS.TS.Võ Trung Hùng Mọi tham khảo dùng luận văn trích dẫn rõ ràng tên tác giả, tên cơng trình, thời gian, địa điểm công bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, xin chịu hoàn toàn trách nhiệm Sinh viên thực Trần Quốc Thắng NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… DANH MỤC TỪ VIẾT TẮT Chữ viết tắt Chữ đầy đủ ASP CGI Advanced Research Projects Agency Network Common Gateway Interface DBMS Database Management System HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol IIS Internet Information Services JSP Java Server Pages OWASP The Open Web Application Security Project PERL Practical Extraction and Report Language PHP Hypertext Preprocessor SSL Secure Socket Layer TCP/IP Transmission Control Protocol/Internet Protocol URL Uniform Resource Locator XSS Cross Site Scripting DANH MỤC CÁC BẢNG Số hiệu bảng Tên bảng Thiết lập tùy chọn bảo mật Bảng lưu tên người dùng mật có ba cột bổ sung Trang 14 47 DANH MỤC HÌNH VẼ Hình 1: Kiến trúc ứng dụng web Hình 2: Mơ hình hoạt động ứng dụng web Hình 3: Một Form đăng nhập trình duyệt 31 Hình 4: Kịch cơng Session fixation sử dụng Session ID chọn sẵn .35 Hình 5: Tấn cơng Session fixation khởi tạo phiên 37 Hình 6: Một cơng thay cookie để đăng nhập trái phép .45 Hình 7: Giao diện WebScarab 50 Hình 8: Giao diện FoxyProxy 52 Hình 9: Giao diện ứng dụng để thử nghiệm lỗi SQL Injection 54 Hình 10: Kết truy vấn có giá trị last nam:”Smith” .54 Hình 11: Ứng dụng xảy lỗi SQL Injection 55 Hình 12: Nội dung Email có them định danh phiên 57 Hình 13: Jane kick vào lien kết Goat Hills Financial 57 Hình 14: Màn hình đăng nhập Goat Hills Financial 58 Hình 15: Màn hình đăng nhập name password Goat Hills Financial .58 Hình 16: Màn hình Joe có liên kết đến site Goat Hills Financial .59 Hinh 17: Màn hình Joe kick liên kết đến site Goat Hills Financial .59 Hình 18: URL address 60 Hình 19: Thay “NOVALIDSESSION” “TranQuocThang” 60 Hình 20: Joe đăng nhập thành công .61 MỤC LỤC MỞ ĐẦU CHƯƠNG I NGHIÊN CỨU TỔNG QUAN .5 I Giới thiệu ứng dụng web I.1 Khái niệm .5 I.2 Hoạt động ứng dụng web .6 I.3 Một số nguyên tắc bảo mật ứng dụng web II Ngơn ngữ lập trình PHP .9 II.1 Giới thiệu .9 II.2 Các chế bảo mật PHP 11 III Hệ quản trị sở liệu My SQL 14 III.1 Giới thiệu .15 III.2 Cơ chế bảo mật My SQL 15 IV Kết luận chương 17 CHƯƠNG II KHẮC PHỤC LỖI BẢO MẬT TRÊN PHP .18 I Một số khái niệm thuật ngữ liên quan 18 II Một số lỗi bảo mật Form URL 21 II.1 Phương pháp công thay đổi ngữ nghĩa URL .21 II.2 Phương pháp công file upload .23 II.3 Phương pháp cơng chèn mã lệnh thực thi trình duyệt ( XSS ) 26 II.4 Phương pháp công giả mạo form 28 III Một số lỗi bảo mật với sở liệu câu truy vấn SQL 29 III.1 Phương pháp đánh cắp chứng thực quyền truy cập 29 III.2 Phương pháp chèn câu truy vấn SQL 31 IV Một số lỗi bảo mật với phiên ( Session ) Cookie 34 IV.1 Phương pháp ứng định phiên 34 IV.2 Phương pháp đánh cắp phiên 38 V Một số lỗi bảo mật với chứng thực xác thực 40 V.1 Phương pháp công vét cạn 40 V.2 Phương pháp lấy user name password cookie 44 VI Kết luận chương 49 CHƯƠNG III CÀI ĐẶT THỬ NGHIỆM 50 I Giới thiệu số công cụ 50 I.1 Webscarab 50 I.2 FoxyProxy 52 I.3 WebGoat .53 II Cài đặt thử nghiệm .53 II.1 Kỹ thuật công chèn câu truy vấn SQL ( SQL Injection ) 53 II.2 Kỹ thuật công ấn định phiên 56 III Kết luận chương 61 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 62 TÀI LIỆU THAM KHẢO TÓM TẮT LUẬN VĂN TỐT NGHIỆP SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang MỞ ĐẦU Giới thiệu bối cảnh đề tài: Ngày nay, với phát triển mạnh mẽ Internet, hầu hết cá nhân, tổ chức doanh nghiệp có nhu cầu đăng tải thơng tin lên trang thông tin Web thực giao dịch kinh doanh trực tuyến Vấn đề nảy sinh phạm vi ứng dụng ứng dụng Web ngày mở rộng khả xuất lỗi bị công cao, trở thành đối tượng cho nhiều người công với mục đích khác Cùng với phát triển khơng ngừng Internet dịch vụ Internet, số lượng vụ công Internet tăng theo cấp số nhân Không số lượng công tăng lên nhanh chóng mà phương pháp cơng ngày tinh vi có tổ chức Mặt khác, việc quản trị hệ thống mạng đòi hỏi nhà quản trị hệ thống phải có kiến thức kinh nghiệm, không yếu quản lý tạo điều kiện cho kẻ công khai thác Khi nói đến vấn đề bảo mật, hầu hết chuyên gia bảo mật trọng đến an toàn hệ thống mạng hệ điều hành Nhưng đối tượng quan trọng an tồn bảo mật Internet máy chủ Web (Web server), nơi có số lượng lớn tương tác trực tiếp với người sử dụng Internet xem thông tin, trao đổi liệu, thực giao dịch tài chính, Ngồi ra, vấn đề an toàn bảo mật Web phụ thuộc vào nhiều yếu tố quan trọng khác, mà ngơn ngữ lập trình Web ASP, PHP, có ảnh hưởng không nhỏ Với công cụ tự tìm lỗ hổng giúp nhiều cho nhà lập trình khơng thể ngăn chặn tồn lỗi cơng nghệ Web phát triển nhanh chóng (nhưng chủ yếu trọng đến yếu tố thẩm mĩ, tốc độ, ) nên dẫn đến nhiều khuyết điểm phát sinh Để góp phần ngăn chặn công bảo mật vào ứng dụng web, đồ án tốt nghiếp thực với đề tài “Tìm hiểu số lỗi bảo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP” nhằm tìm hiểu, phân tích lỗ hổng bảo mật, kỹ thuật công đưa phương pháp phòng tránh khắc phục cho ứng dụng web xây dựng ngơn ngữ PHP Mục đích đề tài: Tìm hiểu lý thuyết bảo mật ứng dụng Web Tìm hiểu ngơn ngữ lập trình PHP, hệ quản trị sở liệu MySQL Tìm hiểu số kỹ thuật công phương pháp khắc phục lỗi bảo mật ứng dụng xây dựng với ngôn ngữ PHP Thành công việc cài đặt thử nghiệm số kỹ thuật công bảo mật đưa phương pháp khắc phục Đối tượng phạm vi nghiên cứu: Các chế bảo mật ứng dụng web, ngơn ngữ lập trình PHP hệ quản trị SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang Chương CÀI ĐẶT THỬ NGHIỆM Chương ta cài đặt thử nghiệm số kỹ thuật công giải pháp khắc phục .I Giới thiệu số công cụ Một số kỹ thuật công thử nghiệm ứng dụng WebGoat OWASP trì phát triển Localhost cài đặt máy chủ sử dụng Apache Tomcat sử dụng trình duyệt Firefox Bên cạnh đó, WebScarab sử dụng Proxy để chặn yêu cầu gửi từ trình duyệt đến máy chủ phản hồi từ máy chủ gửi đến cho trình duyệt Foxy Proxy sử dụng để hỗ trợ việc chuyển đổi loại Proxy cài đặt sẵn cho trình duyệt .I.1 Webscarab WebScarab cơng cụ dùng để theo dõi, phân tích hoạt động ứng dụng web sử dụng giao thức HTTP HTTPS giúp ta giải vấn đề khó khăn cho phép chuyên gia bảo mật xác định lỗ hổng ứng dụng WebScarab hoạt động nhiều tảng viết ngơn ngữ Java WebScarab có nhiều chức hoạt động, chức phổ biến WebScarab hoạt động proxy chặn: cho phép xem, sửa đổi yêu cầu tạo trình duyệt trước chúng gửi đến máy chủ xem, sửa đổi phản hồi từ máy chủ trước chúng nhận trình duyệt WebScarab có khả chặn hai giao thức HTTP HTTPS nên ta xem lại yêu cầu phản hồi qua WebScarab Đây cửa sổ giao diện WebScarab Hình 7: Giao diện WebScarab Tính năng: SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 48 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP WebScarab cung cấp số plugin bổ sung chủ yếu nhằm vào chức bảo mật, bao gồm: Fragments: lấy Script kịch ý kiến (comment) HTML từ trang HTML thông qua proxy Proxy: giám sát việc truyền trình duyệt máy chủ web WebScarab proxy giám sát HTTP HTTPS mã hóa cách thực kết nối SSL WebScarab trình duyệt thay kết nối trình duyệt đến máy chủ cho phép dòng mã hóa qua Nhiều plugins khác phát triển phép kiểm soát yêu cầu phản hồi qua proxy Chặn thủ công (Manual Intercept): cho phép người dùng thay đổi yêu cầu phản hồi HTTP, HTTPS trước chúng gửi đến máy chủ trả cho trình duyệt Beanshell: cho phép thực hoạt động phức tạp yêu cầu phản hồi Tất thể Java thực thi Hiển thị trường ẩn (Reveal hidden fields): dễ dàng để sửa trường ẩn chặn yêu cầu sau gửi Plugin thay đổi tất trường ẩn có trang HTML thành trường văn bản, làm cho chúng hiển thị chỉnh sửa Giả lập băng thơng (Bandwidth simulator): cho phép người dùng giả lập mạng chậm để quan sát trang web hoạt động Spider: xác định URL trang web mục tiêu nạp chúng vào lệnh Yêu cầu thủ công (Manual request): Cho phép chỉnh sửa phát lại yêu cầu trước tạo yêu cầu hoàn toàn Phân tích định danh phiên (SessionID analysis): thu thập phân tích số cookie để xác định mức độ ngẫu nhiên khả khơng thể tiên đốn Kịch (Scripted): sử dụng BeanShell (hoặc ngôn ngữ hỗ trợ BSF khác classpath) để viết kịch tạo yêu cầu lấy chúng từ máy chủ Sau đó, kịch thực số phân tích phản hồi Thay đổi tham số (Parameter fuzzer): thực thay tự động giá trị tham số có khả dẫn đến lỗ hổng Cross Site Scripting SQL Injection Tìm kiếm (Search): cho phép dùng biểu thức BeanShell để xác định nội dung hiển thị danh sách So sánh (Compare): tính toán khoảng cách hiệu chỉnh thân phản hồi nội dung giám sát nội dung chọn Khoảng cách hiệu chỉnh "số chỉnh sửa cần thiết để chuyển đổi tài liệu sang dạng khác" Số lần chỉnh sửa đếm cách sử dụng thông báo từ (word tokens) SOAP: Đây plugin phân tích WSDL, trình bày hàm, tham số cần thiết cho phép sửa đổi chúng trước gửi đến máy chủ Phần mở rộng (Extensions): tự động kiểm tra tập tin sai thư mục gốc máy chủ web (ví dụ bak, ~, ) Việc kiểm tra thực cho tập tin SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 49 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP thư mục Phần mở rộng tập tin thư mục chỉnh sửa người dùng XSS/CRLF: plugin phân tích bị động tìm kiếm liệu người dùng tiêu đề thân phản hồi HTTP để xác định lỗi chèn CRLF tiềm (tách phản hồi HTTP) ngăn chặn lỗ hổng cross site scripting .I.2 FoxyProxy FoxyProxy công cụ quản lý proxy tiên tiến, thay hồn tồn cấu hình proxy Firefox Đặc trưng biểu tượng statusbar/toolbar hiển thị proxy sử dụng; proxy sử dụng (hoặc không) với URL tùy ý cách sử dụng ký tự đại diện, biểu thức, danh sách trắng danh sách đen; nhiều proxy thứ tự sử dụng chúng danh sách ưu tiên Hình 8: Giao diện FoxyProxy FoxyProxy có ghi tùy chọn cho tất URL load, gồm có proxy sử dụng, mẫu hợp kiểu,… vơ hiệu hóa tạm thời vĩnh viễn proxy qua lần kích chuột; hỗ trợ “out-of-the-box” cho cấu hình Tor-zero; thông tin trạng thái tùy chọn proxy sử dụng; hỗ trợ Proxy AutoConfig (PAC) cách đầy đủ, với tính PAC khơng có sẵn Firefox;… I.3 WebGoat WebGoat ứng dụng web viết ngôn ngữ Java chứa lỗ hổng bảo mật tạo cho mục đích giảng dạy học bảo mật WebGoat phát triển trì OWASP (The Open Web Application Security Project) Những ứng dụng Webgoat bao gồm: Cross site scripting, SQL Injection, Thread safety SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 50 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP WebGoat thiết kế để tạo môi trường học tập tương tác bảo mật ứng dụng web phát triển để trở thành tảng bảo mật chuẩn WebGoat sử dụng máy chủ Apache Tomcat, cấu hình để chạy localhost dành cho người dùng đơn lẻ .II Cài đặt thử nghiệm II.1 Kỹ thuật công chèn câu truy vấn SQL ( SQL Injection ) a Kịch công Form bảng 11 cho phép người dùng xem số thẻ tín dụng Thực công theo phương pháp SQL Injection để thị tất số thẻ tín dụng người có tên ‘Smith’ Các công SQL injection mối đe dọa nghiêm trọng hướng đến sở liệu trang web Các phương pháp để thực cơng dễ để tìm hiểu thiệt hại gây ảnh hưởng đến tồn hệ thống Để phòng tránh nên thực lọc liệu đầu vào, đặc biệt liệu sử dụng lệnh hệ điều hành, kịch truy vấn sở liệu dạng công SQL Injection bị ngăn chặn phương pháp khác .b Kết thực nghiệm Ở đây, câu truy vấn sử dụng là: SELECT * FROM user_data WHERE last_name = 'Your Name' SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 51 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Hình 9: Giao diện ứng dụng để thử nghiệm lỗi SQL Injection Thử nghiệm với giá trị tên Smith kết hiển thị tất số thẻ tín dụng người có tên Smith Hình 10 sau đây: Hình 10: Kết truy vấn có giá trị last nam:”Smith” SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 52 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Nhưng nhập giá trị tên là: Thang' OR '1'='1 kết hiển thị tất số thẻ tín dụng tất người có sở liệu Hình 11 Hình 11: Ứng dụng xảy lỗi SQL Injection c Phương pháp khắc phục Sử dụng câu truy vấn tham số hóa Viết câu truy vấn sở liệu việc sử dụng câu truy vấn tham số hóa Câu truy vấn loại dễ viết dễ hiểu so với câu truy vấn động Trong câu truy vấn tham số hóa ta phải định nghĩa tất mã SQL trước, sau câu truy vấn xét tham số Kiểu viết code cho phép sở liệu phân biệt mã code liệu dù liệu mà người dùng nhập vào Câu truy vấn tham số hóa đảm bảo kẻ công thay đổi ý định câu truy vấn, lệnh SQL chèn thêm kẻ cơng Do đó, kẻ cơng nhập vào userID Thang' OR '1'='1 truy vấn tham số không dễ bị cơng thay vào tìm kiếm tên người dùng trùng khớp với toàn chuỗi Thang' or '1'='1 Sau câu truy vấn “SELECT * FROM user_data WHERE last_name = ?” mã hóa, tiếp tục thử nghiệm thấy lỗi SQL Injection khắc phục Khi nhập tên Enter your last name: Thang' OR '1'='1 nhận thơng báo “No results matched Try Again” Kết hiển thị ta nhập vào Enter your last name: Smith SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 53 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP II.2 Kỹ thuật công ấn định phiên a Kịch công Một người dùng xác định máy chủ định danh phiên Nếu người dùng đăng nhập cấp quyền (authorized) khơng phải cấp quyền lại (reauthorize) duyệt lại ứng dụng người dùng xác định định danh phiên Trong số ứng dụng định danh phiên cung cấp thơng qua GetRequest Khi đó, ứng dụng dễ bị cơng Một kẻ cơng gửi siêu liên kết đến nạn nhân với định danh phiên chọn Ví dụ gửi email giả mạo trông giống email thức gửi từ quản trị viên ứng dụng Nếu nạn nhân bấm vào liên kết thực đăng nhập nạn nhân cấp quyền định danh phiên mà kẻ công chọn Những kẻ cơng truy cập vào trang với định danh xác nhận nạn nhân Vậy hacker đăng nhập thành công mà không phép .b Kết thực nghiệm Q trình cơng có giai đoạn: Giai đoạn 4: vai trò hacker Joe Giai đoạn 3: vai trò nạn nhân Jane Giai đoạn 1: Joe thực gửi email giả mạo cho Jane trông giống email gửi từ Goat Hills Financials với liên kết có chứa định danh phiên (Session ID) Thay đổi liên kết cách thêm &SID=TranQuocThang vào sau để bao gồm định danh phiên (SID) SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 54 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Hình 12: Nội dung Email có them định danh phiên Giai đoạn 2: nạn nhân Jane nhận email mà Joe gửi kích vào liên kết ‘Goat Hills Financial’ Hình 13: Jane kick vào lien kết Goat Hills Financial SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 55 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Giai đoạn 3: Jane hình đăng nhập Goat Financial Hills, thấy định danh phiên URL Jane thực đăng nhập với username Jane password tarzan Hình 14: Màn hình đăng nhập Goat Hills Financial Hình 15: Màn hình đăng nhập name password Goat Hills Financial SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 56 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Giai đoạn 4: Sau Joe bấm vào liên kết có sẵn đến site Goat Hills Financial, Joe thấy định danh phiên NOVALIDSESSION Hình 16: Màn hình Joe có liên kết đến site Goat Hills Financial Hinh 17: Màn hình Joe kick liên kết đến site Goat Hills Financial SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 57 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Hình 18: URL address Thay đổi chuỗi NOVALIDSESSION định danh phiên có từ đầu (TranQuocThang) kết Joe đăng nhập thành cơng Hình 19: Thay “NOVALIDSESSION” “TranQuocThang” SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 58 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Hình 20: Joe đăng nhập thành cơng c Phương pháp khắc phục Trước hết, ta thấy rõ việc phòng chống kiểu cơng ấn định session ID khơng thuộc trách nhiệm trình chủ Web server Vì thế, ứng dụng cần có biện pháp phòng chống lại kiểu cơng Theo kiểu công này, người dùng đăng nhập vào hệ thống thông qua session ID hacker tạo sẵn thay cho trình chủ tạo mới, để phòng chống ứng dụng phải hủy bỏ session ID cung cấp trình duyệt người dùng đăng nhập tạo session ID người dùng đăng nhập thành công .III Kết luận chương Chương bắt đầu với việc giới thiệu công cụ WebScarab, Foxy Proxy ứng dụng WebGoat sử dụng cho việc cài đặt thử nghiệm kỹ thuật công bảo mật giới thiệu chương trước Tiếp trình bày kết cài đặt thử nghiệm số kỹ thuật công tiêu biểu từ kịch công đến kết thực nghiệm kết thúc với thành công phương pháp khắc phục lỗi KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 59 Tìm hiểu số lỗi báo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP PHP ngôn ngữ lập trình web tiếng sử dụng rộng rãi từ phát sinh nhiều lỗi bảo mật liên quan đến PHP, luận văn với đề tài “Tìm hiểu số lỗi bảo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP” nhằm góp phần ngăn chặn hạn chế lỗ hổng bảo mật đồng thời thu kết sau: Tìm hiểu tổng quan ứng dụng Web, ngơn ngữ lập trình PHP hệ quản trị sở liệu MySQL chế bảo mật chúng Nghiên cứu cách chi tiết kỹ thuật công bảo mật ứng dụng Web xây dựng với ngôn ngữ PHP phương pháp khắc phục cho kiểu cơng từ tìm hiểu lý thuyết đến thành cơng cài đặt thử nghiệm Qua thấy đạt an tồn bảo mật tốt có kết hợp thực nhà quản trị mạng, quản trị hệ thống, nhà thiết kế ứng dụng người sử dụng Hướng phát triển : Bên cạnh kết đạt được, luận văn cần phải nghiên cứu thêm mức độ sâu lý thuyết kỹ thuật cơng dạng Ngồi ra, cần nghiên cứu áp dụng biện pháp bảo mật ứng dụng thương mại điện tử ngày phổ biến phát triển nhanh chóng SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang 60 TÀI LIỆU THAM KHẢO [1] Ban Cơ Yếu Chính Phủ (2004), “Báo cáo đề tài nhánh Nghiên cứu, xây dựng giải pháp bảo mật thông tin thương mại điện tử”, Đề tài nghiên cứu số vấn đề kỹ thuật, công nghệ chủ yếu thương mại điện tử triển khai thử nghiệm mã số KC.01.05 [2] CGI Security, http://www.cgisecurity.com/security-questions.html [3] Foxy Proxy, http://getfoxyproxy.org/ [4] Information Security Forum Limited, https://www.securityforum.org/ [5] PHP Security Consortium, http://phpsec.org/projects/guide/ [6] TechGenix Ltd, Security Forums, http://www.security-forums.com/ [7] The H Security Features, http://www.h-online.com/security/features/ [8] The Open Web Application Security Project, http://www.owasp.org [9] The PHP Group, http://www.php.net/ [10] Thế giới mã nguồn, http://www.thegioimanguon.com/ [11] W3Schools Online Web Tutorials, http://www.w3schools.com [12] Web Development and Design Tutorials, Web / Programing / PHP, http://www.webreference.com/programming/php/ [13] http://www.Google.com SVTH: Trần Quốc Thắng - Lớp 06T1 GVHD: PGS TS Võ Trung Hùng Trang TĨM TẮT LUẬN VĂN TỐT NGHIỆP Đề tài: Tìm hiểu số lỗi bảo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Bối cảnh đời đề tài: Internet nơi xem thông tin, trao đổi liệu, thực giao dịch tài chính, Với phát triển khơng ngừng Internet dịch vụ Internet, số lượng vụ công Internet tăng theo cấp số nhân Không số lượng công tăng lên nhanh chóng mà phương pháp cơng ngày tinh vi có tổ chức.Nên em muốn nghiên cứu tìm hiểu bảo mật web.Mà đề tài em nghiên cứu tìm hiểu lỗi bảo mật phương pháp khắc phục lỗi bảo mật ứng dụng PHP Mục đích đề tài: Tìm hiểu lý thuyết bảo mật ứng dụng Web Tìm hiểu ngơn ngữ lập trình PHP, hệ quản trị sở liệu MySQL Tìm hiểu số kỹ thuật công phương pháp khắc phục lỗi bảo mật ứng dụng xây dựng với ngôn ngữ PHP Thành công việc cài đặt thử nghiệm số kỹ thuật công bảo mật đưa phương pháp khắc phục Nhiệm vụ phải thực hiện: Tìm tài liệu lý thuyết tổng quan ứng dụng web,ngôn ngữ PHP hệ quản trị sở My SQL Tìm hiểu lỗi bảo mật ứng dụng web.Đặc biệt ứng dụng web PHP Thử cài đặt ứng dụng web để tìm hiểu thực hành lỗi bảo mật ứng dụng web PHP.Trong đề tài em dùng WebGoat Kết cần có: Chạy thử nghiệm webgoat để thấy rõ thực hành lỗi bảo mật ứng dụng web Thực tiễn: Em tìm hiễu số lỗi bảo mật ứng dụng web PHP Trên thực tế em nhiều lỗi chưa tìm hiểu hết.Hiện nay,lỗi bảo mật ngày nhiều hơn,”lỗ hỗng”của ứng dụng web ngày nhiều vấn đề nảy sinh phạm vi ứng dụng ứng dụng Web ngày mở rộng khả xuất lỗi bị công cao, trở thành đối tượng cho nhiều người công với mục đích khác