• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
iGuRu

iGuRu

Νέα Τεχνολογίας σε πραγματικό χρόνο. Απόψεις & Tweaks

  • /news
  • /tools
  • /tweaks
  • /dummies
  • /απόψεις
  • /support
  • /yourpost
home / dummies / Τι είναι μια ευπάθεια NoSQL injection ;

Τι είναι μια ευπάθεια NoSQL injection ;

14/12/2020 08:39 by Anastasis Vasileiadis

Οι βάσεις δεδομένων NoSQL (γνωστές και ως non-relational = μη σχετικές) δεν χρησιμοποιούν SQL για ερωτήματα. Υπάρχει μια ποικιλία διαφορετικών τύπων βάσεων δεδομένων NoSQL, όπως:

  • Key-Value
  • Key-Document
  • Column-Family
  • Graph

Το NoSQL σχεδιάστηκε ως απάντηση για ευέλικτες μεθοδολογίες σχεδιασμού. Οι relational  βάσεις δεδομένων (SQL) απαιτούν καθορισμό των σχημάτων εκ των προτέρων και δεν επιτρέπουν την ενημέρωσή τους όταν τα δεδομένα βρίσκονται ήδη στη βάση δεδομένων. Η προσθήκη νέων πεδίων απαιτεί τη μετεγκατάσταση της βάσης δεδομένων σε ένα νέο σχήμα, το οποίο μπορεί να είναι χρονοβόρο.

no sql injection - Τι είναι μια ευπάθεια NoSQL injection ;

Επίθεση NoSQL

Ενώ οι βάσεις δεδομένων NoSQL, όπως το MongoDB, δεν χρησιμοποιούν SQL για ερωτήματα, εξακολουθούν να κάνουν ερωτήματα με βάση την είσοδο του χρήστη.

Η κύρια διαφορά μεταξύ SQL και NoSQL injection είναι η γραμματική και η σύνταξη του ερωτήματος. Οι βάσεις δεδομένων NoSQL δεν έχουν τυποποιημένη γλώσσα. Ωστόσο, η σύνταξη των γλωσσών τους είναι παρόμοια (αφού έχουν σχεδιαστεί για να κάνουν το ίδιο πράγμα).

Μία εφαρμογή  NoSQL injection είναι η επίθεση σε εφαρμογές web που έχουν δημιουργηθεί στη στοίβα MEAN (MongoDB, Express, Angular και Node). Κατά τη διαβίβαση δεδομένων, οι εφαρμογές MEAN χρησιμοποιούν το JSON, το οποίο είναι το ίδιο πράγμα που χρησιμοποιείται από το MongoDB. Η διείσδυση κώδικα JSON σε μια εφαρμογή MEAN μπορεί να επιτρέψει επιθέσεις injection σε μια βάση δεδομένων MongoDB.

1 328 - Τι είναι μια ευπάθεια NoSQL injection ;

Για παράδειγμα, το παραπάνω στιγμιότυπο οθόνης (από το NullSweep ) δείχνει μια εφαρμογή που είναι ευάλωτη σε NoSQL. Από ένα αίτημα, ο κώδικας τραβά ένα όνομα χρήστη και έναν κωδικό πρόσβασης και τον τοποθετεί σε ένα ερώτημα MongoDB. Περνώντας το JSON {“username”: “myaccount”, “password”: {“$ ne”: 1}} , ένας εισβολέας θα μπορούσε να πραγματοποιήσει έλεγχο ταυτότητας στην υπηρεσία χωρίς κωδικό πρόσβασης.

Το MongoDB και άλλες βάσεις δεδομένων NoSQL χρησιμοποιούνται συνήθως σε εφαρμογές ιστού. Για παράδειγμα, μια ιστοσελίδα μπορεί να ζητήσει διαπιστευτήρια λογαριασμού χρήστη σε μία φόρμα ιστού, να αποθηκεύσει πληροφορίες ελέγχου ταυτότητας σε μια βάση δεδομένων MongoDB και να πραγματοποιήσει ελέγχους διαπιστευτηρίων χρησιμοποιώντας JavaScript.

