Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
11,84 MB
Nội dung
SQL INJECTION Nội dung trình bày: SQL Injection gì? Các dạng công SQL Injection Kỹ Thuật công sql injection Cách phòng tránh Demo SQL Injection gì? SQL injection kĩ thuật công lợi dụng lỗ hổng việc kiểm tra liệu nhập ứng dụng web thông báo lỗi hệ quản trị sở liệu để "tiêm vào" (injection) thi hành câu lệnh SQL bất hợp pháp Hậu tai hại cho phép kẻ công thực thao tác xóa, hiệu chỉnh, có toàn quyền sở liệu ứng dụng, chí server mà ứng dụng chạy Lỗi thường xảy ứng dụng web có liệu quản lí hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase Các dạng công SQL Injection Có bốn dạng thông thường bao gồm: Vượt qua kiểm tra lúc đăng nhập (authorization bypass) Sử dụng câu lện SELECT Sử dụng câu lệnh INSERT Sử dụng stored-procedures [2], [3] Dạng công vượt qua kiểm tra đăng nhập Đăng nhập nhờ vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web Trong trường hợp này, người ta dùng hai trang, trang HTML để hiển thị form nhập liệu trang ASP dùng để xử lí thông tin nhập từ phía người dùng Ví dụ: login.htm Username: Password: execlogin.asp [...]... Dạng tấn công sử dụng storedprocedures Việc tấn công bằng stored-procedures sẽ gây tác hại rất lớn nếu ứng dụng được thực thi với quyền quản trị hệ thống 'sa' Ví dụ, nếu ta thay đoạn mã tiêm vào dạng: ' ; EXEC xp_cmdshell 'cmd.exe dir C: ' Lúc này hệ thống sẽ thực hiện lệnh liệt kê thư mục trên ổ đĩa C:\ cài đặt server Việc phá hoại kiểu nào tuỳ thuộc vào câu lệnh đằng sau cmd.exe Kỹ Thuật tấn công. .. truy vấn đầu không thành công, chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa Nếu chúng ta thêm ' UNION SELECT name FROM sysobjects WHERE xtype = 'U' là có thể liệt kê được tên tất cả các bảng dữ liệu Dạng tấn công sử dụng câu lệnh INSERT Chức năng không thể thiếu là sau khi đăng kí thành công, người dùng có thể xem và hiệu chỉnh thông tin của mình SQL injection có thể được dùng... column trong table, bạn có thể UPDATE hoặc INSERT một record mới vào table này Để thay đổi password của ‘aaa’ bạn có thể làm như sau: http://vitcon/index.asp?id=10 ;UPDATE ‘admin_login’ SET ‘password’ =‘ccc’ WHERE login_name=‘aaa’– Hoặc bạn login trực tiếp vào và thực hiện dưới quyền user đó Cách phòng tránh Cần có cơ chế kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà... http://www.galilcol.ac.il/page.asp?id=17‘ Ghi chú: không phải trang nào cũng tấn công được Kiểm tra chỗ yếu của trang web Bạn có thể điền thêm một số lệnh trên url, hoặc trên các from login, search, hoặc search để phát hiện lỗi Sau đây là một số cách thêm và phát hiện lỗi của nhóm mình: Nhận data qua ‘database using ODBC error message’ Đây là bước quan trọng nhất và đòi hỏi nhiều kĩ thuật lẫn sự am hiểu về cơ sở dữ... của thông tin nhập vào Ví dụ, một câu lệnh INSERT có thể có cú pháp dạng: INSERT INTO TableName VALUES('Value One', 'Value Two', 'Value Three') Nếu đoạn mã xây dựng câu lệnh SQL có dạng : .. .SQL Injection gì? SQL injection kĩ thuật công lợi dụng lỗ hổng việc kiểm tra liệu nhập ứng dụng web thông báo lỗi hệ quản trị sở liệu để "tiêm vào" (injection) thi hành câu lệnh SQL. .. nhập hợp lệ Dạng công sử dụng câu lệnh SELECT Để thực kiểu công này, kẻ công phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dò tìm điểm yếu khởi đầu cho việc công Thông thường,... lệnh INSERT Chức thiếu sau đăng kí thành công, người dùng xem hiệu chỉnh thông tin SQL injection dùng hệ thống không kiểm tra tính hợp lệ thông tin nhập vào Ví dụ, câu lệnh INSERT có cú pháp