Tải bản đầy đủ (.pptx) (29 trang)

Chapter 4 SQL Injection

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.78 MB, 29 trang )

SQL Injection


Brief Tutorial of SQL


Log in to MySQL: We will use MySQL database, which is an open-source relational database management
system. We can log in using the following command:



Create a Database: Inside MySQL, we can create multiple databases. “SHOW DATABSES” command can be
used to list existing databases. We will create a new database called dbtest:


SQL Tutorial: Create a Table


A relational database organizes its data using tables. Let us create a table called employee with seven
attributes (i.e. columns) for the database “dbtest”


SQL Tutorial: Insert a Row


We can use the INSERT INTO statement to insert a new record into a table :



Here, we insert a record into the “employee” table.




We do not specify a value of the ID column, as it will be automatically set by the database .


SQL Tutorial: SELECT Statement



The SELECT statement is the most common operation on databases
It retrieves information from a database
Asks the database for all its
records, including all the
columns

Asks the database only for
Name, EID and Salary
columns


SQL Tutorial: WHERE Clause



It is uncommon for a SQL query to retrieve all records in a database.
WHERE clause is used to set conditions for several types of SQL statements including SELECT, UPDATE,
DELETE etc.






The above SQL statement only reflects the rows for which the predicate in the WHERE clause is TRUE.
The predicate is a logical expression; multiple predicates can be combined using keywords AND and OR.
Lets look at an example in the next slide.


SQL Tutorial: WHERE Clause



The first query returns a record that has EID5001 in EID field
The second query returns the records that satisfy either EID=‘EID5001’ or Name=‘David’


SQL Tutorial: WHERE Clause


If the condition is always True, then all the rows are affected by the SQL statement



This 1=1 predicate looks quite useless in real queries, but it will become useful in SQL Injection attacks


SQL Tutorial: UPDATE Statement


We can use the UPDATE Statement to modify an existing record



SQL Tutorial: Comments
MySQL supports three comment styles





Text from the # character to the end of line is treated as a comment
Text from the “--” to the end of line is treated as a comment.
Similar to C language, text between /* and */ is treated as a comment


Tương tác với Database trong ứng dụng Web



Một ứng dụng Web thông thường bao gồm 3 thành phần chính:


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 lập trình trong
việc kiểm tra dữ liệu nhập đầu vào 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.

Hậu quả của nó rất nguy hiểm vì nó cho phép những kẻ tấn công có thể thực hiện các thao

tác xem, 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



SQL Injection
Một số kiểu tấn công SQL injection

Dạng 1: ByPass Login
 Là kiểu tấn công mà attacker có thể vượt qua những sự chứng thực nhờ lỗi khi dùng
các câu lệnh truy vấn SQL thao tác trên cơ sở dữ liệu của ứng dụng web.



Ví dụ:

count(*) from users where userName='john' and userPass=‘doe’



Khi người dùng Login vào với username: john
Password: ' or 1=1 - -


SQL Injection

Câu truy vấn sẽ là:
select count(*) from users where userName='john' and userPass='' or 1=1--”

Sự kiểm tra chỉ xảy ra ở Username = john với password là 1=1-- Như vậy attacker
có thể vượt qua sự kiểm tra một cách dể dàng.



SQL Injection



Các cụm từ khóa hay dùng để bypass với Username và password là:

1=1-' or' or
1=1-1=1-' or' or
1=1--

'a'='a
' or' or
'a'='a
'a'='a
' or' or
'a'='a

" or
1=1-" or
1=1-" or
1=1-" or
1=1--

" or
"a"="a
" or
"a"="a
" or
"a"="a
" or

"a"="a

1=1-oror
1=1-1=1-oror
1=1--

') or
('a'='a
') or
('a'='a
') or
('a'='a
') or
('a'='a


SQL Injection

 Dạng 2: Sử Dụng các thông báo lỗi của ODBC

Đây là cách tấn công mà attacker truy vấn csdl và thu được những thông tin dựa
vào sự thống báo lỗi của hệ thống.

Nhờ vào các “ Error message” mà attacker có thể xác định được cấu trúc và
những thông tin cần thiết trong Database


SQL Injection
Tác Hại của SQL Injection


Với kỷ thuật tấn công này attacker có biết được những thông tin nhạy cảm cũng
như có thể chiếm quyền quản trị của website.

Với những website buôn bán và ngân hàng thì SQL injection có tác hại rất lớn khi
attacker có thể chiếm đoạt tài khoản của khách hàng ..


SQL Injection



Cách phòng tránh:

Đừng tin những gì mà user nhập vào. Kiểm tra và loại bỏ các từ khóa nhạy cảm
như ( ’ ) . Giới hạn quyền của User.

Loại bỏ quyền Drop data.
Tạo ra các trang bẫy lỗi….


SSL & TLS
SSL

-

Secure Socket Layer
Được phát triển bởi Netscape
Được sử dụng rộng rãi trên Worl Wide Web trong việc xác thực và mã hóa thông tin giữa client và server
Được thiết kế như một giao thức riêng, có thể hỗ trợ cho nhiều ứng dụng
SSL không phải là giao thức đơn lẻ, tập hợp các thủ tục đã được chuẩn hóa để thực hiện các nhiệm vụ bảo mật

Các thuật toán dùng trong SSL: DES, 3DES, DSA, KEA, MD5, RSA, RC2 và RC4, SHA-1


Cấu trúc SSL
3 đặc điểm nổi bật



Các bên giao tiếp có thể xác thực lẫn nhau sử dụng mật
mã khóa chung



kết nối được mã hóa trong suốt trong suốt quá trình
truyền dữ liệu sau khi sự thiết lập quan hệ ban đầu và
thương lượng khóa session diễn ra.



Tính xác thực và toàn vẹn dữ liệu của lưu lượng dữ liệu
được bảo vệ


TLS







Transport Layer Security
Được pháp triển dựa trên SSL v3
Cung cấp sự riêng tư và toàn vẹn dữ liệu
Gồm 2 lớp: Record layer và Handshake layer

Bài tập SV: Lỗ hổng trong giao thức TLS/SSL (DROWN)


HTTPS


Hyper Text Tranfer Protocol over Secure Socket Layer


HTTPS



HTTPS sử dụng port 443



Sử dụng phương thức hashing để đảm bảo tính toàn vẹn dữ liệu giữa client và server
(Integrity)



Sử dụng Digital Certificate giúp client tin tưởng Website đang truy cập là đúng (không phải giả
mạo) (Authenticity)


Sử dụng phương thức mã hóa đảm bảo các thông điệp trao đổi giữa client và server đ ược b ảo
mật (confidentiality)


HTTPS



HTTPS (HTTP over SSL)

– Kết hợp HTTP và SSL/TSL bảo mật các giao tiếp giữa browser và server



https:// thay cho http://

– Port 443 thay cho 80



Mã hóa:

– URL, nội dung, cookies, HTTP header




Bài tập
Phương pháp tấn công HTTPS
(SSLStrip)



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×