Η αυστηρή ενσωμάτωση του MongoDB σε JavaScript και σε άλλες γλώσσες προγραμματισμού σημαίνει ότι οι επιθέσεις NoSQL μπορούν να χρησιμοποιηθούν για την εκτέλεση επιθέσεων σε άλλα επίπεδα.  Μια επίθεση με ένεση NoSQL που περιλαμβάνει κώδικα JavaScript, θα επιτρέψει την εκτέλεση αυτού του κώδικα εντός της εφαρμογής ιστού.

 

Προστασία από επιθέσεις NoSQL injection

Οι επιθέσεις injection NoSQL είναι πολύ παρόμοιες με τις επιθέσεις injection SQL: εκμεταλλεύονται την κακή εξυγίανση της εισόδου χρήστη κατά τη δημιουργία ερωτημάτων βάσης δεδομένων. Αυτό σημαίνει ότι τα ίδια εργαλεία για την προστασία από επιθέσεις injection SQL λειτουργούν επίσης για το NoSQL, όπως:

Οι βάσεις δεδομένων NoSQL είναι ακόμα βάσεις δεδομένων, πράγμα που σημαίνει ότι είναι συχνά σημαντικό να εκτελείτε ερωτήματα χρησιμοποιώντας δεδομένα που παρέχονται από τον χρήστη. Όπως και με τις βάσεις δεδομένων SQL, είναι σημαντικό να διασφαλιστεί ότι οι πληροφορίες απολυμαίνονται σωστά πριν τις χρησιμοποιήσετε σε ένα ερώτημα για να ελαχιστοποιήσετε την ευπάθεια μιας εφαρμογής σε επιθέσεις με ένεση (injection).

 

Πηγές

  1. Foreword, OWASP
  2. 2019 CWE Top 25 Most Dangerous Software Errors, Common Weakness Enumeration
  3. NoSQL Databases Explained, MongoDB
  4. NoSQL Injection, RangeForce (Medium)
  5. A NoSQL Injection Primer (with Mongo), NullSweep
Τι είναι μια ευπάθεια NoSQL injection ; was last modified: 14 Δεκεμβρίου, 2020, 8:39 πμ by Anastasis Vasileiadis

spread the news

  • Facebook
  • Twitter
  • Reddit
  • Εκτύπωση
  • Email

Διαβάστε τις Τεχνολογικές Ειδήσεις από όλο τον κόσμο, με την εγκυρότητα του iGuRu.gr

Ακολουθήσετε μας στο Google News


Κατηγορία: dummies, απόψειςtag: database, injection, javascript, NoSQL, SQL, βάση, δεδομένων, ένεση

You May Also Like

Το Gootkit επέστρεψε παράλληλα με το REvil ransomware
RainbowSQL: Ένας πολύ γρήγορος dork scanner
Internet Explorer η Microsoft επιτρέπει την απενεργοποίηση της JavaScript

Σχετικά Anastasis Vasileiadis

Οι μεταφράσεις είναι σαν τις γυναίκες. Όταν είναι ωραίες δεν είναι πιστές και όταν είναι πιστές δεν είναι ωραίες.

Previous Post: « Hacked η πλατφόρμα Orion της SolarWinds
Next Post: Windows 10 GUI Debloater αφαιρέστε τα σκουπίδια »

Reader Interactions

Comment Policy:

Tο iGuRu.gr δεν δημοσιεύει άμεσα τα σχόλια. Κακόβουλα σχόλια, σχόλια που συμπεριλαμβάνουν διαφημίσεις, ή σχόλια με ύβρεις διαγράφονται χωρίς καμία προειδοποίηση. Δεν υιοθετούμε τις απόψεις που εκφράζουν οι αναγνώστες μας.
Τα σχολιά σας θα εμφανιστούν μετά την έγκρισή τους από τους διαχειριστές


Αφήστε το σχόλιό σας
Ακύρωση απάντησης

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

 

 © 2021 · iGuRu.gr · ☢ · Keep It Simple Stupid Genesis theme

about  ·   contact  ·  rss  ·  sitemap  ·  tos

loading Άκυρο
Δεν ήταν δυνατή η αποστολή της δημοσίευσης - ελέγξτε την διεύθυνση email!
Ο έλεγχος του email απέτυχε, παρακαλώ προσπαθήστε ξανά
Το ιστολόγιο σας δεν μπορεί να κοινοποιεί δημοσιεύσεις μέσω email.