Tham khảo tài liệu ''sổ tay tấn công và phòng thủ ứng dụng web'', công nghệ thông tin, an ninh - bảo mật phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
[E-book] Tan cong va phong thu ung dung WEB LỜI MỞ ĐẦU Cùng với phát triển công nghệ thơng tin, cơng nghệ mạng máy tính phát triển mạng internet ngày phát triển đa dạng phong phú Các dịch vụ mạng thâm nhập vào hầu hết lĩnh vực đời sống xã hội Các thông tin Internet đa dạng nội dung hình thức, có nhiều thông tin cần bảo mật cao tính kinh tế, tính xác tính tin cậy Bên cạnh đó, hình thức phá hoại mạng trở nên tinh vi phức tạp Do hệ thống, nhiệm vụ bảo mật đặt cho người quản trị mạng quan trọng cần thiết Xuất phát từ thực tế đó, tìm hiểu cách công phổ biến phịng chống loại cơng Chính vậy, thông qua việc nghiên cứu số phương pháp công cách bảo mật lọa công này, mong muốn góp phần nhỏ vào việc nghiên cứu tìm hiểu vấn đề an ninh mạng giúp cho việc học tập nghiên cứu Lý chọn đề tài Trong năm gần đây, Việt Nam ngày phát triển mặt công nghệ thông tin Đặc biệt ứng dụng web, người nghe làm việc ứng dụng web Website trở nên phổ biến trở thành phần quan trọng người doanh nghiệp, công ty Bên cạnh lý an tồn bảo mật cho ứng dụng web vấn đề nan giải người.Vì tìm hiểu ứng dụng web cách thức công bảo mật web Mục tiêu Giúp hiểu ứng dụng website, mối đe dọa vấn đề an tồn thơng tin làm việc ứng dụng web hàng ngày, hiểu rõ kỹ thuật công bảo mật web Phạm vi Tìm hiểu kỹ thuật công phổ biến SQL Injection, Denial Of Service, Local Attack,…Cách bảo mật, phòng thủ loại công phổ biến cách tổng quan [E-book] Tan cong va phong thu ung dung WEB MỤC LỤC CHƯƠNG TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT THÔNG DỤNG 1.1 Mô tả Website cách hoạt động 1.2 Các dịch vụ ứng dụng web CHƯƠNG CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN 2.1 LOCAL ATTACK 2.1.1 Tìm hiểu Local Attack 2.1.2 Cách công Local Attack 2.1.3 Cách bảo mật cho Local Attack 10 2.1.4 Các công cụ hỗ trợ 14 2.2 Tấn công từ chối dịch vụ - (Denial Of Service) 15 2.2.1 DOS(Denial Of Service) 15 2.2.2 Ddos(Distributed Denial of Service) 18 2.2.3 Tấn công từ chối dịch vụ phản xạ nhiều vùng DRDoS (Distributed Reflection Denial of Service) 30 2.3 SQL Injection 32 2.3.1 Tấn công SQL injection 32 2.3.2.Cách Phòng Tránh SQL Injection 41 2.4 Cross Site Scripting (XSS) 46 2.4.1 Tấn công XSS 46 2.4.2 Phòng chống 49 CHƯƠNG 50 DEMO, ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 50 Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB 3.1 Demo 50 3.2 Kết luận 51 3.2.1 Các vấn đề đạt 51 3.2.2 Hạn chế 52 3.2.3 Hướng phát triển đề tài 52 NHẬN XÉT HƯỚNG DẪN 54 NHẬN XÉT PHẢN BIỆN 55 Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB CHƯƠNG TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT THƠNG DỤNG 1.1 Mơ tả Website cách hoạt động Website “trang web” mạng Internet, nơi giới thiệu thơng tin, hình ảnh doanh nghiệp sản phẩm, dịch vụ doanh nghiệp (hay giới thiệu thơng tin gì) để khách hàng truy cập nơi đâu, lúc Website tập hợp nhiều trang [web page] Khi doanh nghiệp xây dựng website nghĩa xây dựng nhiều trang thông tin, catalog sản phẩm, dịch vụ Để tạo nên website cần phải có yếu tố bản: Cần phải có tên miền (domain) Nơi lưu trữ website (hosting) Nội dung trang thông tin [web page] Một số thuật ngữ bản: Website động (Dynamic website) website có sở liệu, cung cấp công cụ quản lý website (Admin Tool) Đặc điểm website động tính linh hoạt cập nhật thơng tin thường xun, quản lý thành phần website dễ dàng Loại website thường viết ngơn ngữ lập trình PHP, Asp.net, JSP, Perl, , quản trị Cơ sở liệu SQL MySQL Website tĩnh lập trình ngơn ngữ HTML theo trang brochure, khơng có sở liệu khơng có cơng cụ quản lý thông tin website Thông thường website tĩnh thiết kế phần mềm FrontPage, Dreamwaver, Đặc điểm website tĩnh thay đổi nội dung, thay đổi nội dung thường liên quan đến thay đổi văn kèm thể nội dung Hiện nay, hầu hết doanh nghiệp sử dụng website động, hệ công nghệ website người biết đến web 2.0 - Tên miền (domain): Tên miền địa website, internet tồn địa (tức tồn tên miền) Có loại tên miền: - Tên miền Quốc tế: tên miền có dạng com; net; org; biz; name Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB - Tên miền Việt Nam: tên miền có dạng vn; com.vn; net.vn; org.vn; gov.vn; - Lưu trữ website: Dữ liệu thông tin website phải lưu trữ máy tính (máy chủ - server) ln hoạt động kết nối với mạng Internet Một server lưu trữ nhiều website, server bị cố chẳng hạn tắt thời điểm khơng truy cập website lưu trữ server thời điểm bị cố - Tùy theo nhu cầu lưu trữ thơng tin mà doanh nghiệp thuê dung lượng thích hợp cho website [thuê dung lượng host] - Dung lượng host: Là nơi để lưu sở trữ liệu website (hình ảnh, thơng tin …), đơn vị đo dung lượng thường Mb Gb - Băng thông hay dung lượng đường truyền truyền: Là tổng số Mb liệu tải lên máy chủ tải từ máy chủ (download, upload) nơi đặt website, đơn vị đo thông thường Mb/Tháng 1.2 Các dịch vụ ứng dụng web Với công nghệ nay, website không đơn giản trang tin cung cấp tin đơn giản Những ứng dụng viết web không gọi phần website nữa, chúng gọi phần mềm viết web Có nhiều phần mềm chạy web Google word (xử lý văn bản), Google spreadsheets (xử lý bảng tính), Email ,… Một số ưu điểm phần mềm hay ứng dụng chạy web: Mọi người có trình duyệt bạn cần trình duyệt để chạy phần mềm Phần mềm luôn cập nhật chúng chạy server Ln sẵn sàng 24/7 Dễ dàng backup liệu thường xuyên Có thể truy cập lúc, nơi, miễn bạn có mạng Chi phí triển khai cực rẻ so với phần mềm chạy desktop Hãy hình dung bạn có phần mềm quản lý bán hàng hay quản lý công việc công ty Không phải lúc bạn công ty, với phần mềm viết web, bạn vào kiểm tra, điều hành đâu, chí bạn cần điện thoại chạy trình duyệt IPhone mà khơng cần đến máy tính Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB CHƯƠNG CÁC LOẠI TẤN CÔNG VÀ BẢO MẬT ỨNG DỤNG WEB PHỔ BIẾN 2.1 LOCAL ATTACK 2.1.1 Tìm hiểu Local Attack - Local attack kiểu hack phổ biến không khuyên dùng.Đối web server thông thường bạn đăng ký tài khoản server bạn cấp tài khoản server thư mục để quản lý site Ví dụ : tenserver/tentaikhoancuaban Và có tài khoản người dùng khác tương tự : tenserver/taikhoan1.Giả sử taikhoan1 bị hacker chiếm hacker dùng thủ thuật,các đoạn scrip,các đoạn mã lệnh để truy cập sang thư mục chứa site bạn tenserver/taikhoancuaban Và theo cách hacker cơng sang site người dùng khác lấy thông tin admin,database,các thông tin bảo mật khác chèn đoạn mã độc vào trang index site bạn Dạng công gọi Local Attack - Thông thường nhất, Local Attack sử dụng để đọc lấy thơng tin config từ victim, sau dựa vào thơng tin config mục đích hacker để phá hoại website 2.1.2 Cách công Local Attack - Để thực công Local Attack, tùy theo cách thức hacker mà có cách Local khác Thơng thường hacker thường sử dụng đoạn lệnh để công vào database 2.1.2.1 Chuẩn bị - Trước tiên phải có PHP/ASP/CGI backdoor server Backdoor có nhiều loại khác phổ biến phpRemoteView (thường gọi remview) R57Shell, CGITelnet,C99,…Tiến hành upload công cụ lên, thường shell R57,C99,… - Upload cơng cụ lên host (Thường sử dụng shell R57,C99, mạnh dễ sử dụng) - Để có host có nhiều cách: Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB + Mua host(cách hacker sử dụng nhiều lý lý tốn tiền mà up shell lên bị admin server phát bị del host, Với cách sau Local xong nên xóa shell + Hack trang bị lỗi upload shell lên (thường hacker sử dụng SQL Injection để hack trang web chiếm tài khoản admin trang web upload shell lên)hoặc khai thác lỗi inclusion + Search backdoor (Vào google.com search keyword: , r57Shell ) Vói cách hầu hết shell hacker sử dụng chưa bị xóa, nên upload cho shell khác 2.1.2.2.Tiến hành Attack - Sau chuản bị xong, tức upload shell lên server Chúng ta bắt đầu tìm website server mà bạn up shell lên, thông thường hacker thường sử dụng Reverse Ip domain mà hacker upload shell để xem website server - Sau tìm danh sách website ,lần lượt check xem site bị lỗi local sang - Các lệnh thường dùng shell để Local Attack Xem tên domain host ls -la /etc/valiases cd /etc/vdomainaliases;ls –lia - Trường hợp đặc biệt xem user nằm host ta thêm && vào cd /etc/vdomainaliases && ls –lia - Muốn biết tên user dùng lệnh : cat /etc/passwd/ Hoặc less /etc/passwd + local sang victim, tức local sang site khác ví dụ shell : /home/abcd/public_html/ local sang sau : Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB dir home/tên user cần local/public_html - Muốn biết tên user cần local sang sử dụng Reverse Ip để lấy danh sách user server.Muốn biết user có tồn hay khơng mở trình duyệt web lên đánh đoạn : Ip server/~ tên user (Ví dụ : 203.166.222.121/~doanchuyennganh) Nếu trình duyệt lên trang index website tức user tồn +Xem nội dung file cat /home/tên user cần local/public_html/index.php Hoặc Chúng ta muốn xem config forum dùng ln -s /home/tên user cần local/public_html/forum/includes/config.php doanchuyennganh.txt Với doanchuyennganh.txt file tạo host để xem file người khác ! Nếu không sử dụng lệnh tức server disable chức Thêm số lệnh shell linux : - pwd: đưa ngồi hình thư mục hoạt động (ví dụ: /etc/ssh) - cd: thay đổi thư mục (ví dụ: cd – cấp thư mục tại; cd vidu – vào thư mục /vidu) - ls: đưa danh sách nội dung thư mục - mkdir: tạo thư mục (mkdir tên_thumuc) - touch: tạo file (touch ten_file) - rmdir: bỏ thư mục (rmdir ten_thumuc) - cp: copy file thư mục (cp file_nguồn file_đích) - mv: di chuyển file thư mục; dùng để đặt lại tên file thư mục (mv vị_trí_cũ vị_trí_mới mv tên_cũ tên_mới) - rm: loại bỏ file (rm tên_file) - Để tìm kiếm file, bạn dùng: - find : dùng cho tên file - grep : để tìm nội dung file Để xem file, bạn dùng: - more : hiển thị file theo trang Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB - cat : hiển thị tất file - Nếu muốn kết nối tới host từ xa, sử dụng lệnh ssh Cú pháp ssh Quản lý hệ thống: - ps: hiển thị chương trình thời chạy (rất hữu ích: ps nhìn tồn tất chương trình) - Trong danh sách đưa thực lệnh ps, bạn thấy có số PID (Process identification - nhân dạng tiến trình) Con số hỏi đến muốn ngừng dịch vụ hay ứng dụng, dùng lệnh kill - top: hoạt động giống Task Manager Windows Nó đưa thơng tin tất tài nguyên hệ thống, tiến trình chạy, tốc độ load trung bình… Lệnh top -d thiết lập khoảng thời gian làm tươi lại hệ thống Bạn đặt giá trị nào, từ (tức 10 mili giây) tới 100 (tức 100 giây) chí lớn - uptime: thể thời gian hệ thống tốc độ load trung bình khoảng thời gian đó, trước phút 15 phút Thông thường tốc độ load trung bình tính tốn theo phần trăm tài ngun hệ thống (vi xử lý, RAM, ổ cứng vào/ra, tốc độ load mạng) dùng thời điểm Nếu tốc độ tính tốn 0.37, tức có 37% tài nguyên sử dụng Giá trị lớn 2.35 nghĩa hệ thống phải đợi số liệu, tính tốn nhanh 235% mà khơng gặp phải vấn đề Nhưng phân phối khác chút - free: hiển thị thông tin nhớ hệ thống - ifconfig : để xem thông tin chi tiết giao diện mạng; thơng thường giao diện mạng ethernet có tên eth() Bạn cài đặt thiết lập mạng địa IP cách dùng lệnh (xem man ifconfig) Nếu có điều chưa xác, bạn stop start (tức ngừng khởi_động) giao diện cách dùng lệnh ifconfig up/down - passwd: cho phép bạn thay đổi mật (passwd người_dùng_sở_hữu_mật_khẩu tên người dùng khác bạn đăng nhập hệ thống với vai trò root) - useradd: cho phép bạn thêm người dùng (xem man useradd) Dù phân phối nào, bạn dùng phím TAB để tự động hoàn chỉnh lệnh tên file Điều hữu ích bạn quen với lệnh Bạn sử dụng Tav4 Bkav Forum Trang [E-book] Tan cong va phong thu ung dung WEB phím lên, xuống để cuộn xem lệnh nhập Bạn dùng lệnh đa dịng dịng Ví dụ như, muốn tạo ba thư mục dịng, cú pháp là: mkdir thư_mục_1 ; mkdir thư_mục_2 ; mkdir thư_mục_3 Một điều thú vị khác lệnh dạng pipe Bạn xuất lệnh thơng qua lệnh khác Ví dụ: man mkdir | tail đưa thơng tin dịng cuối trang xem "thủ cơng" lệnh mkdir Nếu lúc yêu cầu phải đăng nhập với tài khoản gốc (tức "siêu" admin hệ thống), bạn đăng nhập tạm thời cách dùng lệnh su Tham số -1 (su-1) dùng để thay đổi thư mục chủ cho lệnh dùng Chú ý bạn nhắc mật Để hay đóng : gõ exit logout 2.1.3 Cách bảo mật cho Local Attack Để hạn chế Local Attack, nên Chmod filemanager ,di chuyển file config.php sửa đổi file htaccess thường xuyên backup liệu -Chmod File Manager: + CHMOD thư mục Public_html thành 710 thay 750 mặc định việc giúp bạn bảo vệ cấu trúc Website + CHMOD tiếp thư mục (diendan (http://diendan.doanchuyennganh.com), CHMOD thư mục diendan (http://diendan.doanchuyennganh.com) thành 701, CHMOD tiếp thư mục thư mục diendan (http://diendan.doanchuyennganh.com) thành 701 + CHMOD toàn file thành 404 Với CHMOD chắn run shell thông báo lỗi: Not Acceptable An appropriate representation of the requested resource /test.php could not be found on this server Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request Attacker không view Tav4 Bkav Forum Trang 10 [E-book] Tan cong va phong thu ung dung WEB Ví dụ b.2: Giả sử username password bị giớihạn tối đa 16 kí tự.Nhập: Username: aaaaaaaaaaaaaaa’ Password :‘; shutdown-Ứng dụng thay dấu nháy đơn hai dấu nháy đơn chiều dài chuỗi bị giới hạn 16 kí tự nên dấu nháy đơn vừa thêm bị xoá Câu lệnh SQL sau: Select * from users where username=’aaaaaaaaaaaaaaa’’ and password=’’’; shutdown—‘ kết username câu lệnh có giá trị là: aaaaaaaaaaaaaaa’ and password=’ iiiii.3 Tránh kiểm sốt: - SQL server có giao thức kiểm soát chặt chẽ họ hàm sp_traceXXX, cho phép ghi nhân nhiều kiện xảy sở liệu Đặc biệt kiện T-SQL, ghi nhận lại tất câu lệnh SQL thực Server Nếu chế độ kiểm sốt bật tất câu truy vấn SQL hacker bị ghi nhận nhờ mà người quản trị kiểm sốt xảy nhanh chóng tìm giải pháp Nhưng có cách để chống lại điều này, cách thêm dịng “sp_password” vào câu lệnh T-SQL, gặp chuỗi việc kiểm tra ghi nhậnnhư sau: ‘sp_password’ was found in the text of this event The text has benn replaced with this comment for security reasons “sp_password” xuất phần thích Vì để dấu tất câu truy vấn công, cần đơn giản thêm sp_password vào sau ‘ ’ sau: 2.3.2.Cách Phòng Tránh SQL Injection - Như vậy, thấy lỗi SQL injection khai thác bất cẩn lập trình viên phát triển ứng dụng web xử lí liệu nhập vào để xây dựng câu lệnh SQL Tác hại từ lỗi SQL injection tùy thuộc vào mơi trường cách cấu hình hệ thống Nếu ứng dụng sử dụng quyền dbo (quyền người sở hữu sở liệu owner) thao tác liệu, xóa tồn bảng liệu, tạo bảng Tav4 Bkav Forum Trang 41 [E-book] Tan cong va phong thu ung dung WEB liệu mới, … Nếu ứng dụng sử dụng quyền sa (quyền quản trị hệ thống), điều khiển tồn hệ quản trị sở liệu với quyền hạn rộng lớn tạo tài khoản người dùng bất hợp pháp để điều khiển hệ thống bạn • Trong hầu hết trình duyệt, kí tự nên mã hố địa URL trước sử dụng • Việc công theo SQL Injection dựa vào câu thông báo lỗi việc phịng chống hay không cho hiển thị thông điệp lỗi cho người dùng cách thay lỗi thông báo trang người phát triển thiết kế lỗi xảy ứng dụng • Kiểm tra kĩ giá trị nhập vào người dùng, thay kí tự ‘ ; v v Hãy loại bỏ kí tự meta “',",/,\,;“ kí tự extend NULL, CR, LF, string nhận từ: o liệu nhập người dùng đệ trình o tham số từ URL o giá trị từ cookie • Đối với giá trị numeric, chuyển sang integer trước thực câu truy vấnSQL, dùng ISNUMERIC để chắn số integer • Dùng thuật tốn để mã hố liệu i Kiểm tra liệu - Kiểm tra tính đắn liệu vấn đề phức tạp thường chưa quan tâm mức ứng dụng Khuynh hướng việc kiểm tra tính đắn liệu khơng phải cần thêm số chức vào ứng dụng, mà phải kiểm tra cách tổng quát nhanh chóng để đạt mục đích - Những tóm tắt sau bàn việc kiểm tra tính đắn liệu, với ví dụ mẫu để minh hoạ cho vấn đề Có ba giải pháp tiếp cận vấn đề này: 1) Cố gắng kiểm tra chỉnh sửa để làm cho liệu hợp lệ 2) Loại bỏ liệu bất hợp lệ 3) Chỉ chấp nhận liệu hợp lệ • Giải pháp 1: khó thực Tav4 Bkav Forum Trang 42 [E-book] Tan cong va phong thu ung dung WEB - Thứ nhất, người lập trình khơng cần thiết phải biết tất liệu bất hợp lệ, dạng liệu bất hợplệ đa dạng - Thứ hai, vấn đề trường hợp bị công tầng (second-oder SQL injection) việc lấy liệu từ hệ thống • Giải pháp 2: bị vơ hiệu trường hợp giải pháp : - Dữ liệu bất hợp lệ luôn thay đổi với việc phát triển kiểu công • Giải pháp 3: tốt hai giải pháp kia, gặp số hạn chế cài đặt - Cách bảo mật tốt kết hợp giải pháp Một ví dụ cho cần thiết kết hợp 2-3 dấu nối họ tên “Quentin Bassington-Bassington” phải cho phép dấu gạch ngang định nghĩa liệu hợp lệ, chuỗi kí tự “ “ chuỗi kí tự đặc biệt SQL server - Ví dụ có lọc để : + Lọc bỏ liệu bất hợp lệ ‘ ‘,’select’ ‘union’ + Một hàm kiểm sốt để loại bỏ dấu nháy đơn đối phó sau uni’on se’lect @@version-‘- Một số cách cài đặt chức kiểm tra liệu • Cách 1: Từ chối liệu bất hợp lệ function validate_string( input ) known_bad = array("select","insert", "update", "delete", "drop"," ", "'" ) validate_string = true for i = lbound( known_bad ) to ubound( known_bad ) if ( instr( 1, input, known_bad(i), vbtextcompare ) ) then validate_string = false exit function end if next end function Tav4 Bkav Forum Trang 43 [E-book] Tan cong va phong thu ung dung WEB • Cách 2: Thay dấu nháy đơn: function escape( input ) input = replace(input, "'", "''") escape = input end function • Cách 3: Chỉ chấp nhận liệu hợp lệ function validatepassword( input ) good_password_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123 456789" validatepassword = true for i = to len( input ) c = mid( input, i, ) if ( InStr( good_password_chars, c ) = ) then validatepassword = false exit function end if next end function ii Khoá chặt SQL Server (SQL Server Lockdown) Đây danh sách công việc cần làm để bảo vệ SQL server: • Xác định phương pháp kết nối đến server: o Dùng tiện ích Network Utility để kiểm tra có thư viện mạng dùng hoat động • Kiểm tra tất tài khoản có SQL Server o Chỉ tạo tài khoản có quyền thấp cho ứng dụng o Loại bỏ tài khoản không cần thiết Tav4 Bkav Forum Trang 44 [E-book] Tan cong va phong thu ung dung WEB o Đảm bảo tất tài khoản có mật hợp lệ, … • Kiểm tra đối tượng tồn o Nhiều extended stored procedure xố bỏ cách an tồn Nếu điều thực hiện, nên xem xét việc loại bỏ tập tin dll chứa mã extended stored procedure o Xoá bỏ tất sở liệu mẫu “northwind” “pubs” o Xóa stored procedure khơng dùng như: master xp_cmdshell, xp_startmail, xp_sendmail, sp_makewebtask • Kiểm tra tài khoản truy xuất đến đối tượng o Đối với tài khoản ứng dụng dùng để truy xuất sở liệu cấp quyền hạn cần thiết tối thiểu để truy xuất đến đối tượng cần dùng Kiểm tra lớp sửa chữa server o Có số cách công “buffer overflow”, “format string” thường ý đến lớp bảo vệ • Kiểm tra phiên làm việc server • Thay đổi "Startup chạy SQL Server" mức người dùng quyền hạn thấp SQL Server Security - Nhận xét: + Qua phần tìm hiểu SQL Injection,càng thấy việc kiểm tra liệu trước xử lý cần thiết + Ứng dụng ngồi việckiểm tra tính đắn liệu, cần mã hóa liệu bên sở liệu không cho xuất trang Web lỗi, báo nội dung lỗi cú pháp SQL để hacker thu thập thông tin sở liệu - Song song cơng việc người quản trị mạng iii Thiết lập cấu hình an tồn cho hệ quản trị sở liệu - Cần có chế kiểm sốt chặt chẽ giới hạn quyền xử lí liệu đến tài khoản người dùng mà ứng dụng web sử dụng Các ứng dụng thông thường nên tránh dùng đến quyền dbo hay sa Quyền bị hạn chế, thiệt hại Ngoài để tránh nguy từ SQL Injection attack, nên ý loại bỏ thơng tin kĩ thuật chứa thông điệp chuyển xuống cho người dùng ứng dụng có Tav4 Bkav Forum Trang 45 [E-book] Tan cong va phong thu ung dung WEB lỗi Các thông báo lỗi thông thường tiết lộ chi tiết kĩ thuật cho phép kẻ công biết điểm yếu hệ thống 2.4 Cross Site Scripting (XSS) 2.4.1 Tấn công XSS - Cross-Site Scripting (XSS) kĩ thuật công phổ biến hiên nay, đồng thời vấn đề bảo mật quan trọng nhà phát triển web người sử dụng web Bất kì website cho phép người sử dụng đăng thơng tin mà khơng có kiểm tra chặt chẽ đoạn mã nguy hiểm tiềm ẩn lỗi XSS - Cross-Site Scripting hay cịn gọi tắt XSS (thay gọi tắt CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet HTML) kĩ thuật công cách chèn vào website động (ASP, PHP, CGI, JSP ) thẻ HTML hay đoạn mã script nguy hiểm gây nguy hại cho người sử dụng khác Trong đó, đoạn mã nguy hiểm đựơc chèn vào hầu hết viết Client-Site Script JavaScript, JScript, DHTML thẻ HTML.Kĩ thuật công XSS nhanh chóng trở thành lỗi phổ biến Web Applications mối đe doạ chúng người sử dụng ngày lớn Người chiến thắng thi eWeek OpenHack 2002 người tìm XSS Phải mối nguy hiểm từ XSS ngày người ý 2.4.1.1 Hoạt động XSS: - Về XSS SQL Injection hay Source Injection, yêu cầu (request) gửi từ máy client tới server nhằm chèn vào thơng tin vượt q tầm kiểm sốt server Nó request gửi từ form liệu URL http://www.example.com/search.cgi?query=alert('XSS was found !'); - Và trình duyệt bạn lên thông báo "XSS was found !" Các đoạn mã thẻ script không bị giới hạn chúng hồn tồn thay file nguồn server khác thơng qua thuộc tính src thẻ script Cũng lẽ mà chưa thể lường hết độ nguy hiểm lỗi XSS Tav4 Bkav Forum Trang 46 [E-book] Tan cong va phong thu ung dung WEB - Nhưng kĩ thuật cơng khác làm thay đổi liệu nguồn web server (mã nguồn, cấu trúc, sở liệu) XSS gây tổn hại website phía client mà nạn nhân trực tiếp người khách duyệt site Tất nhiên đơi hacker sử dụng kĩ thuật đề deface website cơng vào bề mặt website Thật vậy, XSS Client-Side Script, đoạn mã chạy trình duyệt phía client XSS khơng làm ảnh hưởng đến hệ thống website nằm server Mục tiêu công XSS khơng khác người sử dụng khác website, họ vơ tình vào trang có chứa đoạn mã nguy hiểm hacker để lại họ bị chuyển tới website khác, đặt lại homepage, hay nặng mật khẩu, cookie chí máy tính bạn bị cài loại virus, backdoor, worm 2.4.1.2 Cách công i Scan lỗ hỗng XSS cua ứng dụng web - Cách 1: Sử dụng nhiều chương trình dị qt lỗi ứng dụng web, ví dụ chương trình Web Vulnerability Scanner để dị qt lỗi XSS - Cách 2: Thực bước: • Bước 1: Mở website cần kiểm tra • Bước 2: Xác định chỗ (phần) cần kiểm tra XSS Site có phần: Search, error message, 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 Ví dụ nhập vào chuỗi ‘XSS’ • Bước 3: Xác minh khả site có bị lỗi XSS hay khơng cách xem thơng tin trả Ví dụ thấy này: ‘Khơng tìm thấy XSS…’ , ‘Tài khoản XSS khơng xác’, ‘Đăng nhập với XSS khơng thành cơng’… khả chỗ bị dính XSS cao • Bước 4: Khi xác định chỗ có khả bị dính lỗi XSS chèn đoạn code vào để thử tiếp, ví dụ sau: Chèn đoạn code này: < script>alert('XSS')< /script> vào ô bị lỗi nhấn nút Login, nhận popup có chữ ‘XSS’ 100% bị dính XSS Nhưng xin ý , có trường hợp website bị dính XSS Tav4 Bkav Forum Trang 47 [E-book] Tan cong va phong thu ung dung WEB khơng xuất popup buộc lịng bạn phải VIEW SOURCES (mổ bụng) để xem Khi view sources nhớ kiếm dòng < script>alert('XSS)< /script> , có hết chạy , XSS Gọi http://doannguyennganh.com/index.php site bị dính lỗi XSS ta tìm nơi bị lỗi : http://doannguyennganh.com/index.php?page==5 nên tơi dễ dàng khai thác lỗi thơng qua information_shema.tables mà khơng cần phải đốn table Hình 13 Thơng tin table lấy - Bỏ qua table không liên quan ta lấy table sau: khuyenmai, lienhe, loaispcon, online, sanpham, tbl_gioithieu, tbl_lienhe, tbl_lienket, tbl_tintuc, thanhtoan, tintuc, user - Sau tơi tiến hành lấy thơng tin column data kết hình 14 Tav4 Bkav Forum Trang 50 [E-book] Tan cong va phong thu ung dung WEB Hình 14 Dữ liệu ta khai thác dạng mã hóa - Theo hình 14 liệu lấy dạng mã hóa Việc khai thác SQL Injection đến cịn bước tìm đường dẫn đăng nhập quản trị mật nằm dạng mã hóa ta cần phải tiến hành giải mã 3.2 Kết luận 3.2.1 Các vấn đề đạt - Theo yêu cầu đặt ban đầu thời điểm tại, đồ án đạt nội dung sau: • Tìm hiểu kĩ thuật công ứng dụng Web bao gồm kĩ thuật o Chèn mã lệnh thực thi trình khách Cross-site Scripting o Chèn câu truy vấn SQL Tấn công SQL Injection nâng cao o Tấn công Local Acttack o Từ chối dịch vụ • Các biện pháp bảo mật từ kết hợp nhà quản trị mạng, nhà thiết kế ứng dụng Web người dùng o Kiểm tra trang Web có khả bị công kĩ thuật chèn câu lệnh SQL, thay đổi tham số hay không Tav4 Bkav Forum Trang 51 [E-book] Tan cong va phong thu ung dung WEB o Có thể phịng chống lỗi công thông dụng nay, vấn đề tìm hiểu 3.2.2 Hạn chế Trong trình làm đồ án có nhiều tài liệu tơi tìm kiếm có mục đích giống song lại có phương pháp khác hồn tồn.Tơi cố gắng tìm hiểu thêm chúng khơng khỏi có nhiều sai sót 3.2.3 Hướng phát triển đề tài Trong phạm vi đồ án chuyên ngành, đạt yêu cầu đặt Bản thân cá nhân em xin đề xuất hướng phát triển đồ án mở rộng cố gắng phát triển thêm nội dung sau: • Tìm hiểu thêm kĩ thuật cơng để đưa phương pháp bảo mật ứng dụng Web mức độ sâu • Tìm hiểu vấn đề bảo mật sâu hơn, không dừng mức độ ứng dụng Web mà phát triển vần đề bảo mật hệ thống mạng dịch vụ • Khai triển chương trình phát lỗ hổng tốt hơn, nhiều phương diện kĩ thuật Tav4 Bkav Forum Trang 52 [E-book] Tan cong va phong thu ung dung WEB TÀI LIỆU THAM KHẢO A Tài liệu Tiếng Việt: [1] Tấn công từ chối dịch vụ Dos,Ddos,DRDos Tác giả Ng.Ng.Thanh Nghị-HVA [2] Bài giảng An Ninh Mạng.Tác giả GV.Nguyễn Anh Tuấn-Trung tâm TH-NN Trí Đức [3] Lỗi bảo mật ứng dụng web cách khắc phục.Tác giả Đặng Hải Sơn-Trung tâm ứng cứu khẩn cấp máy tính Việt Nam [4] Tấn công kiểu SQL Injection-Tác hại phịng tránh Tác giả Lê Đình Duy-Khoa CNTT-Trường ĐH Khoa Học Tự Nhiên TP.HCM [5] Web Application Attack & Defense Tác giả Võ Đỗ Thắng-Trung tâm An ninh mạng Athena [6] XSS Tác giả Mask-NBTA B Tài liệu Tiếng Anh: [7] SQL Injection-Are you web Applications vulnerable Author Kevin Spett [8] An Introduction to SQL Injection Attacks For Oracle Developers.Author Stephen Kost [9] How to Attack and fix Local File Disclosure Author Sangteamtham C Tài liệu internet: [10]http://thuvienkhoahoc.com/wiki/K%C4%A9_thu%E1%BA%ADt_t%E1%BA%A 5n_c%C3%B4ng_CROSS-SITE_SCRIPTING » [11]http://vi.wikipedia.org/w/index.php?title=Th%E1%BB%83_lo%E1%BA%A1i:T %E1%BA%A5n_c%C3%B4ng_t%E1%BB%AB_ch%E1%BB%91i_d%E1%BB%8B ch_v%E1%BB%A5&action=edit&redlink=1 [12]http://www.hvaonline.net/hvaonline/posts/list/6720.hva;jsessionid=38F900726E07 641F712734A3B2A6F2EC [13]http://www.ddcntt.vn/forum/showthread.php?t=14 [14]http://ttgtc.com/forum/showthread.php?1385-T%C3%ACm-hi%E1%BB%83uv%E1%BB%81-t%E1%BA%A5n-c%C3%B4ng-t%E1%BB%AB-ch%E1%BB%91id%E1%BB%8Bch-v%E1%BB%A5-DoS&s=c580b874a6ea05d220258132c9cef9e3 Tav4 Bkav Forum Trang 53 [E-book] Tan cong va phong thu ung dung WEB NHẬN XÉT HƯỚNG DẪN Tav4 Bkav Forum Trang 54 [E-book] Tan cong va phong thu ung dung WEB NHẬN XÉT PHẢN BIỆN Tav4 Bkav Forum Trang 55 ... đặt website, đơn vị đo thông thường Mb/Tháng 1.2 Các dịch vụ ứng dụng web Với công nghệ nay, website không đơn giản trang tin cung cấp tin đơn giản Những ứng dụng viết web không gọi phần website... dung WEB MỤC LỤC CHƯƠNG TỔNG QUAN VỀ WEBSITE, CÁC DỊCH VỤ CỦA WEBSITE VÀ LỖI BẢO MẬT THÔNG DỤNG 1.1 Mô tả Website cách hoạt động 1.2 Các dịch vụ ứng dụng web. .. virus, backdoor, worm 2.4.1.2 Cách công i Scan lỗ hỗng XSS cua ứng dụng web - Cách 1: Sử dụng nhiều chương trình dị qt lỗi ứng dụng web, ví dụ chương trình Web Vulnerability Scanner để dò quét