Tải bản đầy đủ - 0 (trang)
5 CHÈN CÂU TRUY VẤN SQL (Injection SQL)

5 CHÈN CÂU TRUY VẤN SQL (Injection SQL)

Tải bản đầy đủ - 0trang

Hình 2.9: Một site khác cũng lỗi SQL Injection.

Mọi thơng báo lỗi đều được Hacker ghi nhận và sẽ tìm cách vượt qua những lỗi đó để

vào được bên trong của hệ thống.





Tấn công SQL Injection vượt form đăng nhập đơn giản

Thường khi chúng ta vào các trang web bán hàng trực tuyến trên mạng là các trang

web có kết nối đến cơ sở dữ liệu của trang web. Khi người dùng đăng nhập thành cơng vào

trang web thì có thể mua sắm online và thanh toán trực tuyến với điều kiện là trong tài

khoản của bạn vẫn còn tiền hoặc có thể thơng qua tài khoản ngân hàng của bạn. Nói tóm lại

là rất là tiện lợi khơng cần phải đi ra khỏi nhà hay đến những siêu thị nữa mà vẫn có những

món hàng ưu thích được chuyển đến tận nhà. Hacker ngửi thấy mùi tiền trên nhưng trang

web bán hàng đấy hoặc các trang ngân hàng, bây giờ nhiệm vụ của Hacker là tấn công vào

hệ thống trang web đấy để có được những tài khoản của khách hàng hay nhằm mục đích

khác. Với tấn cơng SQL Injection vượt qua form đăng nhập được coi là cơ bản nhất để hiểu

thêm coi hình minh họa bên dưới.



Hình 2.10: Tấn cơng SQL Injection.

Thường thì các trang web liên quan đến vấn đề bảo mật thì sẽ bắt người dùng đăng

nhập nếu người dùng đăng nhập đúng tài khoản của mình thì sẽ được vào đúng cơ sở dữ liệu

của mình nhưng Hacker thì khơng có tài khoản. Vậy Hacker sẽ làm gì để lot qua được hệ

thống đăng nhập. Chúng ta xem đoạn code bên dưới là viết trong form đăng nhập trên.

SQLQuery=”SELECT csdlUsername FROM User WHERE csdlUsername= ‘’’ &

strUsername & “’ AND Password= ‘’’ & csdlPassword & ‘‘’ ”

flag = GetQueryResult (SQLQuery)

if flag = “” then

check=FALSE

else

check=TRUE

end

...

Đoạn mã trên kiểm tra chuỗi nhập Username và Password. Nếu nhập đúng tài khoản

và mật khẩu thì sẽ check=true và ngược lại là check=false. Hacker thì khơng có tài

khoản rồi nhưng lại phát hiện lỗ hổng trong forum đăng nhập và anh ta gõ username và

password là ‘ OR ‘’=’ như hình 3.10. Thì đoạn code trong form kết hợp với chuối Hacker

nhập vào sẽ thành như thế này.

SELECT csdlUsername FROM User WHERE csdlUername= ‘’ OR ‘’=‘’ AND

Password ‘’ OR ‘’=‘’

Phân tích câu này thì:





csdlUsername ‘’: khơng nhập nhập gì thì FALSE











‘’=‘’: vế này thì TRUE

Password ‘’: khơng nhập thì sẽ khơng có trong csdlpassword rồi FALSE

‘’=‘’ vế này thì TRUE

Vậy ta xét lại như sau: (F or T) and (F or T) => T and T. Với cấu trúc trên thì Hacker



hồn tồn đột nhập vào hệ thống mà khơng cần bất kì tài khoản nào. Sau khi đăng nhập

thành cơng thì hệ thống sẽ chuyển đến tài khoản đầu tiên trong cơ sở dữ liệu của hệ thống.

Việc tiếp theo của Hacker có thể là khám phá tài khoản này hoặc là sẽ tiếp tục tấn công sang

các tài khoản khác hoặc sẽ nhòm ngó đến tài khoản có quyền nhất trong hệ thống chính là

Admin.

Đấy chỉ là những cái cơ bản nhất của SQL Injection, nó còn có thể tấn công với câu

