SQL Injection là một trong những hình thức tấn công nguy hiểm nhất trên các trang web nguy hiểm hiện nay. Nó gây ra thiệt hại cho các trang web của công ty. Vậy SQL tiêm là gì? SQL tiêm nguy hiểm đến mức nào? Làm thế nào để tấn công SQL vào trang web và họ đang tấn công trang web ở đâu? Làm thế nào để ngăn ngừa và chữa khỏi lỗ hổng trong tiêm SQL? Mạng đa chiều sẽ giúp bạn tìm câu trả lời cho các câu hỏi trên thông qua bài viết sau.
SQL Incun hoặc SQLI là một hình thức tấn công mạng của cơ sở dữ liệu trong các bộ phận phụ trợ ứng dụng web bằng cách sử dụng các lỗ hổng trong trang web để vào kênh.
Ở vị trí của thông tin nhạy cảm và có giá trị nhất trên trang web này, kẻ tấn công sẽ đánh cắp hoặc làm phiền dữ liệu để cản trở hoạt động của ứng dụng. Ngay cả trong trường hợp tồi tệ hơn, những người xấu này có thể truy cập vào quản lý máy chủ cơ sở dữ liệu.
Tiêm các cuộc tấn công SQL có thể dẫn đến nhiều hậu quả, chẳng hạn như:
Theo yêu cầu của người dùng dựa trên người dùng gửi lệnh SQL độc hại đến máy chủ cơ sở dữ liệu, cuộc tấn công SQL được thực hiện.
Tất cả các kênh đầu vào có thể được sử dụng để xâm nhập và thực thi các lệnh độc hại, bao gồm <i -i input> thẻ, chuỗi truy vấn (chuỗi truy vấn), cookie và tệp.
Giả sử: Bạn có một biểu mẫu đăng nhập với 2 đầu vào. Chỉ cần điền vào tên người dùng/email và mật khẩu để đăng nhập.
Người dùng sẽ nhập thông tin đăng nhập của mình, sau đó nhấp vào nút Đăng nhập (Đăng nhập). Thông tin sẽ được gửi lại cho máy chủ trang web và sử dụng nó với lệnh SQL (ví dụ: PHP trông giống như ảnh bên dưới).
Lệnh này sẽ được gửi đến máy chủ cơ sở dữ liệu. Kết quả của tập dữ liệu sẽ xác định xem tên người dùng và mật khẩu có tương ứng với tài khoản người dùng hiệu quả hay không.
Ví dụ:
Đăng nhập người dùng sử dụng tên người dùng 123456 làm mật khẩu sẽ được truyền theo lệnh sau:
Vì vậy, điều gì sẽ xảy ra nếu người dùng quyết định cố gắng sử dụng tên và mật khẩu khác?
Ví dụ: John 'hoặc 1 = 1; -kết quả sẽ như sau:
Vào thời điểm đó, kết quả trả lại là thông tin đăng nhập của người dùng mà không có mật khẩu chính xác, được gọi là "John". Đây là hình thức đơn giản nhất của cuộc tấn công tiêm SQL. Chỉ có một vài lời nhắc rằng kẻ tấn công có thể thêm một tài khoản mới để xóa hoặc sửa đổi thông tin về tài khoản người dùng hiện có.
Trong cùng một cuộc tấn công, tin tặc có thể được sử dụng để đánh cắp hồ sơ. Nếu nó không giới hạn ở số lần của khách truy cập hoặc thay đổi nội dung tệp, nó có thể được sử dụng để đánh cắp hồ sơ.
Trong các trường hợp nghiêm trọng hơn, khi truy cập máy chủ cơ sở dữ liệu và thực hiện nó thông qua tài khoản quản lý như MySQL "SA" trong máy chủ MS SQL, những kẻ xấu có thể nhập toán tử máy chủ hệ thống và sử dụng các lỗ chỉ số SQL để tạo nhiều máy chủ tài khoản người dùng Đồng thời. Kích hoạt chức năng máy tính để bàn từ xa và cài đặt thư mục chia sẻ SMB. Ngoài tất cả các nội dung của bộ lưu trữ, kẻ tấn công cũng có thể tải xuống tác động của phần mềm độc hại trên hệ thống.
Những kẻ tấn công SQL có thể thâm nhập vào trang web hoặc hệ thống với nhiều dòng khác nhau. Bạn có thể gặp một số bộ phận tấn công dễ dàng:
Trong tất cả các thí nghiệm chống lại các cuộc tấn công, các giám đốc điều hành không chỉ kiểm tra một hoặc nhiều trường, bởi vì không phải tất cả các trường sẽ được bảo vệ. Do đó, bạn cần thực hiện tất cả các lĩnh vực của trang web trong quá trình kiểm tra.
Đừng rời đi trước khi bị tấn công, bạn nên chuẩn bị cho cuộc tấn công tiêm SQL. Dưới đây là một số phương pháp tự bảo vệ của các cuộc tấn công được tiêm SQL. Bạn nên tham khảo:
Quy tắc đầu tiên nhập vào đầu vào của người dùng là không tin tưởng và yêu cầu xác minh. Điều này có nghĩa là trừ khi có bằng chứng, tất cả người dùng đầu vào phải được coi là độc hại.
Điều này không chỉ được thực hiện cho hộp đầu vào đơn giản (như vùng văn bản), mà còn áp dụng cho tất cả các nội dung khác, chẳng hạn như ẩn đầu vào, tham số truy vấn, tệp tải lên, cookie, ...
Trình duyệt trình duyệt không cho phép người dùng sử dụng đầu vào để thao tác, điều đó không có nghĩa là nó không thể là giả. Các công cụ đơn giản như Burp Suite cho phép người dùng nắm bắt các yêu cầu HTTP và thực hiện bất kỳ sửa đổi nào trước khi gửi chúng đến máy chủ, bao gồm các giá trị ẩn. Nếu bạn có nghĩa là bạn có thể thông minh và sử dụng dữ liệu 64 dữ liệu mã hóa, thì nó vẫn có thể được giải mã, sửa đổi và mã hóa bởi những kẻ tấn công có kinh nghiệm.
Nó được xác nhận rằng nó sẽ giúp đảm bảo rằng người dùng đầu vào có hiệu quả và vô hiệu hóa bất kỳ kênh độc hại tiềm năng nào có thể được nhúng trong chuỗi.
Ví dụ: trong PHP, bạn có thể sử dụng lệnh mySQL Real Escape () String () để thoát khỏi các ký tự có thể thay đổi bản chất của lệnh SQL. Các hình ảnh sau đây sẽ được thay đổi thành mã đăng nhập trước đó.
Những sửa đổi đơn giản này sẽ bảo vệ mã khỏi cuộc tấn công tiêm SQL bằng cách thêm một ký tự thoát trước nhấp chuột, điều này đã bị kẻ tấn công tấn công.
Nếu bạn thêm các chức năng thực sự ở khách hàng, nó được xác nhận rằng nó sẽ rất tốt. Tuy nhiên, bạn không nên dựa vào nó như một biện pháp phòng thủ chống lại SQL tiêm. Mặc dù chức năng của khách hàng rất khó gửi dữ liệu đầu vào nguy hiểm đến máy chủ của bạn, nhưng các tính năng này dễ dàng bị phá vỡ bởi trình duyệt hoặc các công cụ khác. Do đó, bạn cần thêm OK vào máy chủ.
Có thể giúp bạn loại bỏ một lựa chọn tốt hơn khác cho các cuộc tấn công tiêm SQL để sử dụng các câu lệnh tham số. Các tham số được xác định bằng cách thêm giá đỡ tên vào lệnh SQL và sau đó được thay thế bằng đầu vào của người dùng.
Khi bạn thường không xác định kiểu dữ liệu của các biến, đây cũng là một cách tốt để tránh các cuộc tấn công tiêm SQL vào ngôn ngữ PHP. Định nghĩa rõ ràng về loại đầu vào sẽ giúp loại bỏ dữ liệu có thể mắc lỗi. Do đó, nếu bạn muốn người dùng nhập "INT" cho tham số "Tuổi", bạn có thể đảm bảo bảo mật đầu vào của việc sử dụng mã $ Age = (int) $ _ Post ['Age'];
Tuy nhiên, đoạn này giúp xác nhận loại đầu vào, chứ không phải phạm vi của túi bó. Bạn sẽ phải chạy mã khác để đảm bảo rằng người dùng sẽ không nhập dữ liệu không hợp lệ. Ngoài ra, một chuyển động tốt hơn là tránh sử dụng nhấp chuột trong câu lệnh SQL khi chuỗi không được sử dụng.
Mặc dù trang web có cài đặt bảo mật cao, bạn vẫn nên chuẩn bị nhập SQL. Có một số biện pháp ở đây để giúp bạn đối mặt với những trường hợp tồi tệ nhất này.
Là một số giải mã được chia sẻ ở trên về tất cả các kiến thức cơ bản về tiêm SQL? Mạng đa chiều. Chúng tôi sẽ cập nhật kiến thức về các cuộc tấn công khác và thông tin chính xác về chúng. Hãy chú ý đến trang web của chúng tôi để tìm hiểu thêm.
Xem thêm: