9 loại tấn công ứng dụng web phổ biến

Vấn đề với các ứng dụng web là chúng tiếp xúc công khai với hàng tỷ người dùng internet, nhiều người trong số họ sẽ muốn phá vỡ các biện pháp bảo mật của mình vì bất kỳ lý do gì.


Trong thời kỳ đầu của Internet, một trong những phương thức tấn công phổ biến nhất là lực lượng vũ phu cơ bản, đơn giản. Bots thường thực hiện các cuộc tấn công này Những người có nhiều thời gian nghỉ việc, những người đã thử vô số kết hợp tên người dùng và mật khẩu cho đến khi họ tìm thấy một thứ sẽ cấp quyền truy cập vào ứng dụng đích.

Các cuộc tấn công vũ phu không còn là mối đe dọa nữa, nhờ chính sách mật khẩu, các nỗ lực đăng nhập hạn chế và captcha. Nhưng tội phạm mạng thích khám phá các khai thác mới và sử dụng chúng để thực hiện các loại tấn công mới. Từ lâu, họ đã phát hiện ra rằng các trường văn bản trên các ứng dụng hoặc trang web có thể bị khai thác bằng cách nhập vào Bộ điều khiển tiêm văn bản không mong đợi vào đó, điều đó sẽ buộc ứng dụng phải làm điều gì đó mà nó không phải làm. Theo cách đó, các cuộc tấn công được gọi là tiêm đã xâm nhập vào hiện trường.

Các cuộc tấn công tiêm chích có thể được sử dụng không chỉ để đăng nhập vào một ứng dụng mà không biết tên người dùng và mật khẩu, mà còn để lộ thông tin riêng tư, bí mật hoặc nhạy cảm hoặc thậm chí để chiếm quyền điều khiển toàn bộ máy chủ. Đó là lý do tại sao các cuộc tấn công này không chỉ là mối đe dọa đối với các ứng dụng web mà còn đối với người dùng có dữ liệu cư trú trên các ứng dụng đó và trong trường hợp xấu nhất đối với các ứng dụng và dịch vụ được kết nối khác.

Mã tiêm

Mã tiêm là một trong những loại tấn công tiêm phổ biến nhất. Nếu kẻ tấn công biết ngôn ngữ lập trình, khung, cơ sở dữ liệu hoặc hệ điều hành được sử dụng bởi một ứng dụng web, chúng có thể tiêm mã thông qua các trường nhập văn bản để buộc máy chủ web thực hiện những gì chúng muốn.

Những kiểu tấn công tiêm chích này có thể xảy ra đối với các ứng dụng thiếu xác thực dữ liệu đầu vào. Nếu trường nhập văn bản cho phép người dùng nhập bất cứ thứ gì họ muốn, thì ứng dụng có khả năng khai thác. Để ngăn chặn các cuộc tấn công này, ứng dụng cần hạn chế càng nhiều càng tốt người dùng đầu vào được phép nhập.

Ví dụ: cần giới hạn số lượng dữ liệu dự kiến, kiểm tra định dạng dữ liệu trước khi chấp nhận và hạn chế tập hợp các ký tự được phép.

Các lỗ hổng tiêm mã có thể dễ dàng tìm thấy, chỉ bằng cách kiểm tra đầu vào văn bản của ứng dụng web với các loại nội dung khác nhau. Khi được tìm thấy, các lỗ hổng rất khó khai thác. Nhưng khi kẻ tấn công quản lý để khai thác một trong những lỗ hổng này, tác động có thể bao gồm mất tính bảo mật, tính toàn vẹn, tính sẵn có hoặc chức năng ứng dụng.

SQL tiêm

Theo cách tương tự như tiêm mã, cuộc tấn công này sẽ chèn một tập lệnh SQL Ngôn ngữ được sử dụng bởi hầu hết các cơ sở dữ liệu để thực hiện các hoạt động truy vấn mật khẩu trong trường nhập văn bản. Kịch bản được gửi đến ứng dụng, thực thi nó trực tiếp trên cơ sở dữ liệu của nó. Do đó, kẻ tấn công có thể đi qua màn hình đăng nhập hoặc làm những việc nguy hiểm hơn, như đọc dữ liệu nhạy cảm trực tiếp từ cơ sở dữ liệu, sửa đổi hoặc hủy dữ liệu cơ sở dữ liệu hoặc thực hiện các thao tác quản trị viên trên cơ sở dữ liệu.

Các ứng dụng PHP và ASP dễ bị tấn công SQL do các giao diện chức năng cũ hơn. Các ứng dụng J2EE và ASP.Net thường được bảo vệ nhiều hơn trước các cuộc tấn công này. Khi tìm thấy lỗ hổng SQL SQL, họ có thể dễ dàng tìm thấy, cường độ của các cuộc tấn công tiềm năng sẽ chỉ bị giới hạn bởi kỹ năng và trí tưởng tượng của kẻ tấn công. Do đó, tác động của một cuộc tấn công tiêm nhiễm SQL chắc chắn là rất cao.

Lệnh tiêm

