1. Trang chủ
  2. » Công Nghệ Thông Tin

ĐỀ TÀI : NGHIÊN CỨU CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG

72 182 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 2,88 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, E-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 : NGHIÊN CỨU CÁC KỸ THUẬT TẤN CƠNG WEBSITE VÀ CÁC GIẢI PHÁP PHỊNG CHỐNG Mã số : 06T4-019 Ngày bảo vệ : 15-16/06/2011 SINH VIÊN : VÕ ĐỨC KHÁNH LỚP : 06T4 CBHD : TS Huỳnh Công Pháp ĐÀ NẴNG, 06/2011 LỜI CẢM ƠN Tôi chân thành cảm ơn giảng viên TS Huỳnh Công Pháp, người trực tiếp hướng dẫn tơi hồn thành đề tài này, người tận tình hướng dẫn, bảo tơi suốt thời gian thực đề tài Trong thời gian làm việc với Thầy, học hỏi nhiều kiến thức bổ ích mà học tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc Thầy Tôi xin chân thành cảm ơn Khoa Công nghệ Thông tin, trường Đại học Bách Khoa - Đại học Đà Nẵng tạo điều kiện cho thực đề tài Xin gửi lời cảm ơn chân thành đến gia đình, ba mẹ bè bạn ln nguồn động viên to lớn, giúp đỡ tơi vượt qua khó khăn suốt q trình làm việc Mặc dù cố gắng hồn thiện đề tài với tất nỗ lực thân, chắn tránh khỏi thiếu sót Kính mong q Thầy Cơ tận tình bảo Một lần nữa, xin chân thành cảm ơn ln mong nhận đóng góp q báu tất người Đà Nẵng, tháng năm 2011 Võ Đức Khánh 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 TS Huỳnh Công Pháp 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, Võ Đức Khánh NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… MỤC LỤC CƠ SỞ LÝ THUYẾT .9 I Khái niệm thuật ngữ liên quan I.1 Hacker I.2 HTTP Message .9 I.2.1 HTTP Request I.2.2 HTTP Response 10 I.3 Cookie 10 I.4 Session 11 I.5 Proxy 11 II Q trình cơng hacker .11 CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ CÁC GIẢI PHÁP PHÒNG CHỐNG 14 I Denial of service(DoS) 14 I.1 Khái niệm 14 I.2 Mục đích mục tiêu cơng DoS 14 I.2.1 Các mục đích 14 I.2.2 Mục tiêu .15 I.3 Các dạng công 15 I.3.1 Các dạng công DoS .15 I.4 Mạng BOT NET 19 I.4.1 Ý nghĩa mạng BOT 19 I.4.2 Mạng BOT 19 I.4.3 Mạng Botnet .19 I.4.4 Mục đích sử dụng mạng Botnet 20 I.4.5 Các dạng mạng BOT 20 I.4.6 Các bước xây dựng mạng BotNet 21 I.5 Tấn công DDoS 22 I.5.1 Các đặc tính cơng DDoS .23 I.5.2 Tấn công DDoS ngăn chặn hoàn toàn 23 I.5.3 Kẻ công khôn ngoan 23 I.6 Phân loại công DdoS 24 I.7 Tấn công Reflective DNS (reflective - phản chiếu) 25 I.8 DRDoS (Distributed Reflection Denial of Service) 25 I.9 Biện pháp phòng chống 26 II Cross-Site Scripting .27 II.1 Khái niệm XSS 27 II.2 Hoạt động 28 II.3 Cảnh giác với XSS .28 II.4 Cách phát XSS 30 II.5 Tấn công .31 II.6 Tấn công XSS flash 32 II.7 Cách phòng chống XSS 32 III Lỗi tràn nhớ đệm 34 III.1 Khái niệm 34 i III.2 Mô tả kĩ thuật .35 III.2.1 Ví dụ .35 III.2.2 Tràn nhớ đệm stack 35 III.2.3 Chương trình mẫu 36 III.3 Cách khai thác 37 III.3.1 Khai thác lỗi tràn đệm stack 37 III.3.2 Khai thác lỗi tràn đệm heap 37 III.3.3 Cản trở thủ thuật khai thác 38 III.4 Cách phòng chống tràn đệm 38 III.4.1 Lựa chọn ngơn ngữ lập trình 38 III.4.2 Sử dụng thư viện an toàn 39 III.4.3 Chống tràn nhớ đệm stack 39 III.4.4 Bảo vệ không gian thực thi 39 III.4.5 Ngẫu nhiên hóa sơ đồ khơng gian địa .39 III.4.6 Kiểm tra sâu gói tin 40 IV SQL Injection .40 IV.1 Khái niệm 40 IV.2 Phát lỗi .40 IV.3 Các loại công 41 IV.3.1 Truy xuất liệu trái phép .41 IV.3.2 Vượt qua việc chứng thực 42 IV.3.3 Chỉnh sửa database 42 IV.3.4 Tấn công sang mục tiêu khác 43 IV.4 Blind SQL Injection 43 IV.5 Cách phòng chống 46 IV.5.1 Hạn chế bị phát lỗi 46 IV.5.2 Phòng chống từ bên ngồi .46 IV.5.3 Cải thiện liệu nhập vào .46 IV.5.4 Kết luận 47 THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH THỬ NGHIỆM 48 I Giới thiệu 48 I.1 Thiết kế hệ thống .48 I.2 Thiết kế chức .48 I.3 Thiết kế sở liệu 49 I.4 Cài đặt 49 II Kết 50 III Mô kỹ thuật công SQL Injection 53 III.1 Dò lỗi 53 III.2 Tấn công .54 IV Phòng chống SQL Injection .58 TỔNG KẾT 62 I Tổng kết giải pháp phòng chống 62 I.1 Đối với người thiết kế 62 I.2 Đối với người quản trị mạng .62 I.3 Đối với người sử dụng .62 II Kết luận 63 II.1 Thành công 63 II.2 Hạn chế .63 ii Mục lục II.3 iii Hướng phát triển 63 Mục lục iv DANH MỤC HÌNH ẢNH Hình 1: Dạng cơng Smurf sử dụng gói ICMP 16 Hình 2: Tấn cơng SYN 17 Hình 3: Cơ chế thiết lập kết nối trước truyền số liệu .18 Hình 4: Sơ đồ cách hệ thống bị lây nhiễm sử dụng Agobot .22 Hình 5: Tấn cơng DDoS 22 Hình 6: Agent Handler Model 24 Hình 7: Tấn công DDoS dựa tảng IRC 24 Hình 8: Tấn cơng kiểu DRDoS 25 Hình 9: Biểu đồ ca sử dụng cho người dùng 49 Hình 10: Biểu đồ ca sử dụng cho người quản lý 49 Hình 11: Giao diện website 50 Hình 12: Form đăng ký thành viên 51 Hình 13: Form đăng nhập 51 Hình 14: Form liên hệ, đóng góp ý kiến 52 Hình 15: Thông tin website hiển thị với URL 53 Hình 16: Thử với lệnh ORDER BY 54 Hình 17: Thử với lệnh ORDER BY 10 54 Hình 18: Thử với lệnh ORDER BY 55 Hình 19: Kết lệnh Union select 1,2,3,4,5,6 55 Hình 20: Xem phiên MySQL 56 Hình 21: Xem tên sở liệu .56 Hình 22: Xem bảng có MySQL .56 Hình 23: Các cột bảng users 57 Hình 24: Tài khoản mật bảng users 57 Hình 25: Giải mã mật md5 57 Hình 26: Dò lỗi form đăng nhập 58 Hình 27: Kết đăng nhập với tài khoản có tên User .58 Hình 28: Thơng báo phát công 60 Hình 29: Phân loại liệu nhập vào kiểu số 60 Hình 30: Thử lỗi sau lọc liệu 61 Mục lục v DANH MỤC TỪ VIẾT TẮT IP - Internet Protocol DNS - Domain Name System DoS - Denial of Service IRC - Internet Relay Chat ADS - Alternate Data Stream DDoS - Distributed Denial of Service DRDoS - Distributed Reflection Denial of Service XSS - Cross-Site Scripting CSS - Cascading Style Sheet OWASP - The Open Web Application Standard Project NX - No eXecute XD - eXecute Disabled ASLR - Address Space Layout Randomization DPI - Deep Packet Inspection NOP - No-Operation MS.SQL - Microsoft SQL IIS - Internet Information Services Các kỹ thuật công website giải pháp phòng chống Hình 18: Thử với lệnh ORDER BY Từ ta tính số bảng ghi sở liệu Mục đích tìm nơi hiển thị lỗi để từ truy xuất thơng tin muốn lấy Ta dùng lệnh UNION SELECT để lựa chọn tất bảng ghi http://localhost/giftshop/list_products.php?id=9 union select 1,2,3,4,5,6 Hình 19: Kết lệnh Union select 1,2,3,4,5,6 Quan sát kết quả, ta thấy xuất kết khác với câu lệnh ORDER BY Xuất số 3, 6; ta lưu ý điểm để khai thác thông tin Số số ta kết hợp lựa chọn nhiều bảng ghi, kết xuất hiên ghi số số Từ đây, dựa vào vị trí số 6, ta thêm vào câu lệnh để truy xuất thông tin cần thiết Đầu tiên ta xem phiên hệ quản trị sở liệu với lệnh version() Võ Đức Khánh – Lớp 06T4 54 Các kỹ thuật công website giải pháp phòng chống Hình 20: Xem phiên MySQL Ở MySQL 5.0.51b-community-nt, việc xác định phiên MySQL quan trọng Mỗi phiên có điểm khác nên dựa vào việc xác định phiên mà đưa kỹ thuật công SQL Injection phù hợp Bây ta xác định tên sở liệu với lệnh database() Hình 21: Xem tên sở liệu Đối với MySQL phiên 4.x ta lấy tên bảng sở liệu cách đốn tên, MySQL phiên 5.0 trở lên ta dùng sở liệu INFORMATION_SCHEMA Với bảng INFORMATION_SCHEMA.TABLES chứa tên tất bảng có MySQL Hình 22: Xem bảng có MySQL Ta cần ý tới bảng catalogs, products, users bảng khác bảng mặc định MySQL Mục đích ta làm tìm tài khoản người dùng có sở liệu nên ta xem xét bảng users Dùng bảng INFORMATION_SCHEMA.COLUMNS chứa tên cột bảng Võ Đức Khánh – Lớp 06T4 55 Các kỹ thuật cơng website giải pháp phòng chống Hình 23: Các cột bảng users Để xem nội dung cột tài khoản mật khẩu, dùng lệnh group_concat() kết hợp với lệnh where để hiển thị tất bảng ghi Hình 24: Tài khoản mật bảng users Trong câu lệnh group_concat(username,0x3a,password) 0x3a dấu hai chấm (:) bảng mã ASCII Mục đích để ta phân biệt tên tài khoản mật Trong kết trên, ta thấy mật dãy gồm 32 ký tự, mật bị mã hóa md5 Chúng ta dùng vài cơng cụ để giải mã, tìm kiếm search engine Google Đối với chuỗi md5 tài khoản khanhvo, ta tìm kiếm mật dạng clear-text 123456 Hình 25: Giải mã mật md5 Đối với tài khoản khác ta làm tương tự Từ với tài khoản mật tay, ta đăng nhập vào website Tiếp tục tìm tài khoản quản trị, ta đăng nhập vào phần quản trị hệ thống trang web Sau đó, tùy động cơ, mục đích người mà làm việc khác Võ Đức Khánh – Lớp 06T4 56 Các kỹ thuật công website giải pháp phòng chống Ta thử dò lỗi form đăng nhập với cú pháp: a’ or 1=1 Sau dò lỗi ta phát với cú pháp sau đăng nhập được, mật Hình 26: Dò lỗi form đăng nhập Hình 27: Kết đăng nhập với tài khoản có tên User Vì hệ quản trị sở liệu MySQL nên thực lúc nhiều câu lệnh truy vấn, nên việc drop table form đăng nhập khơng .IV Phòng chống SQL Injection Che dấu lỗi cách thêm @ trước câu lệnh truy vấn, giúp ngăn chặn thông báo lỗi từ máy chủ Tạo lọc để lọc ký từ khóa khơng mong muốn câu lệnh SQL, liệu người dùng phải có ràng buộc định Ví dụ, đoạn mã sau đây, giúp lọc liệu nhập vào người dùng: Võ Đức Khánh – Lớp 06T4 57 Các kỹ thuật cơng website giải pháp phòng chống Lúc hacker thực câu truy vấn SQL Injection khơng thực câu truy vấn SQL mà thông báo phát công Võ Đức Khánh – Lớp 06T4 58 Các kỹ thuật công website giải pháp phòng chống Hình 28: Thơng báo phát công Nhưng cách tốt phân loại liệu nhập vào Vì câu lệnh SQL này, ứng dụng nhận liệu kiểu số (số id), nên ta bắt buộc liệu phải kiểu số (interger) không chấp nhận kiểu liệu khác Trong PHP dùng hàm intval() is_numeric() để kiểm tra Kết việc kiểm tra liệu trên: Hình 29: Phân loại liệu nhập vào kiểu số Đối với dạng form đăng nhập hay đăng ký, áp dụng lọc sử dụng hàm có sẵn php để lọc liệu người dùng nhập vào Ở áp dụng hàm addslashes() mysqli_real_escape_string () để lọc liệu người dùng nhập vào

Ngày đăng: 24/03/2019, 00:59

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w