SlideShare a Scribd company logo
1 of 12
Download to read offline
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
MỤC LỤC
MỤC LỤC......................................................................................................................1
CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION...........2
1.1Khái niệm..................................................................................................................2
1.1.1 SQL (Structured Query Language )...................................................................2
1.1.3 SQL Injection .......................................................................................................7
CHƯƠNG II: CÁC DẠNG TẤN CÔNG SQL INJECTION...................................13
2.1 Dạng tấn công vượt qua kiểm tra đăng nhập......................................................13
2.2 Dạng tấn công sử dụng câu lệnh SELECT..........................................................14
2.3 Dạng tấn công sử dụng câu lệnh INSERT...........................................................16
2.4 Dạng tấn công sử dụng stored-procedures..........................................................17
2.5 Kết luận..................................................................................................................17
CHƯƠNG III: PHÒNG CHỐNG SQL INJECTION...............................................18
3.1 Kiểm soát chặt chẽ dữ liệu đầu vào .....................................................................18
3.2 Sử dụng các lớp giao tiếp trừu tượng ..................................................................19
3.3 Thiết lập các đối tượng giả làm mồi nhử .............................................................20
3.4 Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu ...................................20
KẾT LUẬN..................................................................................................................21
TÀI LIỆU THAM KHẢO...........................................................................................22
Nhóm sinh viên thực hiện: 1 1 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION
1.1Khái niệm
1.1.1 SQL (Structured Query Language )
Là ngôn ngữ truy vấn mang tính cấu trúc, là một loại ngôn ngữ máy tính phổ biến để
tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ. Ngôn ngữ này phát
triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối
tượng-quan hệ. Nó là một tiêu chuẩn ANSI/ISO.
Từ một bài báo tham dự hội thảo khoa học A Relational Model of Data for Large
Share Data Banks (tạm dịch là "Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ
liệu chia sẻ có khối lượng lớn") của tiến sĩ Edgar F. Codd xuất bản tháng
6 năm 1970 trong tạp chí Communications of the ACM của Hiệp hội ACM[8]
, một mô
hình đã được chấp nhận rộng rãi là mô hình tiêu chuẩn dùng cho hệ thống quản lý cơ sở
dữ liệu quan hệ.
Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu
của IBM tại San Jose phát triển hệ thống cơ sở dữ liệu "Hệ thống R" dựa trên mô hình
của Codd. Structured English Query Language, viết tắt là "SEQUEL" (tạm dịch là
"Ngôn ngữ truy vấn tiếng Anh có cấu trúc"), được thiết kế để quản lý và truy lục dữ liệu
được lưu trữ trong Hệ thống R. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL
để tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay
của UK là Hawker-Siddeley đăng ký). Mặc dù SQL bị ảnh hưởng bởi công trình của
tiến sĩ Codd nhưng nó không do tiến sĩ Codd thiết kế ra. Ngôn ngữ SEQUEL được thiết
kế bởi Donald D. Chamberlin vàRaymond F. Boyce tại IBM, và khái niệm của họ được
phổ biến để tăng sự chú ý về SQL.
Phiên bản cơ sở dữ liệu quan hệ phi thương mại, không hỗ trợ SQL đầu tiên được
phát triển năm 1974.(Ingres from U.C. Berkeley.)
Năm 1978, việc thử nghiệm phương pháp được khởi đầu tại một cơ sở thử nghiệm
của khách hàng. Cuộc thử nghiệm đã chứng minh được sự có ích và tính thực tiễn của
hệ thống và đã chứng tỏ sự thành công của IBM. Dựa vào kết quả đó, IBM bắt đầu phát
triển các sản phẩm thương mại bổ sung thêm SQL dựa trên nguyên mẫu Hệ thống R
bao gồm System/38 (Hệ thống/38) (được công bố năm 1978 và được thương mại hóa
tháng 8 năm 1979, SQL/DS (được giới thiệu vào năm 1981) và DB2 (năm 1983).
Nhóm sinh viên thực hiện: 1 2 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
Cùng thời điểm đó Relational Software, Inc. (bây giờ là Oracle Corporation) đã
nhận thấy tiềm năng của những khái niệm được Chamberlin and Boyce đưa ra và đã
phát triển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêng của họ cho Navy, CIA và
các tổ chức khác. Vào mùa hè năm 1979, Relational Software, Inc. giới thiệu Oracle V2
(Phiên bản 2), phiên bản thương mại đầu tiên hỗ trợ SQL cho máy tính VAX. Oracle
thường xuyên được nhắc tới một cách không nghiêm túc vì đã tấn công thị trường
của IBM trong 2 năm, nhưng việc táo bạo nhất trong quan hệ công chúng của họ là tấn
công một phiên bản của IBM System/38 chỉ trong có vài tuần. Tương lai của Oracle đã
được đảm bảo vì có sự quan tâm đáng kể của công chúng sau đó mới phát triển, trong
khi đã có nhiều phiên bản của các nhà cung cấp khác.
IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ vì ban
đầu nó không dùng được trong môi trường Unix và máy tính lớn (Mainframe), và họ sợ
nó sẽ làm giảm lợi nhuận thu được từ việc bán các sản phẩm cơ sở dữ liệu IMS (những
sản phẩm dựa trên mô hình cơ sở dữ liệu định hướng chứ không phải cơ sở dữ liệu quan
hệ) của mình. Trong lúc đó, Oracle vẫn đang phát triển, IBM đang phát
triển System/38, được mong đợi là hệ cơ sở dữ liệu quan hệ đầu tiên của họ. Với năng
lực và thiết kế tiên tiến của nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống
Unix và máy tính lớn.
SQL được thừa nhận là tiêu chuẩn của ANSI (American National Standards
Institute) vào năm 1986 và ISO (International Organization for Standardization) năm
1987. ANSI đã công bố cách phát âm chính thức của SQL là "ess kyoo ell", nhưng rất
nhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel. Một quan niệm
sai khác cũng được phổ biến rộng rãi đó là "SQL" là chữ viết tắt của "Structured Query
Language" (Ngôn ngữ truy vấn có cấu trúc). Thực tế không phải như vậy.
Năm Tên
Tên
khác
Chú giải
1986 SQL-86 SQL-87 Được công bố đầu tiên bởi ANSI. Được phê chuẩn
bởi ISO năm 1987.
1989 SQL-89 Thay đổi nhỏ.
1992 SQL-92 SQL2 Thay đổi lớn.
1999 SQL:1999 SQL3
2003 SQL:2003
1.1.2 SQL chia thành nhiều nhóm:
Nhóm sinh viên thực hiện: 1 3 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
Lấy dữ liệu
Thao tác sử dụng nhiều nhất trong một cơ sở dữ liệu dựa trên giao dịch là thao tác lấy
dữ liệu.
• SELECT được sử dụng để lấy dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ
liệu, SELECT là lệnh thường dùng nhất của ngôn ngữ sửa đổi dữ liệu (tạm dịch) (tiếng
Anh: Data Manipulation Language - DML). Trong việc tạo ra câu truy vấn SELECT,
người sử dụng phải đưa ra mô tả cho những dữ liệu mình muốn lấy ra chứ không chỉ ra
những hành động vật lý nào bắt buộc phải thực hiện để lấy ra kết quả đó. Hệ thống cơ
sở dữ liệu, hay chính xác hơn là bộ tối ưu hóa câu truy vấn sẽ dịch từ câu truy vấn
sang kế hoạch truy vấn tối ưu.
• Những từ khóa liên quan tới SELECT bao gồm:
• FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào,
và các bảng đó quan hệ với nhau như thế nào.
• WHERE dùng để xác định những bản ghi nào sẽ được lấy ra, hoặc
áp dụng với GROUP BY.
• GROUP BY dùng để kết hợp các bản ghi có những giá trị liên quan
với nhau thành các phần tử của một tập hợp nhỏ hơn các bản ghi.
• HAVING dùng để xác định những bản ghi nào, là kết quả từ từ khóa
GROUP BY, sẽ được lấy ra.
• ORDER BY dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo
những cột nào.
Ví dụ sau về việc sử dụng câu lệnh SELECT để lấy danh sách những cuốn sách có
giá trị. Câu truy vấn này sẽ truy lục tất cả các bản ghi trong bảng books với giá trị của
cột pricelớn hơn 100.00. Kết quả sẽ được sắp xếp theo thứ tự tăng dần của các giá trị
trong cột title. Dấu (*) trong phần select list cho biết tất cả các cột của bảng books sẽ
được lấy ra và thể hiện ở kết quả.
SELECT *
FROM books
WHERE price > 100.00
ORDER BY title;
Nhóm sinh viên thực hiện: 1 4 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
Ví dụ sau giải thích cách liên kết nhiều bảng, tập hợp các bản ghi trong câu truy
vấn SQL, nó sẽ trả về danh sách các cuốn sách và số tác giả của từng cuốn sách.
SELECT books.title, count(*) AS Authors
FROM books
JOIN book_authors
ON books.isbn = book_authors.isbn
GROUP BY books.title;
Kết quả của ví dụ trên giống như sau:
Title Authors
---------------------- -------
SQL Examples and Guide 3
The Joy of SQL 1
How to use Wikipedia 2
Pitfalls of SQL 1
How SQL Saved my Dog 1
(Kí tự gạch chân "_" thường được sử dụng trong tên bảng và tên cột để phân cách các
từ vì các kí tự khác có thể mâu thuẫn với cú pháp SQL. Ví dụ như, dấu "-" có thể được
hiểu là dấu trừ.)
Với điều kiện cột isbn là cột chung duy nhất của hai bảng và cột title chỉ tồn tại
trong bảng books thì câu truy vấn trên có thể được viết lại theo mẫu sau:
SELECT title, count(*) AS Authors
FROM books
NATURAL JOIN book_authors
GROUP BY title;
Tuy nhiên nhiều nhà cung cấp không hỗ trợ các thức này, hoặc nó yêu cầu một
số quy ước về tên cột nào đó. Như vậy, câu truy vấn trên không được phổ biến.
Sửa đổi dữ liệu
Ngôn ngữ sửa đổi dữ liệu (Data Manipulation Language - DML), là một phần
nhỏ của ngôn ngữ, có những thành phần tiêu chuẩn dùng để thêm, cập nhật và xóa dữ
liệu delete data.
• INSERT dùng để thêm dữ liệu vào một bảng đã tồn tại.
Nhóm sinh viên thực hiện: 1 5 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
• UPDATE dùng để thay đổi giá trị của một tập hợp các bản ghi trong một bảng.
• MERGE dùng để kết hợp dữ liệu của nhiều bảng. Nó được dùng như việc kết hợp
giữa hai phần tử INSERT và UPDATE.
• DELETE xóa những bản ghi tồn tại trong một bảng.
• TRUNCATE Xóa toàn bộ dữ liệu trong một bảng (không phải là tiêu chuẩn,
nhưng là một lệnh SQL phổ biến).
Giao dịch
Giao dịch, nếu có, dùng để bao bọc các thao tác sửa đổi dữ liệu. Giao dịch
(transaction) là một tập các thao tác đi cùng với nhau. Trên môi trường khách/chủ
(client/server) hay môi trường cơ sở dữ liệu phân tán việc đảm bảo tính đúng đắn của
dữ liệu rất quan trọng. Ví dụ: Một người rút tiền khỏi tài khoản tại ngân hàng, thì tại
thời điểm rút tiền, thao tác rút tiền khác phải bị từ chối. Các thao tác trên tài khoản đó
có thể hình dung như sau:
Thao tác 1: <Mở khóa tài khoản>
Thao tác 2: <Thực hiện thao tác rút tiền>
Thao tác 3: <Khóa tài khoản>
Để đảm bảo các thao tác 1-3 phải đi liền với nhau thì phải đưa vào trong một
transaction
<START TRANSACTION>
Thao tác 1: <Mở khóa tài khoản>
Thao tác 2: <Thực hiện thao tác rút tiền>
Thao tác 3: <Khóa tài khoản>
<END TRANSACTION>
Các lệnh liên quan đến giao dịch:
• BEGIN WORK (hoặc START TRANSACTION, tùy theo các ngôn ngữ SQL
khác nhau) được sử dụng để đánh dấu việc bắt đầu một giao dịch dữ liệu (giao dịch dữ
liệu đó có kết thúc hoàn toàn hay không).
• COMMIT dùng để lưu lại những thay đổi trong giao dịch.
• ROLLBACK dùng để quay lại thời điểm sử dụng lệnh COMMIT cuối cùng.
Nhóm sinh viên thực hiện: 1 6 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
SQL Injection
Là một cách chèn đoạn lệnh SQL vào để thực hiện việc vượt qua sự kiểm tra của
mệnh đề WHERE. Ví dụ một câu truy vấn lấy tài khoản người dùng:
SELECT ID, NAME FROM USERS WHERE USERNAME='JONH' AND
PASSWORD='1234'
Câu trên chỉ có thể đúng nếu thỏa cặp USERNAME và PASSWORD tồn tại trong cơ sở
dữ liệu. Câu trên có thể viết injection như sau: thay cụm từ JONH thành: ' OR 1=1
or''=' (lưu ý ký tự nháy đơn ') khi đó câu SQL sẽ trở thành:
SELECT ID, NAME FROM USERS WHERE USERNAME='' OR 1=1 or''='' AND
PASSWORD='1234'
đoạn mã này hoạt động với bất cứ password nào. Việc phòng chống SQL Injection cũng
không khó, chỉ cần chú ý khi viết là có thể chống lại được.
Định nghĩa dữ liệu
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language, viết tắt là DDL) là một
trong những phần chính của ngôn ngữ truy vấn. Các câu lệnh này dùng để định nghĩa
cấu trúc củacơ sở dữ liệu, bao gồm định nghĩa các hàng, các cột, các bảng dữ liệu, các
chỉ số và một số thuộc tính khác liên quan đến cơ sở dữ liệu như vị trí của file. Các câu
lệnh ngôn ngữ định nghĩa dữ liệu là thành phần chính trong các hệ quản lý dữ liệu và có
sự khác biệt rất nhiều giữa các ngôn ngữ truy vấn trên các hệ khác nhau.
1.1.3 SQL Injection
SQL Injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong
việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị
cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp (không
được người phát triển ứng dụng lường trước). Hậu quả của nó rất tai hại vì nó cho phép
những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … Do có toàn quyền
trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy. Lỗi này
thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở
dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase.
Nhóm sinh viên thực hiện: 1 7 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
Các dạng lỗi thường gặp
Không kiểm tra ký tự thoát truy vấn
Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trong
câu truy vấn SQL. Kết quả là người dùng cuối có thể thực hiện một số truy vấn không
mong muốn đối với cơ sở dữ liệu của ứng dụng. Dòng mã sau sẽ minh họa lỗi này:
statement = "SELECT * FROM users WHERE name = '" + userName + "';"
Câu lệnh này được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng những
người dùng. Tuy nhiên, nếu biến "userName" được nhập chính xác theo một cách nào đó
bởi người dùng ác ý, nó có thể trở thành một câu truy vấn SQL với mục đích khác hẳn so
với mong muốn của tác giả đoạn mã trên. Ví dụ, ta nhập vào giá trị của
biến userName như sau:
a' or 't'='t
Khiến câu truy vấn có thể được hiểu như sau:
SELECT * FROM users WHERE name = 'a' or 't'='t';
Nhóm sinh viên thực hiện: 1 8 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
Nếu đoạn mã trên được sử dụng trong một thủ tục xác thực thì ví dụ trên có thể được sử
dụng để bắt buộc lựa chọn một tên người dùng hợp lệ bởi 't'='t' luôn đúng. Trong khi hầu
hết các SQL server cho phép thực hiện nhiều truy vấn cùng lúc chỉ với một lần gọi, tuy
nhiên một số SQL API như mysql_query của php lại không cho phép điều đó vì lý do bảo
mật. Điều này chỉ ngăn cản tin tặc tấn công bằng cách sử dụng các câu lệnh riêng rẽ mà
không ngăn cản tin tặc thay đổi các từ trong cú pháp truy vấn. Các giá trị của biến
"userName" trong câu truy vấn dưới đây sẽ gây ra việc xoá những người dùng từ bảng
người dùng cũng tương tự như việc xóa tất cả các dữ liệu được từ bảng dữ liệu (về bản
chất là tiết lộ các thông tin của mọi người dùng), ví dụ này minh họa bằng một API cho
phép thực hiện nhiều truy vấn cùng lúc:
a';DROP TABLE users; SELECT * FROM data WHERE 't' = 't
Điều này đưa tới cú pháp cuối cùng của câu truy vấn trên như sau:
SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM
data WHERE 't' = 't';
Xử lý không đúng kiểu
Lỗi SQL injection dạng này thường xảy ra do lập trình viên hay người dùng định nghĩa
đầu vào dữ liệu không rõ ràng hoặc thiếu bước kiểm tra và lọc kiểu dữ liệu đầu vào. Điều
này có thể xảy ra khi một trường số được sử dụng trong truy vấn SQL nhưng lập trình
viên lại thiếu bước kiểm tra dữ liệu đầu vào để xác minh kiểu của dữ liệu mà người dùng
nhập vào có phải là số hay không. Ví dụ như sau:
statement:= "SELECT * FROM data WHERE id = " + a_variable + ";"
Ta có thể nhận thấy một cách rõ ràng ý định của tác giả đoạn mã trên là nhập vào một số
tương ứng với trường id - trường số. Tuy nhiên, người dùng cuối, thay vì nhập vào một
số, họ có thể nhập vào một chuỗi ký tự, và do vậy có thể trở thành một câu truy vấn SQL
hoàn chỉnh mới mà bỏ qua ký tự thoát. Ví dụ, ta thiết lập giá trị của biến a_variable là:
1;DROP TABLE users
khi đó, nó sẽ thực hiện thao tác xóa người dùng có id tương ứng khỏi cơ sở dữ liệu, vì
câu truy vấn hoàn chỉnh đã được hiểu là:
SELECT * FROM data WHERE id=1;DROP TABLE users;
Lỗi bảo mật bên trong máy chủ cơ sở dữ liệu
Đôi khi lỗ hổng có thể tồn tại chính trong phần mềm máy chủ cơ sở dữ liệu, như là
trường hợp hàm mysql_real_escape_string() của các máy chủ MySQL. Điều này sẽ cho
phép kẻ tấn công có thể thực hiện một cuộc tấn công SQL injection thành công dựa trên
Nhóm sinh viên thực hiện: 1 9 Lớp M14CQTE02-B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
những ký tự Unicode không thông thường ngay cả khi đầu nhập vào đang được
thoát. Chữ đậm
Blind SQL injection
Lỗi SQL injection dạng này là dạng lỗi tồn tại ngay trong ứng dụng web nhưng hậu quả
của chúng lại không hiển thị trực quan cho những kẻ tấn công. Nó có thể gây ra sự sai
khác khi hiển thị nội dung của một trang chứa lỗi bảo mật này, hậu quả của sự tấn công
SQL injection dạng này khiến cho lập trình viên hay người dùng phải mất rất nhiều thời
gian để phục hồi chính xác từng bit dữ liệu. Những kẻ tấn công còn có thể sử dụng một
số công cụ để dò tìm lỗi dạng này và tấn công với những thông tin đã được thiết lập sẵn.
Thay đổi giá trị điều kiện truy vấn
Dạng lỗi này khiến cho kẻ tấn công có thể thay đổi giá trị điều kiện trong câu truy vấn,
làm sai lệch sự hiển thị của một ứng dụng chứa lỗi này.
SELECT booktitle from booklist where bookId = 'OOk14cd' AND 1=1;
Sẽ hiển thị một trang một cách bình thường, trong khi:
SELECT booktitle from booklist where bookId = 'OOk14cd' AND 1=2;
sẽ hiển thị một nội dung khác, hoặc không hiển thị gì nếu ứng dụng web có chứa lỗi
SQL injection dạng này. Lỗ hổng dạng này còn cho phép tin tặc không chỉ gây ảnh
hưởng tới bảng hay dữ liệu hiện tại mà còn ảnh hưởng tới những dữ liệu hay bảng khác
phụ thuộc vào nội dung của dữ liệu hay bảng hiện tại.
Điều kiện lỗi
Lỗi SQL injection dạng này dẫn tới việc buộc cơ sở dữ liệu chỉ được phép đánh giá khi
mà giá trị của câu lệnh WHERE là đúng. Ví dụ:
SELECT 1/0 from users where username='Ralph';
Phép chia cho 0 chỉ được đánh giá là lỗi khi mà người dùng có tên "Ralph" tồn tại trong
cơ sở dữ liệu.
Thời gian trễ
Lỗi SQL injection dạng này tồn tại khi thời gian xử lý của một hay nhiều truy vấn SQL
phụ thuộc vào dữ liệu logic được nhập vào hoặc quá trình xử lý truy vấn của SQL
engine cần nhiều thời gian. Tin tặc có thể sử dụng lỗi SQL injection dạng này để xác
định thời gian chính xác mà trang cần tải khi giá trị nhập vào là đúng.
Nhóm sinh viên thực hiện: 1 10 Lớp M14CQTE02-
B
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
1.2Mức độ thiệt hại
Thực chất, nguồn gốc của quá trình tấn công SQL Injection là sự cẩu thả trong quy
trình mã hóa ứng dụng, mật khẩu ứng dụng nhưng vẫn có thể ngăn chặn được, tuy
nhiên mức độ thiệt hại là không thể lường trước được và phụ thuộc vào quy mô của
từng database. Trong quá trình một ứng dụng web bất kỳ có thể giao tiếp với backen
database thì sẽ phải cung cấp thông tin đăng nhập tới một cơ sở dữ liệu (quy trình này
khác hẳn so với lúc người dùng tiến hành đăng nhập vào website hay form login). Phụ
thuộc vào mức phân quyền tương ứng mà ứng dụng web yêu cầu, tài khoản trong cơ sở
dữ liệu có thể sử dụng được bất kỳ quyền chỉnh sửa nào, từ việc đơn giản như đọc, ghi
đơn thuần trên những bảng có sẵn cho tới mức quyền đầy đủ.
Chúng ta thấy bằng việc nhập tên tài khoản (ví dụ “youruser”, “admin’--” hoặc bất
kỳ) thì hoàn toàn có thể đăng nhập trực tiếp vào database mà không cần biết password.
Khi ở bên trong hệ thống sẽ không thể biết được tài khoản đó bình thường hoặc có đầy
đủ quyền tương ứng. Về mặt bản chất, việc phân quyền của database không cung cấp
quyền chính xác tương ứng và an toàn trong quá trình này, bởi vì thông thường một
website ít nhất phải có quyền đọc hoặc ghi tới cơ sở dữ liệu tương ứng.
Giải sử rằng hệ thống website của chúng ta có đầy đủ quyền truy cập, bao gồm việc
xóa dữ liệu, thêm hoặc xóa bảng, tạo mới tài khoản… và trên thực tế, có khá nhiều
chương trình nếu muốn cài đặt và sử dụng thì phải được phân quyền ở mức cao nhất, do
vậy bạn phải cẩn thận khi thực hiện việc gán quyền.
Để minh họa mức ộ thiệt hại có thể xảy ra trong tình huống này, chúng ta sẽ dựa
vào hình vẽ trên, và nhập phần thông tin sau vào trường Username:
"Robert'; DROP TABLE Users;--"
Chỉ với vài sự thay đổi nho nhỏ, câu lênh query sẽ trở thành:
Nhóm sinh viên thực hiện: 1 11 Lớp M14CQTE02-
B
Tải bản FULL (file word 22 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân
Dậu
SELECT UserID FROM Users WHERE UserName='Robert'; DROP TABLE Users;--'
AND Password='wrongpass'
Lưu ý rằng dấu phẩy trong MySQL được sử dụng để kết thúc mệnh đề cũ và bắt đầu
một mệnh đề mới.
Dòng lênh trên sẽ được database thực hiện thành:
SELECT UserID FROM Users WHERE UserName='Robert'
DROP TABLE Users
Chỉ đơn giản như vậy chúng ta đã thực hiện thành công một pha tấn công SQLI nho
nhỏ với mục đích chính là xóa toàn bộ bảng dữ liệu Users.
1.3Kết luận
Trong chương này chúng ta được giới thiệu khái quát về SQL, SQL Injection các
lỗi thường gặp và mức độ thiệt hại trong tấn công SQL Injection.
Nhóm sinh viên thực hiện: 1 12 Lớp M14CQTE02-
B
4047596

More Related Content

What's hot

Sql injection demo - it-slideshares.blogspot.com
Sql injection   demo - it-slideshares.blogspot.comSql injection   demo - it-slideshares.blogspot.com
Sql injection demo - it-slideshares.blogspot.comphanleson
 
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngĐồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngnataliej4
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh Thanh
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinNguyen Thi Lan Phuong
 
Hệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị miniHệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị miniHan Nguyen
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
An toan thong tin
An toan thong tinAn toan thong tin
An toan thong tinTrung Quan
 
Báo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềmBáo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềmytthuan
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramHuy Vũ
 
đề thi java ptit
đề thi java ptitđề thi java ptit
đề thi java ptitNguynMinh294
 
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Thịt Xốt Cà Chua
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựleemindinh
 
[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress
[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress
[Athena]Nghiên Cứu Và Xây Dựng Website Bằng WordpressCương Trần
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGThùy Linh
 
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luongDuytPhm8
 

What's hot (20)

Sql injection demo - it-slideshares.blogspot.com
Sql injection   demo - it-slideshares.blogspot.comSql injection   demo - it-slideshares.blogspot.com
Sql injection demo - it-slideshares.blogspot.com
 
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngĐồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin TứcBáo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
Báo Cáo Bài Tập Lớn Môn Lập Trình Web Xây Dựng Website Tin Tức
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Tổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tinTổng quan về an toàn và bảo mật thông tin
Tổng quan về an toàn và bảo mật thông tin
 
Hệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị miniHệ thống quản lý mua hàng siêu thị mini
Hệ thống quản lý mua hàng siêu thị mini
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
An toan thong tin
An toan thong tinAn toan thong tin
An toan thong tin
 
Báo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềmBáo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềm
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
đề thi java ptit
đề thi java ptitđề thi java ptit
đề thi java ptit
 
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
Nghiên cứu một số hình thức tấn công website phổ biến và các giải pháp phòng ...
 
Thiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sựThiết kế csdl quản lý nhân sự
Thiết kế csdl quản lý nhân sự
 
[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress
[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress
[Athena]Nghiên Cứu Và Xây Dựng Website Bằng Wordpress
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
Đề tài: Quản lí Tour du lịch, HAY, 9đ
Đề tài: Quản lí Tour du lịch, HAY, 9đĐề tài: Quản lí Tour du lịch, HAY, 9đ
Đề tài: Quản lí Tour du lịch, HAY, 9đ
 
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong[123doc]   do-an-phan-mem-quan-ly-nhan-su-tien-luong
[123doc] do-an-phan-mem-quan-ly-nhan-su-tien-luong
 

Similar to Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION

Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.TrngTn67
 
Giao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.netGiao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.netlove-dalat
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_serverthai
 
Gt bt access
Gt bt accessGt bt access
Gt bt accesslam04dt
 
Giao trinh he quan tri csdl
Giao trinh he quan tri csdlGiao trinh he quan tri csdl
Giao trinh he quan tri csdlHung Pham Thai
 
2008311102150141
20083111021501412008311102150141
2008311102150141jimmycuong
 
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-banSinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-banSon Nguyen Ba
 
Giao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdf
Giao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdfGiao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdf
Giao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdftuanbnonline
 
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Hoa Le
 
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.commai_non
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTMasterCode.vn
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serveranhanh81
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfCriz20
 
Giao trinh access_p1_6962
Giao trinh access_p1_6962Giao trinh access_p1_6962
Giao trinh access_p1_6962Vy Le
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanhJohn Carter
 

Similar to Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION (20)

Bg access
Bg accessBg access
Bg access
 
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
 
Bai giang he qtdl
Bai giang he qtdlBai giang he qtdl
Bai giang he qtdl
 
Giao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.netGiao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl dành cho asp.net
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_server
 
Access gt bt
Access gt btAccess gt bt
Access gt bt
 
Gt bt access
Gt bt accessGt bt access
Gt bt access
 
Giao trinh he quan tri csdl
Giao trinh he quan tri csdlGiao trinh he quan tri csdl
Giao trinh he quan tri csdl
 
2008311102150141
20083111021501412008311102150141
2008311102150141
 
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-banSinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
Sinh vienit.net --sinhvienit.net-giao-trinh-oracle-sql-plsql-co-ban
 
Giao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdf
Giao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdfGiao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdf
Giao-Trinh-Oracle-SQL-PLSQL-Co-Ban.pdf
 
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
Chương 3 Ngôn ngữ truy vấn có cấu trúc (SQL)
 
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
 
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPTBài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
Bài 3: Ngôn ngữ truy vân có cấu trúc (SQL) - Giáo trình FPT
 
Com201 slide 3
Com201   slide 3Com201   slide 3
Com201 slide 3
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_server
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdf
 
Giao trinh access_p1_6962
Giao trinh access_p1_6962Giao trinh access_p1_6962
Giao trinh access_p1_6962
 
51645016 csdl
51645016 csdl51645016 csdl
51645016 csdl
 
Sql server chuong 2 nkhanh
Sql server chuong 2 nkhanhSql server chuong 2 nkhanh
Sql server chuong 2 nkhanh
 

More from nataliej4

đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155nataliej4
 
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...nataliej4
 
Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279nataliej4
 
Từ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc giaTừ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc gianataliej4
 
Công tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngCông tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngnataliej4
 
Bài giảng nghề giám đốc
Bài giảng nghề giám đốcBài giảng nghề giám đốc
Bài giảng nghề giám đốcnataliej4
 
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán   tin họcđề Cương chương trình đào tạo trình độ trung cấp kế toán   tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin họcnataliej4
 
Giáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngGiáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngnataliej4
 
Lựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnLựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnnataliej4
 
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877nataliej4
 
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
Sổ tay hướng dẫn khách thuê   tòa nhà ree towerSổ tay hướng dẫn khách thuê   tòa nhà ree tower
Sổ tay hướng dẫn khách thuê tòa nhà ree towernataliej4
 
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...nataliej4
 
Bài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtBài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtnataliej4
 
đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864nataliej4
 
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...nataliej4
 
Bài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngBài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngnataliej4
 
Bài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhBài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhnataliej4
 
Giới thiệu học máy – mô hình naïve bayes learning intro
Giới thiệu học máy – mô hình naïve bayes   learning introGiới thiệu học máy – mô hình naïve bayes   learning intro
Giới thiệu học máy – mô hình naïve bayes learning intronataliej4
 
Lý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcLý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcnataliej4
 
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)nataliej4
 

More from nataliej4 (20)

đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155đồ áN xây dựng website bán laptop 1129155
đồ áN xây dựng website bán laptop 1129155
 
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
Nghệ thuật chiến tranh nhân dân việt nam trong công cuộc xây dựng và bảo vệ t...
 
Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279Quản lý dịch vụ ô tô toyota 724279
Quản lý dịch vụ ô tô toyota 724279
 
Từ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc giaTừ vựng tiếng anh luyện thi thpt quốc gia
Từ vựng tiếng anh luyện thi thpt quốc gia
 
Công tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vươngCông tác dược lâm sàng tại bv cấp cứu trưng vương
Công tác dược lâm sàng tại bv cấp cứu trưng vương
 
Bài giảng nghề giám đốc
Bài giảng nghề giám đốcBài giảng nghề giám đốc
Bài giảng nghề giám đốc
 
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán   tin họcđề Cương chương trình đào tạo trình độ trung cấp kế toán   tin học
đề Cương chương trình đào tạo trình độ trung cấp kế toán tin học
 
Giáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao độngGiáo trình kỹ thuật an toàn và bảo hộ lao động
Giáo trình kỹ thuật an toàn và bảo hộ lao động
 
Lựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắnLựa chọn trong điều kiện không chắc chắn
Lựa chọn trong điều kiện không chắc chắn
 
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
Thực trạng phân bố và khai thác khoáng sét ở đồng bằng sông cửu long 4857877
 
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
Sổ tay hướng dẫn khách thuê   tòa nhà ree towerSổ tay hướng dẫn khách thuê   tòa nhà ree tower
Sổ tay hướng dẫn khách thuê tòa nhà ree tower
 
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
Phân tích tác động của thiên lệch hành vi đến quyết định của nhà đầu tư cá nh...
 
Bài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tậtBài giảng giáo dục hoà nhập trẻ khuyết tật
Bài giảng giáo dục hoà nhập trẻ khuyết tật
 
đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864đồ áN thiết kế quần âu nam 6838864
đồ áN thiết kế quần âu nam 6838864
 
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
Tài liệu hội thảo chuyên đề công tác tuyển sinh – thực trạng và giải pháp 717...
 
Bài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùngBài giảng dịch tễ học bệnh nhiễm trùng
Bài giảng dịch tễ học bệnh nhiễm trùng
 
Bài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanhBài giảng môn khởi sự kinh doanh
Bài giảng môn khởi sự kinh doanh
 
Giới thiệu học máy – mô hình naïve bayes learning intro
Giới thiệu học máy – mô hình naïve bayes   learning introGiới thiệu học máy – mô hình naïve bayes   learning intro
Giới thiệu học máy – mô hình naïve bayes learning intro
 
Lý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắcLý thuyết thuế chuẩn tắc
Lý thuyết thuế chuẩn tắc
 
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
Bài giảng thuế thu nhập (cá nhân, doanh nghiệp)
 

Recently uploaded

30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 

Recently uploaded (20)

1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 

Báo cáo ATTT CÁC DẠNG TẤN CÔNG SQL INJECTION

  • 1. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu MỤC LỤC MỤC LỤC......................................................................................................................1 CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION...........2 1.1Khái niệm..................................................................................................................2 1.1.1 SQL (Structured Query Language )...................................................................2 1.1.3 SQL Injection .......................................................................................................7 CHƯƠNG II: CÁC DẠNG TẤN CÔNG SQL INJECTION...................................13 2.1 Dạng tấn công vượt qua kiểm tra đăng nhập......................................................13 2.2 Dạng tấn công sử dụng câu lệnh SELECT..........................................................14 2.3 Dạng tấn công sử dụng câu lệnh INSERT...........................................................16 2.4 Dạng tấn công sử dụng stored-procedures..........................................................17 2.5 Kết luận..................................................................................................................17 CHƯƠNG III: PHÒNG CHỐNG SQL INJECTION...............................................18 3.1 Kiểm soát chặt chẽ dữ liệu đầu vào .....................................................................18 3.2 Sử dụng các lớp giao tiếp trừu tượng ..................................................................19 3.3 Thiết lập các đối tượng giả làm mồi nhử .............................................................20 3.4 Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu ...................................20 KẾT LUẬN..................................................................................................................21 TÀI LIỆU THAM KHẢO...........................................................................................22 Nhóm sinh viên thực hiện: 1 1 Lớp M14CQTE02-B
  • 2. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu CHƯƠNG I: TÌM HIỂU VỀ CÁC DẠNG TẤN CÔNG SQL INJECTION 1.1Khái niệm 1.1.1 SQL (Structured Query Language ) Là ngôn ngữ truy vấn mang tính cấu trúc, là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ quản trị cơ sở dữ liệu quan hệ. Ngôn ngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối tượng-quan hệ. Nó là một tiêu chuẩn ANSI/ISO. Từ một bài báo tham dự hội thảo khoa học A Relational Model of Data for Large Share Data Banks (tạm dịch là "Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ liệu chia sẻ có khối lượng lớn") của tiến sĩ Edgar F. Codd xuất bản tháng 6 năm 1970 trong tạp chí Communications of the ACM của Hiệp hội ACM[8] , một mô hình đã được chấp nhận rộng rãi là mô hình tiêu chuẩn dùng cho hệ thống quản lý cơ sở dữ liệu quan hệ. Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu của IBM tại San Jose phát triển hệ thống cơ sở dữ liệu "Hệ thống R" dựa trên mô hình của Codd. Structured English Query Language, viết tắt là "SEQUEL" (tạm dịch là "Ngôn ngữ truy vấn tiếng Anh có cấu trúc"), được thiết kế để quản lý và truy lục dữ liệu được lưu trữ trong Hệ thống R. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK là Hawker-Siddeley đăng ký). Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd nhưng nó không do tiến sĩ Codd thiết kế ra. Ngôn ngữ SEQUEL được thiết kế bởi Donald D. Chamberlin vàRaymond F. Boyce tại IBM, và khái niệm của họ được phổ biến để tăng sự chú ý về SQL. Phiên bản cơ sở dữ liệu quan hệ phi thương mại, không hỗ trợ SQL đầu tiên được phát triển năm 1974.(Ingres from U.C. Berkeley.) Năm 1978, việc thử nghiệm phương pháp được khởi đầu tại một cơ sở thử nghiệm của khách hàng. Cuộc thử nghiệm đã chứng minh được sự có ích và tính thực tiễn của hệ thống và đã chứng tỏ sự thành công của IBM. Dựa vào kết quả đó, IBM bắt đầu phát triển các sản phẩm thương mại bổ sung thêm SQL dựa trên nguyên mẫu Hệ thống R bao gồm System/38 (Hệ thống/38) (được công bố năm 1978 và được thương mại hóa tháng 8 năm 1979, SQL/DS (được giới thiệu vào năm 1981) và DB2 (năm 1983). Nhóm sinh viên thực hiện: 1 2 Lớp M14CQTE02-B
  • 3. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu Cùng thời điểm đó Relational Software, Inc. (bây giờ là Oracle Corporation) đã nhận thấy tiềm năng của những khái niệm được Chamberlin and Boyce đưa ra và đã phát triển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêng của họ cho Navy, CIA và các tổ chức khác. Vào mùa hè năm 1979, Relational Software, Inc. giới thiệu Oracle V2 (Phiên bản 2), phiên bản thương mại đầu tiên hỗ trợ SQL cho máy tính VAX. Oracle thường xuyên được nhắc tới một cách không nghiêm túc vì đã tấn công thị trường của IBM trong 2 năm, nhưng việc táo bạo nhất trong quan hệ công chúng của họ là tấn công một phiên bản của IBM System/38 chỉ trong có vài tuần. Tương lai của Oracle đã được đảm bảo vì có sự quan tâm đáng kể của công chúng sau đó mới phát triển, trong khi đã có nhiều phiên bản của các nhà cung cấp khác. IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ vì ban đầu nó không dùng được trong môi trường Unix và máy tính lớn (Mainframe), và họ sợ nó sẽ làm giảm lợi nhuận thu được từ việc bán các sản phẩm cơ sở dữ liệu IMS (những sản phẩm dựa trên mô hình cơ sở dữ liệu định hướng chứ không phải cơ sở dữ liệu quan hệ) của mình. Trong lúc đó, Oracle vẫn đang phát triển, IBM đang phát triển System/38, được mong đợi là hệ cơ sở dữ liệu quan hệ đầu tiên của họ. Với năng lực và thiết kế tiên tiến của nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống Unix và máy tính lớn. SQL được thừa nhận là tiêu chuẩn của ANSI (American National Standards Institute) vào năm 1986 và ISO (International Organization for Standardization) năm 1987. ANSI đã công bố cách phát âm chính thức của SQL là "ess kyoo ell", nhưng rất nhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel. Một quan niệm sai khác cũng được phổ biến rộng rãi đó là "SQL" là chữ viết tắt của "Structured Query Language" (Ngôn ngữ truy vấn có cấu trúc). Thực tế không phải như vậy. Năm Tên Tên khác Chú giải 1986 SQL-86 SQL-87 Được công bố đầu tiên bởi ANSI. Được phê chuẩn bởi ISO năm 1987. 1989 SQL-89 Thay đổi nhỏ. 1992 SQL-92 SQL2 Thay đổi lớn. 1999 SQL:1999 SQL3 2003 SQL:2003 1.1.2 SQL chia thành nhiều nhóm: Nhóm sinh viên thực hiện: 1 3 Lớp M14CQTE02-B
  • 4. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu Lấy dữ liệu Thao tác sử dụng nhiều nhất trong một cơ sở dữ liệu dựa trên giao dịch là thao tác lấy dữ liệu. • SELECT được sử dụng để lấy dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ liệu, SELECT là lệnh thường dùng nhất của ngôn ngữ sửa đổi dữ liệu (tạm dịch) (tiếng Anh: Data Manipulation Language - DML). Trong việc tạo ra câu truy vấn SELECT, người sử dụng phải đưa ra mô tả cho những dữ liệu mình muốn lấy ra chứ không chỉ ra những hành động vật lý nào bắt buộc phải thực hiện để lấy ra kết quả đó. Hệ thống cơ sở dữ liệu, hay chính xác hơn là bộ tối ưu hóa câu truy vấn sẽ dịch từ câu truy vấn sang kế hoạch truy vấn tối ưu. • Những từ khóa liên quan tới SELECT bao gồm: • FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào, và các bảng đó quan hệ với nhau như thế nào. • WHERE dùng để xác định những bản ghi nào sẽ được lấy ra, hoặc áp dụng với GROUP BY. • GROUP BY dùng để kết hợp các bản ghi có những giá trị liên quan với nhau thành các phần tử của một tập hợp nhỏ hơn các bản ghi. • HAVING dùng để xác định những bản ghi nào, là kết quả từ từ khóa GROUP BY, sẽ được lấy ra. • ORDER BY dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo những cột nào. Ví dụ sau về việc sử dụng câu lệnh SELECT để lấy danh sách những cuốn sách có giá trị. Câu truy vấn này sẽ truy lục tất cả các bản ghi trong bảng books với giá trị của cột pricelớn hơn 100.00. Kết quả sẽ được sắp xếp theo thứ tự tăng dần của các giá trị trong cột title. Dấu (*) trong phần select list cho biết tất cả các cột của bảng books sẽ được lấy ra và thể hiện ở kết quả. SELECT * FROM books WHERE price > 100.00 ORDER BY title; Nhóm sinh viên thực hiện: 1 4 Lớp M14CQTE02-B
  • 5. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu Ví dụ sau giải thích cách liên kết nhiều bảng, tập hợp các bản ghi trong câu truy vấn SQL, nó sẽ trả về danh sách các cuốn sách và số tác giả của từng cuốn sách. SELECT books.title, count(*) AS Authors FROM books JOIN book_authors ON books.isbn = book_authors.isbn GROUP BY books.title; Kết quả của ví dụ trên giống như sau: Title Authors ---------------------- ------- SQL Examples and Guide 3 The Joy of SQL 1 How to use Wikipedia 2 Pitfalls of SQL 1 How SQL Saved my Dog 1 (Kí tự gạch chân "_" thường được sử dụng trong tên bảng và tên cột để phân cách các từ vì các kí tự khác có thể mâu thuẫn với cú pháp SQL. Ví dụ như, dấu "-" có thể được hiểu là dấu trừ.) Với điều kiện cột isbn là cột chung duy nhất của hai bảng và cột title chỉ tồn tại trong bảng books thì câu truy vấn trên có thể được viết lại theo mẫu sau: SELECT title, count(*) AS Authors FROM books NATURAL JOIN book_authors GROUP BY title; Tuy nhiên nhiều nhà cung cấp không hỗ trợ các thức này, hoặc nó yêu cầu một số quy ước về tên cột nào đó. Như vậy, câu truy vấn trên không được phổ biến. Sửa đổi dữ liệu Ngôn ngữ sửa đổi dữ liệu (Data Manipulation Language - DML), là một phần nhỏ của ngôn ngữ, có những thành phần tiêu chuẩn dùng để thêm, cập nhật và xóa dữ liệu delete data. • INSERT dùng để thêm dữ liệu vào một bảng đã tồn tại. Nhóm sinh viên thực hiện: 1 5 Lớp M14CQTE02-B
  • 6. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu • UPDATE dùng để thay đổi giá trị của một tập hợp các bản ghi trong một bảng. • MERGE dùng để kết hợp dữ liệu của nhiều bảng. Nó được dùng như việc kết hợp giữa hai phần tử INSERT và UPDATE. • DELETE xóa những bản ghi tồn tại trong một bảng. • TRUNCATE Xóa toàn bộ dữ liệu trong một bảng (không phải là tiêu chuẩn, nhưng là một lệnh SQL phổ biến). Giao dịch Giao dịch, nếu có, dùng để bao bọc các thao tác sửa đổi dữ liệu. Giao dịch (transaction) là một tập các thao tác đi cùng với nhau. Trên môi trường khách/chủ (client/server) hay môi trường cơ sở dữ liệu phân tán việc đảm bảo tính đúng đắn của dữ liệu rất quan trọng. Ví dụ: Một người rút tiền khỏi tài khoản tại ngân hàng, thì tại thời điểm rút tiền, thao tác rút tiền khác phải bị từ chối. Các thao tác trên tài khoản đó có thể hình dung như sau: Thao tác 1: <Mở khóa tài khoản> Thao tác 2: <Thực hiện thao tác rút tiền> Thao tác 3: <Khóa tài khoản> Để đảm bảo các thao tác 1-3 phải đi liền với nhau thì phải đưa vào trong một transaction <START TRANSACTION> Thao tác 1: <Mở khóa tài khoản> Thao tác 2: <Thực hiện thao tác rút tiền> Thao tác 3: <Khóa tài khoản> <END TRANSACTION> Các lệnh liên quan đến giao dịch: • BEGIN WORK (hoặc START TRANSACTION, tùy theo các ngôn ngữ SQL khác nhau) được sử dụng để đánh dấu việc bắt đầu một giao dịch dữ liệu (giao dịch dữ liệu đó có kết thúc hoàn toàn hay không). • COMMIT dùng để lưu lại những thay đổi trong giao dịch. • ROLLBACK dùng để quay lại thời điểm sử dụng lệnh COMMIT cuối cùng. Nhóm sinh viên thực hiện: 1 6 Lớp M14CQTE02-B
  • 7. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu SQL Injection Là một cách chèn đoạn lệnh SQL vào để thực hiện việc vượt qua sự kiểm tra của mệnh đề WHERE. Ví dụ một câu truy vấn lấy tài khoản người dùng: SELECT ID, NAME FROM USERS WHERE USERNAME='JONH' AND PASSWORD='1234' Câu trên chỉ có thể đúng nếu thỏa cặp USERNAME và PASSWORD tồn tại trong cơ sở dữ liệu. Câu trên có thể viết injection như sau: thay cụm từ JONH thành: ' OR 1=1 or''=' (lưu ý ký tự nháy đơn ') khi đó câu SQL sẽ trở thành: SELECT ID, NAME FROM USERS WHERE USERNAME='' OR 1=1 or''='' AND PASSWORD='1234' đoạn mã này hoạt động với bất cứ password nào. Việc phòng chống SQL Injection cũng không khó, chỉ cần chú ý khi viết là có thể chống lại được. Định nghĩa dữ liệu Ngôn ngữ định nghĩa dữ liệu (Data Definition Language, viết tắt là DDL) là một trong những phần chính của ngôn ngữ truy vấn. Các câu lệnh này dùng để định nghĩa cấu trúc củacơ sở dữ liệu, bao gồm định nghĩa các hàng, các cột, các bảng dữ liệu, các chỉ số và một số thuộc tính khác liên quan đến cơ sở dữ liệu như vị trí của file. Các câu lệnh ngôn ngữ định nghĩa dữ liệu là thành phần chính trong các hệ quản lý dữ liệu và có sự khác biệt rất nhiều giữa các ngôn ngữ truy vấn trên các hệ khác nhau. 1.1.3 SQL Injection SQL Injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp (không được người phát triển ứng dụng lường trước). Hậu quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh, … Do có toàn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase. Nhóm sinh viên thực hiện: 1 7 Lớp M14CQTE02-B
  • 8. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu Các dạng lỗi thường gặp Không kiểm tra ký tự thoát truy vấn Đây là dạng lỗi SQL injection xảy ra khi thiếu đoạn mã kiểm tra dữ liệu đầu vào trong câu truy vấn SQL. Kết quả là người dùng cuối có thể thực hiện một số truy vấn không mong muốn đối với cơ sở dữ liệu của ứng dụng. Dòng mã sau sẽ minh họa lỗi này: statement = "SELECT * FROM users WHERE name = '" + userName + "';" Câu lệnh này được thiết kế để trả về các bản ghi tên người dùng cụ thể từ bảng những người dùng. Tuy nhiên, nếu biến "userName" được nhập chính xác theo một cách nào đó bởi người dùng ác ý, nó có thể trở thành một câu truy vấn SQL với mục đích khác hẳn so với mong muốn của tác giả đoạn mã trên. Ví dụ, ta nhập vào giá trị của biến userName như sau: a' or 't'='t Khiến câu truy vấn có thể được hiểu như sau: SELECT * FROM users WHERE name = 'a' or 't'='t'; Nhóm sinh viên thực hiện: 1 8 Lớp M14CQTE02-B
  • 9. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu Nếu đoạn mã trên được sử dụng trong một thủ tục xác thực thì ví dụ trên có thể được sử dụng để bắt buộc lựa chọn một tên người dùng hợp lệ bởi 't'='t' luôn đúng. Trong khi hầu hết các SQL server cho phép thực hiện nhiều truy vấn cùng lúc chỉ với một lần gọi, tuy nhiên một số SQL API như mysql_query của php lại không cho phép điều đó vì lý do bảo mật. Điều này chỉ ngăn cản tin tặc tấn công bằng cách sử dụng các câu lệnh riêng rẽ mà không ngăn cản tin tặc thay đổi các từ trong cú pháp truy vấn. Các giá trị của biến "userName" trong câu truy vấn dưới đây sẽ gây ra việc xoá những người dùng từ bảng người dùng cũng tương tự như việc xóa tất cả các dữ liệu được từ bảng dữ liệu (về bản chất là tiết lộ các thông tin của mọi người dùng), ví dụ này minh họa bằng một API cho phép thực hiện nhiều truy vấn cùng lúc: a';DROP TABLE users; SELECT * FROM data WHERE 't' = 't Điều này đưa tới cú pháp cuối cùng của câu truy vấn trên như sau: SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM data WHERE 't' = 't'; Xử lý không đúng kiểu Lỗi SQL injection dạng này thường xảy ra do lập trình viên hay người dùng định nghĩa đầu vào dữ liệu không rõ ràng hoặc thiếu bước kiểm tra và lọc kiểu dữ liệu đầu vào. Điều này có thể xảy ra khi một trường số được sử dụng trong truy vấn SQL nhưng lập trình viên lại thiếu bước kiểm tra dữ liệu đầu vào để xác minh kiểu của dữ liệu mà người dùng nhập vào có phải là số hay không. Ví dụ như sau: statement:= "SELECT * FROM data WHERE id = " + a_variable + ";" Ta có thể nhận thấy một cách rõ ràng ý định của tác giả đoạn mã trên là nhập vào một số tương ứng với trường id - trường số. Tuy nhiên, người dùng cuối, thay vì nhập vào một số, họ có thể nhập vào một chuỗi ký tự, và do vậy có thể trở thành một câu truy vấn SQL hoàn chỉnh mới mà bỏ qua ký tự thoát. Ví dụ, ta thiết lập giá trị của biến a_variable là: 1;DROP TABLE users khi đó, nó sẽ thực hiện thao tác xóa người dùng có id tương ứng khỏi cơ sở dữ liệu, vì câu truy vấn hoàn chỉnh đã được hiểu là: SELECT * FROM data WHERE id=1;DROP TABLE users; Lỗi bảo mật bên trong máy chủ cơ sở dữ liệu Đôi khi lỗ hổng có thể tồn tại chính trong phần mềm máy chủ cơ sở dữ liệu, như là trường hợp hàm mysql_real_escape_string() của các máy chủ MySQL. Điều này sẽ cho phép kẻ tấn công có thể thực hiện một cuộc tấn công SQL injection thành công dựa trên Nhóm sinh viên thực hiện: 1 9 Lớp M14CQTE02-B
  • 10. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu những ký tự Unicode không thông thường ngay cả khi đầu nhập vào đang được thoát. Chữ đậm Blind SQL injection Lỗi SQL injection dạng này là dạng lỗi tồn tại ngay trong ứng dụng web nhưng hậu quả của chúng lại không hiển thị trực quan cho những kẻ tấn công. Nó có thể gây ra sự sai khác khi hiển thị nội dung của một trang chứa lỗi bảo mật này, hậu quả của sự tấn công SQL injection dạng này khiến cho lập trình viên hay người dùng phải mất rất nhiều thời gian để phục hồi chính xác từng bit dữ liệu. Những kẻ tấn công còn có thể sử dụng một số công cụ để dò tìm lỗi dạng này và tấn công với những thông tin đã được thiết lập sẵn. Thay đổi giá trị điều kiện truy vấn Dạng lỗi này khiến cho kẻ tấn công có thể thay đổi giá trị điều kiện trong câu truy vấn, làm sai lệch sự hiển thị của một ứng dụng chứa lỗi này. SELECT booktitle from booklist where bookId = 'OOk14cd' AND 1=1; Sẽ hiển thị một trang một cách bình thường, trong khi: SELECT booktitle from booklist where bookId = 'OOk14cd' AND 1=2; sẽ hiển thị một nội dung khác, hoặc không hiển thị gì nếu ứng dụng web có chứa lỗi SQL injection dạng này. Lỗ hổng dạng này còn cho phép tin tặc không chỉ gây ảnh hưởng tới bảng hay dữ liệu hiện tại mà còn ảnh hưởng tới những dữ liệu hay bảng khác phụ thuộc vào nội dung của dữ liệu hay bảng hiện tại. Điều kiện lỗi Lỗi SQL injection dạng này dẫn tới việc buộc cơ sở dữ liệu chỉ được phép đánh giá khi mà giá trị của câu lệnh WHERE là đúng. Ví dụ: SELECT 1/0 from users where username='Ralph'; Phép chia cho 0 chỉ được đánh giá là lỗi khi mà người dùng có tên "Ralph" tồn tại trong cơ sở dữ liệu. Thời gian trễ Lỗi SQL injection dạng này tồn tại khi thời gian xử lý của một hay nhiều truy vấn SQL phụ thuộc vào dữ liệu logic được nhập vào hoặc quá trình xử lý truy vấn của SQL engine cần nhiều thời gian. Tin tặc có thể sử dụng lỗi SQL injection dạng này để xác định thời gian chính xác mà trang cần tải khi giá trị nhập vào là đúng. Nhóm sinh viên thực hiện: 1 10 Lớp M14CQTE02- B
  • 11. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu 1.2Mức độ thiệt hại Thực chất, nguồn gốc của quá trình tấn công SQL Injection là sự cẩu thả trong quy trình mã hóa ứng dụng, mật khẩu ứng dụng nhưng vẫn có thể ngăn chặn được, tuy nhiên mức độ thiệt hại là không thể lường trước được và phụ thuộc vào quy mô của từng database. Trong quá trình một ứng dụng web bất kỳ có thể giao tiếp với backen database thì sẽ phải cung cấp thông tin đăng nhập tới một cơ sở dữ liệu (quy trình này khác hẳn so với lúc người dùng tiến hành đăng nhập vào website hay form login). Phụ thuộc vào mức phân quyền tương ứng mà ứng dụng web yêu cầu, tài khoản trong cơ sở dữ liệu có thể sử dụng được bất kỳ quyền chỉnh sửa nào, từ việc đơn giản như đọc, ghi đơn thuần trên những bảng có sẵn cho tới mức quyền đầy đủ. Chúng ta thấy bằng việc nhập tên tài khoản (ví dụ “youruser”, “admin’--” hoặc bất kỳ) thì hoàn toàn có thể đăng nhập trực tiếp vào database mà không cần biết password. Khi ở bên trong hệ thống sẽ không thể biết được tài khoản đó bình thường hoặc có đầy đủ quyền tương ứng. Về mặt bản chất, việc phân quyền của database không cung cấp quyền chính xác tương ứng và an toàn trong quá trình này, bởi vì thông thường một website ít nhất phải có quyền đọc hoặc ghi tới cơ sở dữ liệu tương ứng. Giải sử rằng hệ thống website của chúng ta có đầy đủ quyền truy cập, bao gồm việc xóa dữ liệu, thêm hoặc xóa bảng, tạo mới tài khoản… và trên thực tế, có khá nhiều chương trình nếu muốn cài đặt và sử dụng thì phải được phân quyền ở mức cao nhất, do vậy bạn phải cẩn thận khi thực hiện việc gán quyền. Để minh họa mức ộ thiệt hại có thể xảy ra trong tình huống này, chúng ta sẽ dựa vào hình vẽ trên, và nhập phần thông tin sau vào trường Username: "Robert'; DROP TABLE Users;--" Chỉ với vài sự thay đổi nho nhỏ, câu lênh query sẽ trở thành: Nhóm sinh viên thực hiện: 1 11 Lớp M14CQTE02- B Tải bản FULL (file word 22 trang): bit.ly/2Ywib4t Dự phòng: fb.com/KhoTaiLieuAZ
  • 12. Báo cáo môn: An toàn Thông tin Nâng cao GVHD: TS. Hoàng Xuân Dậu SELECT UserID FROM Users WHERE UserName='Robert'; DROP TABLE Users;--' AND Password='wrongpass' Lưu ý rằng dấu phẩy trong MySQL được sử dụng để kết thúc mệnh đề cũ và bắt đầu một mệnh đề mới. Dòng lênh trên sẽ được database thực hiện thành: SELECT UserID FROM Users WHERE UserName='Robert' DROP TABLE Users Chỉ đơn giản như vậy chúng ta đã thực hiện thành công một pha tấn công SQLI nho nhỏ với mục đích chính là xóa toàn bộ bảng dữ liệu Users. 1.3Kết luận Trong chương này chúng ta được giới thiệu khái quát về SQL, SQL Injection các lỗi thường gặp và mức độ thiệt hại trong tấn công SQL Injection. Nhóm sinh viên thực hiện: 1 12 Lớp M14CQTE02- B 4047596