Những cuộc tấn công này cũng có thể, chủ yếu là do xác nhận đầu vào không đủ. Chúng khác với các cuộc tấn công tiêm mã ở chỗ kẻ tấn công chèn các lệnh hệ thống thay vì các đoạn mã lập trình hoặc tập lệnh. Do đó, hacker không cần phải biết ngôn ngữ lập trình mà ứng dụng dựa trên hoặc ngôn ngữ được sử dụng bởi cơ sở dữ liệu. Nhưng họ cần biết hệ điều hành được sử dụng bởi máy chủ lưu trữ.

Các lệnh hệ thống được chèn được thực thi bởi hệ điều hành máy chủ với các đặc quyền của ứng dụng, có thể cho phép hiển thị nội dung của các tệp tùy ý cư trú trên máy chủ, để hiển thị cấu trúc thư mục của máy chủ, để thay đổi mật khẩu người dùng, trong số những thứ khác.

Những cuộc tấn công này có thể được ngăn chặn bởi một sysadmin, bằng cách giới hạn mức độ truy cập hệ thống của các ứng dụng web đang chạy trên máy chủ.

Kịch bản chéo trang

Bất cứ khi nào một ứng dụng chèn đầu vào từ người dùng trong đầu ra mà nó tạo ra mà không xác thực hoặc mã hóa nó, nó sẽ tạo cơ hội cho kẻ tấn công gửi mã độc cho người dùng cuối khác. Các cuộc tấn công Cross-Site Scripting (XSS) tận dụng các cơ hội này để đưa các tập lệnh độc hại vào các trang web đáng tin cậy, cuối cùng được gửi đến những người dùng khác của ứng dụng, trở thành nạn nhân của kẻ tấn công..

Trình duyệt nạn nhân sẽ thực thi đoạn mã độc mà không biết nó không đáng tin. Do đó, trình duyệt sẽ cho phép nó truy cập mã thông báo phiên, cookie hoặc thông tin nhạy cảm được trình duyệt lưu trữ. Nếu được lập trình đúng, các tập lệnh thậm chí có thể viết lại nội dung của tệp HTML.

Các cuộc tấn công XSS thường có thể được chia thành hai loại khác nhau: được lưu trữ và phản ánh.

Trong được lưu trữ XSS tấn công, tập lệnh độc hại thường trú trên máy chủ đích, trong diễn đàn tin nhắn, trong cơ sở dữ liệu, trong nhật ký khách truy cập, v.v … Nạn nhân nhận được nó khi trình duyệt yêu cầu thông tin được lưu trữ. Trong phản ánh XSS tấn công, tập lệnh độc hại được phản ánh trong một phản hồi bao gồm đầu vào được gửi đến máy chủ. Đây có thể là một thông báo lỗi hoặc kết quả tìm kiếm, ví dụ.

Tiêm XPath

Kiểu tấn công này có thể xảy ra khi một ứng dụng web sử dụng thông tin do người dùng cung cấp để xây dựng truy vấn XPath cho dữ liệu XML. Cách thức hoạt động của các cuộc tấn công này tương tự như SQL tiêm: những kẻ tấn công gửi thông tin không đúng cho ứng dụng để tìm hiểu cách cấu trúc dữ liệu XML và sau đó chúng tấn công lại để truy cập dữ liệu đó.

XPath là một ngôn ngữ tiêu chuẩn, giống như SQL, bạn có thể chỉ định các thuộc tính bạn muốn tìm. Để thực hiện truy vấn về dữ liệu XML, các ứng dụng web sử dụng đầu vào của người dùng để đặt mẫu mà dữ liệu phải khớp. Bằng cách gửi đầu vào không đúng định dạng, mẫu có thể biến thành một hoạt động mà kẻ tấn công muốn áp dụng cho dữ liệu.

Không giống như những gì xảy ra với SQL, trong XPath, không có phiên bản nào khác. Điều này có nghĩa là việc tiêm XPath có thể được thực hiện trên bất kỳ ứng dụng web nào sử dụng dữ liệu XML, bất kể việc triển khai. Điều đó cũng có nghĩa là cuộc tấn công có thể được tự động hóa; do đó, không giống như SQL SQL, nó có khả năng bị sa thải đối với một số mục tiêu tùy ý.

Lệnh tiêm thư

Phương thức tấn công này có thể được sử dụng để khai thác các máy chủ email và ứng dụng xây dựng các câu lệnh IMAP hoặc SMTP với đầu vào của người dùng được xác thực không đúng. Đôi khi, các máy chủ IMAP và SMTP không được bảo vệ chống lại các cuộc tấn công, vì đó là trường hợp của hầu hết các máy chủ web, và do đó có thể được khai thác nhiều hơn. Bước qua một máy chủ thư, những kẻ tấn công có thể trốn tránh các hạn chế như captcha, một số lượng yêu cầu hạn chế, v.v..

Để khai thác máy chủ SMTP, kẻ tấn công cần có tài khoản email hợp lệ để gửi thư với các lệnh được tiêm. Nếu máy chủ dễ bị tấn công, nó sẽ đáp ứng các yêu cầu của kẻ tấn công, ví dụ, cho phép chúng ghi đè các hạn chế của máy chủ và sử dụng các dịch vụ của nó để gửi thư rác.

