NoSQL Injection
NoQuery tiêm xảy ra khi kẻ tấn công điều khiển các truy vấn bằng cách tiêm đầu vào độc hại vào truy vấn cơ sở dữ liệu NoQuery. Không giống như tiêm SQL, tiêm NoQuery thường khai thác các truy vấn và người vận hành dựa trên JSON như $ NE, $ GT, $ Regex hoặc $ trong đó trong MongoDB.

Ví dụ: Một ứng dụng web có tính năng tìm kiếm sản phẩm
`db.products.find({ "price": userInput })`
Một kẻ tấn công có thể tiêm Truy vấn NoQuery: {"$ gt": 0}.
`db.products.find({ "price": { "$gt": 0 } })`
Thay vì trả lại một sản phẩm cụ thể, cơ sở dữ liệu trả lại tất cả các sản phẩm với giá lớn hơn 0, rò rỉ dữ liệu.
Các tác hại của 1 cuộc tấn công NoSQL
1. Bỏ qua các cơ chế xác thực hoặc bảo vệ.
1. Trích xuất hoặc chỉnh sửa dữ liệu.
1. Gây ra sự từ chối dịch vụ.
1. Thực thi mã trên máy chủ.
Cơ sở dữ liệu NoQuery lưu trữ và truy xuất dữ liệu theo định dạng khác với các bảng quan hệ SQL truyền thống. Họ sử dụng một loạt các ngôn ngữ truy vấn thay vì một tiêu chuẩn phổ quát như SQL và có ít ràng buộc quan hệ hơn.
Có 2 kiểu tấn Công NoSQL
1. Syntax Injection - Điều này xảy ra khi bạn có thể phá vỡ cú pháp truy vấn NoQuery, cho phép bạn tiêm tải trọng của riêng bạn. Phương pháp tương tự như phương pháp được sử dụng trong tiêm SQL. Tuy nhiên, bản chất của cuộc tấn công thay đổi đáng kể, vì cơ sở dữ liệu NoQuery sử dụng một loạt các ngôn ngữ truy vấn, các loại cú pháp truy vấn và các cấu trúc dữ liệu khác nhau.
2. Operator - Điều này xảy ra khi bạn có thể sử dụng các toán tử truy vấn NoQuery để thao tác các truy vấn.