lệnh như SELECT, HAVING, INSERT,...

2.5.2 Một số biện pháp bảo mật khắc phục

Việc tấn công SQL Injection dựa vào những câu thơng báo lỗi do đó việc phòng chống

hữu hiệu nhất là khơng cho hiển thị những thông điệp lỗi hệ thống cho người dùng thay vào

đó bằng một thơng báo lỗi do người lập trình hay quản trị viên phát triển thiết kế mỗi khi lỗi

xảy ra trên ứng dụng.

Kiểm tra kỹ giá trị nhập vào của người dùng, những kí tự đặt biệt,...

Hãy loại bỏ các kí tự “, ’, ”, /, \, ;, “ và các từ khóa như NULL, CR, LF,...

Sử dụng phương thức POST và mã hóa thanh URL của trình duyệt máy khách.

Cô lập máy chủ CSDL và máy chủ WEB hay nói cách khách là máy chủ CSDL khơng

được cài trên máy chủ WEB để đảm bảo tính bảo mật.

Nên sử dụng tài khoản với đặc quyền thấp để truy xuất vào CSDL. Có nghĩa là khơng

phải nhất thiết khi nào cũng phải xài đến quyền Admin hay Root mà nên phân quyền cho

các User đúng với mục đích của công việc, đúng với ý đồ của người quản trị viên.

2.6 CHÈN MÃ LỆNH THỰC THI TRÊN TRÌNH DUYỆT NẠN NHÂN (Cross Site

Scripting)

2.6.1 Kỹ thuật tấn công

Kỹ thuật tấn công Cross Site Scripting (được viết tắt là XSS) là phương pháp tấn công

băng cách chèn thêm những đoạn mã lệnh có khả năng đánh cắp hay thiết lập được những

thông tin quan trọng như Cookie, mật khẩu,... vào nguồn ứng dụng web để từ đó chúng

được chạy như là một phần của ứng dụng WEB và có chức năng cung cấp hoặc thực hiện

những điều Hacker muốn.



Phương pháp này không nhằm vào máy chủ của hệ thống mà chủ yếu tấn cơng trên

chính máy người sử dụng. Hacker sẽ lợi dụng sự kiểm tra không chặt chẽ từ ứng dụng và

hiểu biết hạn chế của người dùng cũng như biết đánh vào sự tò của họ dẫn dến người dùng

bị mất thông tin một cách dễ dàng.

Kỹ thuật tấn công này là một trong những kỹ thuật tấn công phổ biến nhất của các ứng

dụng WEB và mối de dọa của chúng đối với người sử dụng ngày càng lớn.





Hacker tấn công thông máy chủ ứng dụng WEB

Hacker dùng các công cụ quét lỗ hổng XSS cho các máy chủ ứng dụng WEB. Vào một

ngày đẹp trời, Hacker cũng đã tìm thấy một máy chủ ứng dụng WEB bị lỗi XSS và thế là

Hacker tải các Scrip (kịch bản) lên máy chủ WEB và thông qua máy chủ WEB các máy

khách lên trang web của ứng dụng WEB ấy có thể sẽ bị mất thơng tin cá nhân do Hacker đã

lấy, hình sau sẽ mơ tả q trình thực hiện.



Hình 2.11: Ngun lý hoạt động của XSS.

Hình 3.11 có thể hiểu các bước như sau: người dùng truy vấn một ứng dụng WEB đến

máy chủ thì máy chủ liền phản hồi các thông tin cần thiết từ máy khách yêu cầu. Nhưng ứng

dụng WEB đấy lại bị lỗi XSS vậy là Hacker thơng qua lỗ hỗng đấy có thể đánh cắp thơng

tin người dùng trong hình trên thì Hacker chỉ chèn một thông điệp đưa ra cảnh báo lỗi. Với

hình thức tấn cơng như trên Hacker hồn tồn có thể tấn cơng các ứng dụng WEB như viết

blog, bình luận bài trong forum hay các scrip độc hại trên mạng xã hội,...



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

5 CHÈN CÂU TRUY VẤN SQL (Injection SQL)

Tải bản đầy đủ ngay(0 tr)

×