Việc tiêm IMAP có thể được thực hiện chủ yếu trên các ứng dụng webmail, khai thác chức năng đọc tin nhắn. Trong những trường hợp này, cuộc tấn công có thể được thực hiện bằng cách nhập vào thanh địa chỉ của trình duyệt web, một URL với các lệnh được tiêm.

Tiêm CRLF

Việc chèn các ký tự trả về vận chuyển và ký tự nguồn cấp dữ liệu Tổ chức được gọi là CRLF, trong các trường nhập mẫu biểu mẫu web thể hiện một phương thức tấn công được gọi là tiêm CRLF. Các ký tự vô hình này cho biết kết thúc của một dòng hoặc kết thúc của một lệnh trong nhiều giao thức internet truyền thống, chẳng hạn như HTTP, MIME hoặc NNTP.

Ví dụ: việc chèn CRLF vào yêu cầu HTTP, theo sau là một số mã HTML nhất định, có thể gửi các trang web tùy chỉnh cho khách truy cập của trang web.

Cuộc tấn công này có thể được thực hiện trên các ứng dụng web dễ bị tấn công mà don áp dụng bộ lọc phù hợp cho đầu vào của người dùng. Lỗ hổng này mở ra cơ hội cho các loại tấn công tiêm chích khác, chẳng hạn như XSS và tiêm mã, và cũng có thể xuất phát từ một trang web bị tấn công.

Máy chủ lưu trữ tiêm

Trong các máy chủ lưu trữ nhiều trang web hoặc ứng dụng web, tiêu đề máy chủ trở nên cần thiết để xác định trang web thường trú hoặc ứng dụng web nào mà chúng được gọi là máy chủ ảo ảo sẽ xử lý yêu cầu đến. Giá trị của tiêu đề báo cho máy chủ biết máy chủ ảo nào sẽ gửi yêu cầu. Khi máy chủ nhận được một tiêu đề máy chủ không hợp lệ, nó thường chuyển nó đến máy chủ ảo đầu tiên trong danh sách. Điều này tạo thành một lỗ hổng mà kẻ tấn công có thể sử dụng để gửi các tiêu đề máy chủ tùy ý đến máy chủ ảo đầu tiên trong máy chủ.

Thao tác của tiêu đề máy chủ thường liên quan đến các ứng dụng PHP, mặc dù nó cũng có thể được thực hiện với các công nghệ phát triển web khác. Các cuộc tấn công tiêu đề máy chủ hoạt động như các trình hỗ trợ cho các loại tấn công khác, chẳng hạn như ngộ độc bộ đệm web. Hậu quả của nó có thể bao gồm việc thực hiện các hoạt động nhạy cảm của những kẻ tấn công, ví dụ, đặt lại mật khẩu.

Tiêm LDAP

LDAP là một giao thức được thiết kế để hỗ trợ tìm kiếm tài nguyên (thiết bị, tệp, người dùng khác) trong mạng. Nó rất hữu ích cho mạng nội bộ và khi được sử dụng như một phần của hệ thống đăng nhập một lần, nó có thể được sử dụng để lưu trữ tên người dùng và mật khẩu. Các truy vấn LDAP liên quan đến việc sử dụng các ký tự điều khiển đặc biệt ảnh hưởng đến điều khiển của nó. Kẻ tấn công có khả năng thay đổi hành vi dự định của truy vấn LDAP nếu chúng có thể chèn các ký tự điều khiển trong đó.

Một lần nữa, vấn đề gốc cho phép tấn công tiêm LDAP là đầu vào của người dùng được xác nhận không đúng. Nếu văn bản mà người dùng gửi đến ứng dụng được sử dụng như một phần của truy vấn LDAP mà không vệ sinh nó, truy vấn có thể sẽ truy xuất danh sách tất cả người dùng và hiển thị cho kẻ tấn công, chỉ bằng cách sử dụng dấu hoa thị (*) ở bên phải đặt bên trong một chuỗi đầu vào.

Ngăn chặn các cuộc tấn công tiêm

Như chúng ta đã thấy trong bài viết này, tất cả các cuộc tấn công tiêm chích đều hướng đến các máy chủ và ứng dụng có quyền truy cập mở cho bất kỳ người dùng internet nào. Trách nhiệm ngăn chặn các cuộc tấn công này được phân phối giữa các nhà phát triển ứng dụng và quản trị viên máy chủ.

Các nhà phát triển ứng dụng cần biết các rủi ro liên quan đến việc xác thực đầu vào của người dùng không chính xác và tìm hiểu các thực tiễn tốt nhất để vệ sinh đầu vào của người dùng với mục đích phòng ngừa rủi ro. Quản trị viên máy chủ cần kiểm tra hệ thống của họ theo định kỳ để phát hiện các lỗ hổng và sửa chúng càng sớm càng tốt. Có nhiều lựa chọn để thực hiện các cuộc kiểm toán này, theo yêu cầu hoặc tự động.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map